drizzle-orm 0.10.24 → 0.10.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/package.json +2 -3
  2. package/README.md +0 -439
  3. package/dist/builders/aggregators/abstractAggregator.d.ts +0 -11
  4. package/dist/builders/aggregators/abstractAggregator.js +0 -35
  5. package/dist/builders/aggregators/deleteAggregator.d.ts +0 -16
  6. package/dist/builders/aggregators/deleteAggregator.js +0 -42
  7. package/dist/builders/aggregators/insertAggregator.d.ts +0 -22
  8. package/dist/builders/aggregators/insertAggregator.js +0 -106
  9. package/dist/builders/aggregators/selectAggregator.d.ts +0 -39
  10. package/dist/builders/aggregators/selectAggregator.js +0 -143
  11. package/dist/builders/aggregators/updateAggregator.d.ts +0 -19
  12. package/dist/builders/aggregators/updateAggregator.js +0 -50
  13. package/dist/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
  14. package/dist/builders/highLvlBuilders/abstractRequestBuilder.js +0 -32
  15. package/dist/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
  16. package/dist/builders/highLvlBuilders/deleteRequestBuilder.js +0 -61
  17. package/dist/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
  18. package/dist/builders/highLvlBuilders/insertRequestBuilder.js +0 -73
  19. package/dist/builders/highLvlBuilders/order.d.ts +0 -5
  20. package/dist/builders/highLvlBuilders/order.js +0 -8
  21. package/dist/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -47
  22. package/dist/builders/highLvlBuilders/selectRequestBuilder.js +0 -128
  23. package/dist/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
  24. package/dist/builders/highLvlBuilders/updateRequestBuilder.js +0 -80
  25. package/dist/builders/index.d.ts +0 -18
  26. package/dist/builders/index.js +0 -54
  27. package/dist/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -40
  28. package/dist/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -78
  29. package/dist/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -35
  30. package/dist/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -45
  31. package/dist/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -55
  32. package/dist/builders/joinBuilders/builders/selectWithFourJoins.js +0 -78
  33. package/dist/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -49
  34. package/dist/builders/joinBuilders/builders/selectWithJoin.js +0 -64
  35. package/dist/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -53
  36. package/dist/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -73
  37. package/dist/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -51
  38. package/dist/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -68
  39. package/dist/builders/joinBuilders/join.d.ts +0 -23
  40. package/dist/builders/joinBuilders/join.js +0 -28
  41. package/dist/builders/joinBuilders/joinWith.d.ts +0 -14
  42. package/dist/builders/joinBuilders/joinWith.js +0 -14
  43. package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
  44. package/dist/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -35
  45. package/dist/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
  46. package/dist/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -34
  47. package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
  48. package/dist/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -33
  49. package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
  50. package/dist/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -32
  51. package/dist/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
  52. package/dist/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -31
  53. package/dist/builders/joinBuilders/static.d.ts +0 -5
  54. package/dist/builders/joinBuilders/static.js +0 -9
  55. package/dist/builders/lowLvlBuilders/alter.d.ts +0 -0
  56. package/dist/builders/lowLvlBuilders/alter.js +0 -1
  57. package/dist/builders/lowLvlBuilders/create.d.ts +0 -12
  58. package/dist/builders/lowLvlBuilders/create.js +0 -100
  59. package/dist/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
  60. package/dist/builders/lowLvlBuilders/delets/delete.js +0 -15
  61. package/dist/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
  62. package/dist/builders/lowLvlBuilders/delets/deleteFilter.js +0 -13
  63. package/dist/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
  64. package/dist/builders/lowLvlBuilders/delets/deleteFrom.js +0 -14
  65. package/dist/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
  66. package/dist/builders/lowLvlBuilders/inserts/insert.js +0 -15
  67. package/dist/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
  68. package/dist/builders/lowLvlBuilders/inserts/insertInto.js +0 -16
  69. package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
  70. package/dist/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -13
  71. package/dist/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
  72. package/dist/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -19
  73. package/dist/builders/lowLvlBuilders/selects/select.d.ts +0 -9
  74. package/dist/builders/lowLvlBuilders/selects/select.js +0 -16
  75. package/dist/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -28
  76. package/dist/builders/lowLvlBuilders/selects/selectFrom.js +0 -34
  77. package/dist/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -26
  78. package/dist/builders/lowLvlBuilders/selects/selectJoined.js +0 -30
  79. package/dist/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -17
  80. package/dist/builders/lowLvlBuilders/selects/whereSelect.js +0 -25
  81. package/dist/builders/lowLvlBuilders/updates/update.d.ts +0 -5
  82. package/dist/builders/lowLvlBuilders/updates/update.js +0 -15
  83. package/dist/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
  84. package/dist/builders/lowLvlBuilders/updates/updateIn.js +0 -15
  85. package/dist/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
  86. package/dist/builders/lowLvlBuilders/updates/whereSelect.js +0 -13
  87. package/dist/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
  88. package/dist/builders/lowLvlBuilders/updates/whereSet.js +0 -18
  89. package/dist/builders/requestBuilders/updates/combine.d.ts +0 -9
  90. package/dist/builders/requestBuilders/updates/combine.js +0 -26
  91. package/dist/builders/requestBuilders/updates/increment.d.ts +0 -13
  92. package/dist/builders/requestBuilders/updates/increment.js +0 -18
  93. package/dist/builders/requestBuilders/updates/setObjects.d.ts +0 -12
  94. package/dist/builders/requestBuilders/updates/setObjects.js +0 -19
  95. package/dist/builders/requestBuilders/updates/static.d.ts +0 -7
  96. package/dist/builders/requestBuilders/updates/static.js +0 -15
  97. package/dist/builders/requestBuilders/updates/updates.d.ts +0 -9
  98. package/dist/builders/requestBuilders/updates/updates.js +0 -10
  99. package/dist/builders/requestBuilders/where/and.d.ts +0 -11
  100. package/dist/builders/requestBuilders/where/and.js +0 -31
  101. package/dist/builders/requestBuilders/where/const.d.ts +0 -9
  102. package/dist/builders/requestBuilders/where/const.js +0 -25
  103. package/dist/builders/requestBuilders/where/constArray.d.ts +0 -9
  104. package/dist/builders/requestBuilders/where/constArray.js +0 -39
  105. package/dist/builders/requestBuilders/where/eqWhere.d.ts +0 -12
  106. package/dist/builders/requestBuilders/where/eqWhere.js +0 -20
  107. package/dist/builders/requestBuilders/where/greater.d.ts +0 -15
  108. package/dist/builders/requestBuilders/where/greater.js +0 -20
  109. package/dist/builders/requestBuilders/where/greaterEq.d.ts +0 -15
  110. package/dist/builders/requestBuilders/where/greaterEq.js +0 -20
  111. package/dist/builders/requestBuilders/where/in.d.ts +0 -12
  112. package/dist/builders/requestBuilders/where/in.js +0 -20
  113. package/dist/builders/requestBuilders/where/isNotNull.d.ts +0 -11
  114. package/dist/builders/requestBuilders/where/isNotNull.js +0 -18
  115. package/dist/builders/requestBuilders/where/isNull.d.ts +0 -11
  116. package/dist/builders/requestBuilders/where/isNull.js +0 -18
  117. package/dist/builders/requestBuilders/where/less.d.ts +0 -15
  118. package/dist/builders/requestBuilders/where/less.js +0 -20
  119. package/dist/builders/requestBuilders/where/lessEq.d.ts +0 -15
  120. package/dist/builders/requestBuilders/where/lessEq.js +0 -20
  121. package/dist/builders/requestBuilders/where/like.d.ts +0 -12
  122. package/dist/builders/requestBuilders/where/like.js +0 -20
  123. package/dist/builders/requestBuilders/where/notEqWhere.d.ts +0 -12
  124. package/dist/builders/requestBuilders/where/notEqWhere.js +0 -20
  125. package/dist/builders/requestBuilders/where/or.d.ts +0 -11
  126. package/dist/builders/requestBuilders/where/or.js +0 -31
  127. package/dist/builders/requestBuilders/where/rawWhere.d.ts +0 -9
  128. package/dist/builders/requestBuilders/where/rawWhere.js +0 -15
  129. package/dist/builders/requestBuilders/where/static.d.ts +0 -17
  130. package/dist/builders/requestBuilders/where/static.js +0 -49
  131. package/dist/builders/requestBuilders/where/var.d.ts +0 -13
  132. package/dist/builders/requestBuilders/where/var.js +0 -18
  133. package/dist/builders/requestBuilders/where/where.d.ts +0 -8
  134. package/dist/builders/requestBuilders/where/where.js +0 -6
  135. package/dist/builders/transaction/transaction.d.ts +0 -8
  136. package/dist/builders/transaction/transaction.js +0 -20
  137. package/dist/columns/column.d.ts +0 -72
  138. package/dist/columns/column.js +0 -101
  139. package/dist/columns/index.d.ts +0 -10
  140. package/dist/columns/index.js +0 -27
  141. package/dist/columns/types/columnType.d.ts +0 -7
  142. package/dist/columns/types/columnType.js +0 -6
  143. package/dist/columns/types/pgBigDecimal.d.ts +0 -10
  144. package/dist/columns/types/pgBigDecimal.js +0 -31
  145. package/dist/columns/types/pgBigInt.d.ts +0 -15
  146. package/dist/columns/types/pgBigInt.js +0 -32
  147. package/dist/columns/types/pgBigSerial.d.ts +0 -15
  148. package/dist/columns/types/pgBigSerial.js +0 -32
  149. package/dist/columns/types/pgBoolean.d.ts +0 -8
  150. package/dist/columns/types/pgBoolean.js +0 -18
  151. package/dist/columns/types/pgEnum.d.ts +0 -9
  152. package/dist/columns/types/pgEnum.js +0 -18
  153. package/dist/columns/types/pgInteger.d.ts +0 -8
  154. package/dist/columns/types/pgInteger.js +0 -21
  155. package/dist/columns/types/pgJsonb.d.ts +0 -9
  156. package/dist/columns/types/pgJsonb.js +0 -20
  157. package/dist/columns/types/pgSerial.d.ts +0 -8
  158. package/dist/columns/types/pgSerial.js +0 -18
  159. package/dist/columns/types/pgSmallInt.d.ts +0 -8
  160. package/dist/columns/types/pgSmallInt.js +0 -18
  161. package/dist/columns/types/pgText.d.ts +0 -8
  162. package/dist/columns/types/pgText.js +0 -18
  163. package/dist/columns/types/pgTime.d.ts +0 -8
  164. package/dist/columns/types/pgTime.js +0 -18
  165. package/dist/columns/types/pgTimestamp.d.ts +0 -8
  166. package/dist/columns/types/pgTimestamp.js +0 -18
  167. package/dist/columns/types/pgTimestamptz.d.ts +0 -8
  168. package/dist/columns/types/pgTimestamptz.js +0 -18
  169. package/dist/columns/types/pgVarChar.d.ts +0 -9
  170. package/dist/columns/types/pgVarChar.js +0 -24
  171. package/dist/db/db.d.ts +0 -18
  172. package/dist/db/db.js +0 -25
  173. package/dist/db/dbConnector.d.ts +0 -9
  174. package/dist/db/dbConnector.js +0 -32
  175. package/dist/db/dbStringConnector.d.ts +0 -6
  176. package/dist/db/dbStringConnector.js +0 -29
  177. package/dist/db/group_by.d.ts +0 -0
  178. package/dist/db/group_by.js +0 -68
  179. package/dist/db/index.d.ts +0 -4
  180. package/dist/db/index.js +0 -14
  181. package/dist/db/session.d.ts +0 -9
  182. package/dist/db/session.js +0 -16
  183. package/dist/docs/cases/simple_delete.d.ts +0 -1
  184. package/dist/docs/cases/simple_delete.js +0 -35
  185. package/dist/docs/cases/simple_insert.d.ts +0 -1
  186. package/dist/docs/cases/simple_insert.js +0 -57
  187. package/dist/docs/cases/simple_join.d.ts +0 -1
  188. package/dist/docs/cases/simple_join.js +0 -115
  189. package/dist/docs/cases/simple_select.d.ts +0 -1
  190. package/dist/docs/cases/simple_select.js +0 -50
  191. package/dist/docs/cases/simple_update.d.ts +0 -1
  192. package/dist/docs/cases/simple_update.js +0 -39
  193. package/dist/docs/tables/citiesTable.d.ts +0 -14
  194. package/dist/docs/tables/citiesTable.js +0 -21
  195. package/dist/docs/tables/userGroupsTable.d.ts +0 -7
  196. package/dist/docs/tables/userGroupsTable.js +0 -18
  197. package/dist/docs/tables/usersTable.d.ts +0 -17
  198. package/dist/docs/tables/usersTable.js +0 -35
  199. package/dist/docs/tables/usersToUserGroups.d.ts +0 -7
  200. package/dist/docs/tables/usersToUserGroups.js +0 -20
  201. package/dist/docs/types/rolesType.d.ts +0 -1
  202. package/dist/docs/types/rolesType.js +0 -6
  203. package/dist/errors/baseError.d.ts +0 -22
  204. package/dist/errors/baseError.js +0 -35
  205. package/dist/errors/builderError.d.ts +0 -14
  206. package/dist/errors/builderError.js +0 -25
  207. package/dist/errors/dbErrors.d.ts +0 -12
  208. package/dist/errors/dbErrors.js +0 -28
  209. package/dist/index.d.ts +0 -11
  210. package/dist/index.js +0 -31
  211. package/dist/indexes/tableIndex.d.ts +0 -11
  212. package/dist/indexes/tableIndex.js +0 -17
  213. package/dist/logger/abstractLogger.d.ts +0 -4
  214. package/dist/logger/abstractLogger.js +0 -5
  215. package/dist/logger/consoleLogger.d.ts +0 -5
  216. package/dist/logger/consoleLogger.js +0 -15
  217. package/dist/mappers/index.d.ts +0 -0
  218. package/dist/mappers/index.js +0 -1
  219. package/dist/mappers/responseMapper.d.ts +0 -10
  220. package/dist/mappers/responseMapper.js +0 -35
  221. package/dist/migrator/index.d.ts +0 -0
  222. package/dist/migrator/index.js +0 -1
  223. package/dist/migrator/migrator.d.ts +0 -11
  224. package/dist/migrator/migrator.js +0 -105
  225. package/dist/serializer/serializer.d.ts +0 -47
  226. package/dist/serializer/serializer.js +0 -258
  227. package/dist/src/builders/aggregators/abstractAggregator.d.ts +0 -11
  228. package/dist/src/builders/aggregators/abstractAggregator.js +0 -35
  229. package/dist/src/builders/aggregators/deleteAggregator.d.ts +0 -16
  230. package/dist/src/builders/aggregators/deleteAggregator.js +0 -42
  231. package/dist/src/builders/aggregators/insertAggregator.d.ts +0 -22
  232. package/dist/src/builders/aggregators/insertAggregator.js +0 -106
  233. package/dist/src/builders/aggregators/selectAggregator.d.ts +0 -39
  234. package/dist/src/builders/aggregators/selectAggregator.js +0 -143
  235. package/dist/src/builders/aggregators/updateAggregator.d.ts +0 -19
  236. package/dist/src/builders/aggregators/updateAggregator.js +0 -50
  237. package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
  238. package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.js +0 -32
  239. package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
  240. package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.js +0 -61
  241. package/dist/src/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
  242. package/dist/src/builders/highLvlBuilders/insertRequestBuilder.js +0 -73
  243. package/dist/src/builders/highLvlBuilders/order.d.ts +0 -5
  244. package/dist/src/builders/highLvlBuilders/order.js +0 -8
  245. package/dist/src/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -47
  246. package/dist/src/builders/highLvlBuilders/selectRequestBuilder.js +0 -128
  247. package/dist/src/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
  248. package/dist/src/builders/highLvlBuilders/updateRequestBuilder.js +0 -80
  249. package/dist/src/builders/index.d.ts +0 -18
  250. package/dist/src/builders/index.js +0 -54
  251. package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -40
  252. package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -78
  253. package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -35
  254. package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -45
  255. package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -55
  256. package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.js +0 -78
  257. package/dist/src/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -49
  258. package/dist/src/builders/joinBuilders/builders/selectWithJoin.js +0 -64
  259. package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -53
  260. package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -73
  261. package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -51
  262. package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -68
  263. package/dist/src/builders/joinBuilders/join.d.ts +0 -23
  264. package/dist/src/builders/joinBuilders/join.js +0 -28
  265. package/dist/src/builders/joinBuilders/joinWith.d.ts +0 -14
  266. package/dist/src/builders/joinBuilders/joinWith.js +0 -14
  267. package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
  268. package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -35
  269. package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
  270. package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -34
  271. package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
  272. package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -33
  273. package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
  274. package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -32
  275. package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
  276. package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -31
  277. package/dist/src/builders/joinBuilders/static.d.ts +0 -5
  278. package/dist/src/builders/joinBuilders/static.js +0 -9
  279. package/dist/src/builders/lowLvlBuilders/alter.d.ts +0 -0
  280. package/dist/src/builders/lowLvlBuilders/alter.js +0 -1
  281. package/dist/src/builders/lowLvlBuilders/create.d.ts +0 -12
  282. package/dist/src/builders/lowLvlBuilders/create.js +0 -100
  283. package/dist/src/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
  284. package/dist/src/builders/lowLvlBuilders/delets/delete.js +0 -15
  285. package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
  286. package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.js +0 -13
  287. package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
  288. package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.js +0 -14
  289. package/dist/src/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
  290. package/dist/src/builders/lowLvlBuilders/inserts/insert.js +0 -15
  291. package/dist/src/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
  292. package/dist/src/builders/lowLvlBuilders/inserts/insertInto.js +0 -16
  293. package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
  294. package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -13
  295. package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
  296. package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -19
  297. package/dist/src/builders/lowLvlBuilders/selects/select.d.ts +0 -9
  298. package/dist/src/builders/lowLvlBuilders/selects/select.js +0 -16
  299. package/dist/src/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -28
  300. package/dist/src/builders/lowLvlBuilders/selects/selectFrom.js +0 -34
  301. package/dist/src/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -26
  302. package/dist/src/builders/lowLvlBuilders/selects/selectJoined.js +0 -30
  303. package/dist/src/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -17
  304. package/dist/src/builders/lowLvlBuilders/selects/whereSelect.js +0 -25
  305. package/dist/src/builders/lowLvlBuilders/updates/update.d.ts +0 -5
  306. package/dist/src/builders/lowLvlBuilders/updates/update.js +0 -15
  307. package/dist/src/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
  308. package/dist/src/builders/lowLvlBuilders/updates/updateIn.js +0 -15
  309. package/dist/src/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
  310. package/dist/src/builders/lowLvlBuilders/updates/whereSelect.js +0 -13
  311. package/dist/src/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
  312. package/dist/src/builders/lowLvlBuilders/updates/whereSet.js +0 -18
  313. package/dist/src/builders/requestBuilders/updates/combine.d.ts +0 -9
  314. package/dist/src/builders/requestBuilders/updates/combine.js +0 -26
  315. package/dist/src/builders/requestBuilders/updates/increment.d.ts +0 -13
  316. package/dist/src/builders/requestBuilders/updates/increment.js +0 -18
  317. package/dist/src/builders/requestBuilders/updates/setObjects.d.ts +0 -12
  318. package/dist/src/builders/requestBuilders/updates/setObjects.js +0 -19
  319. package/dist/src/builders/requestBuilders/updates/static.d.ts +0 -7
  320. package/dist/src/builders/requestBuilders/updates/static.js +0 -15
  321. package/dist/src/builders/requestBuilders/updates/updates.d.ts +0 -9
  322. package/dist/src/builders/requestBuilders/updates/updates.js +0 -10
  323. package/dist/src/builders/requestBuilders/where/and.d.ts +0 -11
  324. package/dist/src/builders/requestBuilders/where/and.js +0 -31
  325. package/dist/src/builders/requestBuilders/where/const.d.ts +0 -9
  326. package/dist/src/builders/requestBuilders/where/const.js +0 -25
  327. package/dist/src/builders/requestBuilders/where/constArray.d.ts +0 -9
  328. package/dist/src/builders/requestBuilders/where/constArray.js +0 -39
  329. package/dist/src/builders/requestBuilders/where/eqWhere.d.ts +0 -12
  330. package/dist/src/builders/requestBuilders/where/eqWhere.js +0 -20
  331. package/dist/src/builders/requestBuilders/where/greater.d.ts +0 -15
  332. package/dist/src/builders/requestBuilders/where/greater.js +0 -20
  333. package/dist/src/builders/requestBuilders/where/greaterEq.d.ts +0 -15
  334. package/dist/src/builders/requestBuilders/where/greaterEq.js +0 -20
  335. package/dist/src/builders/requestBuilders/where/in.d.ts +0 -12
  336. package/dist/src/builders/requestBuilders/where/in.js +0 -20
  337. package/dist/src/builders/requestBuilders/where/isNotNull.d.ts +0 -11
  338. package/dist/src/builders/requestBuilders/where/isNotNull.js +0 -18
  339. package/dist/src/builders/requestBuilders/where/isNull.d.ts +0 -11
  340. package/dist/src/builders/requestBuilders/where/isNull.js +0 -18
  341. package/dist/src/builders/requestBuilders/where/less.d.ts +0 -15
  342. package/dist/src/builders/requestBuilders/where/less.js +0 -20
  343. package/dist/src/builders/requestBuilders/where/lessEq.d.ts +0 -15
  344. package/dist/src/builders/requestBuilders/where/lessEq.js +0 -20
  345. package/dist/src/builders/requestBuilders/where/like.d.ts +0 -12
  346. package/dist/src/builders/requestBuilders/where/like.js +0 -20
  347. package/dist/src/builders/requestBuilders/where/notEqWhere.d.ts +0 -12
  348. package/dist/src/builders/requestBuilders/where/notEqWhere.js +0 -20
  349. package/dist/src/builders/requestBuilders/where/or.d.ts +0 -11
  350. package/dist/src/builders/requestBuilders/where/or.js +0 -31
  351. package/dist/src/builders/requestBuilders/where/rawWhere.d.ts +0 -9
  352. package/dist/src/builders/requestBuilders/where/rawWhere.js +0 -15
  353. package/dist/src/builders/requestBuilders/where/static.d.ts +0 -17
  354. package/dist/src/builders/requestBuilders/where/static.js +0 -49
  355. package/dist/src/builders/requestBuilders/where/var.d.ts +0 -13
  356. package/dist/src/builders/requestBuilders/where/var.js +0 -18
  357. package/dist/src/builders/requestBuilders/where/where.d.ts +0 -8
  358. package/dist/src/builders/requestBuilders/where/where.js +0 -6
  359. package/dist/src/builders/transaction/transaction.d.ts +0 -8
  360. package/dist/src/builders/transaction/transaction.js +0 -20
  361. package/dist/src/columns/column.d.ts +0 -72
  362. package/dist/src/columns/column.js +0 -101
  363. package/dist/src/columns/index.d.ts +0 -10
  364. package/dist/src/columns/index.js +0 -27
  365. package/dist/src/columns/types/columnType.d.ts +0 -7
  366. package/dist/src/columns/types/columnType.js +0 -6
  367. package/dist/src/columns/types/pgBigDecimal.d.ts +0 -10
  368. package/dist/src/columns/types/pgBigDecimal.js +0 -31
  369. package/dist/src/columns/types/pgBigInt.d.ts +0 -15
  370. package/dist/src/columns/types/pgBigInt.js +0 -32
  371. package/dist/src/columns/types/pgBigSerial.d.ts +0 -15
  372. package/dist/src/columns/types/pgBigSerial.js +0 -32
  373. package/dist/src/columns/types/pgBoolean.d.ts +0 -8
  374. package/dist/src/columns/types/pgBoolean.js +0 -18
  375. package/dist/src/columns/types/pgEnum.d.ts +0 -9
  376. package/dist/src/columns/types/pgEnum.js +0 -18
  377. package/dist/src/columns/types/pgInteger.d.ts +0 -8
  378. package/dist/src/columns/types/pgInteger.js +0 -21
  379. package/dist/src/columns/types/pgJsonb.d.ts +0 -9
  380. package/dist/src/columns/types/pgJsonb.js +0 -20
  381. package/dist/src/columns/types/pgSerial.d.ts +0 -8
  382. package/dist/src/columns/types/pgSerial.js +0 -18
  383. package/dist/src/columns/types/pgSmallInt.d.ts +0 -8
  384. package/dist/src/columns/types/pgSmallInt.js +0 -18
  385. package/dist/src/columns/types/pgText.d.ts +0 -8
  386. package/dist/src/columns/types/pgText.js +0 -18
  387. package/dist/src/columns/types/pgTime.d.ts +0 -8
  388. package/dist/src/columns/types/pgTime.js +0 -18
  389. package/dist/src/columns/types/pgTimestamp.d.ts +0 -8
  390. package/dist/src/columns/types/pgTimestamp.js +0 -18
  391. package/dist/src/columns/types/pgTimestamptz.d.ts +0 -8
  392. package/dist/src/columns/types/pgTimestamptz.js +0 -18
  393. package/dist/src/columns/types/pgVarChar.d.ts +0 -9
  394. package/dist/src/columns/types/pgVarChar.js +0 -24
  395. package/dist/src/db/db.d.ts +0 -18
  396. package/dist/src/db/db.js +0 -25
  397. package/dist/src/db/dbConnector.d.ts +0 -9
  398. package/dist/src/db/dbConnector.js +0 -32
  399. package/dist/src/db/dbStringConnector.d.ts +0 -6
  400. package/dist/src/db/dbStringConnector.js +0 -29
  401. package/dist/src/db/group_by.d.ts +0 -0
  402. package/dist/src/db/group_by.js +0 -68
  403. package/dist/src/db/index.d.ts +0 -4
  404. package/dist/src/db/index.js +0 -14
  405. package/dist/src/db/session.d.ts +0 -9
  406. package/dist/src/db/session.js +0 -16
  407. package/dist/src/docs/cases/simple_delete.d.ts +0 -1
  408. package/dist/src/docs/cases/simple_delete.js +0 -35
  409. package/dist/src/docs/cases/simple_insert.d.ts +0 -1
  410. package/dist/src/docs/cases/simple_insert.js +0 -57
  411. package/dist/src/docs/cases/simple_join.d.ts +0 -1
  412. package/dist/src/docs/cases/simple_join.js +0 -115
  413. package/dist/src/docs/cases/simple_select.d.ts +0 -1
  414. package/dist/src/docs/cases/simple_select.js +0 -50
  415. package/dist/src/docs/cases/simple_update.d.ts +0 -1
  416. package/dist/src/docs/cases/simple_update.js +0 -39
  417. package/dist/src/docs/tables/citiesTable.d.ts +0 -14
  418. package/dist/src/docs/tables/citiesTable.js +0 -21
  419. package/dist/src/docs/tables/userGroupsTable.d.ts +0 -7
  420. package/dist/src/docs/tables/userGroupsTable.js +0 -18
  421. package/dist/src/docs/tables/usersTable.d.ts +0 -17
  422. package/dist/src/docs/tables/usersTable.js +0 -35
  423. package/dist/src/docs/tables/usersToUserGroups.d.ts +0 -7
  424. package/dist/src/docs/tables/usersToUserGroups.js +0 -20
  425. package/dist/src/docs/types/rolesType.d.ts +0 -1
  426. package/dist/src/docs/types/rolesType.js +0 -6
  427. package/dist/src/errors/baseError.d.ts +0 -22
  428. package/dist/src/errors/baseError.js +0 -35
  429. package/dist/src/errors/builderError.d.ts +0 -14
  430. package/dist/src/errors/builderError.js +0 -25
  431. package/dist/src/errors/dbErrors.d.ts +0 -12
  432. package/dist/src/errors/dbErrors.js +0 -28
  433. package/dist/src/index.d.ts +0 -11
  434. package/dist/src/index.js +0 -31
  435. package/dist/src/indexes/tableIndex.d.ts +0 -11
  436. package/dist/src/indexes/tableIndex.js +0 -17
  437. package/dist/src/logger/abstractLogger.d.ts +0 -4
  438. package/dist/src/logger/abstractLogger.js +0 -5
  439. package/dist/src/logger/consoleLogger.d.ts +0 -5
  440. package/dist/src/logger/consoleLogger.js +0 -15
  441. package/dist/src/mappers/index.d.ts +0 -0
  442. package/dist/src/mappers/index.js +0 -1
  443. package/dist/src/mappers/responseMapper.d.ts +0 -10
  444. package/dist/src/mappers/responseMapper.js +0 -35
  445. package/dist/src/migrator/index.d.ts +0 -0
  446. package/dist/src/migrator/index.js +0 -1
  447. package/dist/src/migrator/migrator.d.ts +0 -11
  448. package/dist/src/migrator/migrator.js +0 -105
  449. package/dist/src/serializer/serializer.d.ts +0 -53
  450. package/dist/src/serializer/serializer.js +0 -260
  451. package/dist/src/tables/abstractTable.d.ts +0 -68
  452. package/dist/src/tables/abstractTable.js +0 -151
  453. package/dist/src/tables/index.d.ts +0 -3
  454. package/dist/src/tables/index.js +0 -11
  455. package/dist/src/tables/inferTypes.d.ts +0 -39
  456. package/dist/src/tables/inferTypes.js +0 -2
  457. package/dist/src/tables/migrationsTable.d.ts +0 -7
  458. package/dist/src/tables/migrationsTable.js +0 -18
  459. package/dist/src/test.d.ts +0 -1
  460. package/dist/src/test.js +0 -65
  461. package/dist/src/types/type.d.ts +0 -10
  462. package/dist/src/types/type.js +0 -14
  463. package/dist/src/utils/ecranate.d.ts +0 -2
  464. package/dist/src/utils/ecranate.js +0 -8
  465. package/dist/tables/abstractTable.d.ts +0 -68
  466. package/dist/tables/abstractTable.js +0 -151
  467. package/dist/tables/index.d.ts +0 -3
  468. package/dist/tables/index.js +0 -11
  469. package/dist/tables/inferTypes.d.ts +0 -39
  470. package/dist/tables/inferTypes.js +0 -2
  471. package/dist/tables/migrationsTable.d.ts +0 -7
  472. package/dist/tables/migrationsTable.js +0 -18
  473. package/dist/test.d.ts +0 -1
  474. package/dist/test.js +0 -65
  475. package/dist/tsconfig.tsbuildinfo +0 -5054
  476. package/dist/types/type.d.ts +0 -10
  477. package/dist/types/type.js +0 -14
  478. package/dist/utils/ecranate.d.ts +0 -2
  479. package/dist/utils/ecranate.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.10.24",
3
+ "version": "0.10.25",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -39,6 +39,5 @@
39
39
  "ts": "tsc",
40
40
  "lint": "eslint ./src --ext .ts",
41
41
  "run": "ts-node src/tables/newAbstractTable.ts"
42
- },
43
- "readme": "# DrizzleORM\n\n**DrizzleORM** is an ORM framework for \n[TypeScript](https://www.typescriptlang.org/).\nIt offers you several levels of Database communication:\n* Typesafe Table View approach \n* Typesafe Query Builder\n* Simple SQL query execution\n\nDrizzle ORM is highly influenced by [Exposed](https://github.com/JetBrains/Exposed) and Jetbrains development methodology\n\n## Supported Databases\n\n* PostgreSQL\n\n## Links\n\nIn Progress\n\n## Installing\n\n```bash\nnpm install drizzle-orm drizzle-kit\n```\n#### **In Progress**\n```bash\nyarn add drizzle-orm drizzle-kit\nbower install drizzle-orm drizzle-kit\n```\n\n## Connecting to database\n\n```tsx\nimport { DbConnector } from \"drizzle-orm\";\n\n// connect via postgresql connection url\nconst db = await new DbConnector()\n\t.connectionString(\"postgres://user:password@host:port/db\")\n\t.connect();\n\n// or by params\nconst db = await new DbConnector()\n\t.params({\n\t\thost: '0.0.0.0',\n\t\tport: 5432,\n\t\tuser: 'user',\n\t\tpassword: 'password',\n\t\tdb: 'optional_db_name'\n\t}).connect();\n```\n## Project structure\n- tables folder\n- migrations folder\n\n## Create tables\n### Users Table\n---\n```typescript\n\nexport const rolesEnum = createEnum({ alias: 'test-enum', values: ['user', 'guest', 'admin'] });\n\nexport default class UsersTable extends AbstractTable<UsersTable> {\n public id = this.serial('id').primaryKey();\n public fullName = this.text('full_name');\n\n public phone = this.varchar('phone', { size: 256 });\n public media = this.jsonb<string[]>('media');\n public decimalField = this.decimal('test', { precision: 100, scale: 2 }).notNull();\n public bigIntField = this.bigint('test1', 'max_bytes_53');\n public role = this.type(rolesEnum, 'name_in_table').notNull();\n\n public createdAt = this.timestamp('created_at').notNull();\n\n public createdAtWithTimezone = this.timestamptz('created_at_time_zone');\n\n public updatedAt = this.timestamp('updated_at').defaultValue(Defaults.CURRENT_TIMESTAMP);\n public isArchived = this.bool('is_archived').defaultValue(false);\n\n public phoneFullNameIndex = this.index([this.phone, this.fullName]);\n public phoneIndex = this.uniqueIndex(this.phone);\n\n public tableName(): string {\n return 'users';\n }\n}\n```\n### Cities Table\n---\n```typescript\ninterface CityMeta {\n population: number,\n connection: string,\n}\n\nexport default class CitiesTable extends AbstractTable<CitiesTable> {\n public id = this.serial('id').primaryKey();\n\n public foundationDate = this.timestamp('name').notNull();\n public location = this.varchar('page', { size: 256 });\n\n public userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onUpdate: 'CASCADE' });\n\n public metadata = this.jsonb<CityMeta>('metadata');\n\n public tableName(): string {\n return 'cities';\n }\n}\n```\n### User Groups Table\n---\n```typescript\nexport default class UserGroupsTable extends AbstractTable<UserGroupsTable> {\n public id = this.serial('id').primaryKey();\n\n public name = this.varchar('name');\n public description = this.varchar('description');\n\n public tableName(): string {\n return 'user_groups';\n }\n}\n```\n### User to User Groups Table\n---\n#### Many to many connection between Users and User Groups\n```typescript\nexport default class UsersToUserGroupsTable extends AbstractTable<UsersToUserGroupsTable> {\n public groupId = this.int('city_id').foreignKey(UserGroupsTable, (table) => table.id, { onDelete: 'CASCADE' });\n public userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onDelete: 'CASCADE' });\n\n public manyToManyIndex = this.index([this.groupId, this.userId]);\n\n public tableName(): string {\n return 'users_to_user_groups';\n }\n}\n```\n\n## CRUD\n### **SELECT**\n---\n```typescript\nconst db = await new DbConnector()\n .connectionString('postgresql://postgres@127.0.0.1/drizzle')\n .connect();\n\nconst usersTable = new UsersTable(db);\n\n// select all\nconst allSelect = await usersTable.select().all();\n\n// select first\nconst firstSelect = await usersTable.select().findOne();\n```\n#### **Sorting and Filtering**\n---\n##### Select all records from `Users` where phone is `\"hello\"`\n```typescript\nconst eqSelect = await usersTable.select().where(\n eq(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` where **both** phone is `\"hello\"` **and** phone is `\"hello\"`\n```typescript\nconst andSelect = await usersTable.select().where(\n and([\n eq(usersTable.phone, 'hello'),\n eq(usersTable.phone, 'hello')\n ]),\n).all();\n```\n##### Select all records from `Users` where **either** phone is `\"hello\"` **or** phone is `\"hello\"`\n```typescript\nconst orSelect = await usersTable.select().where(\n or([eq(usersTable.phone, 'hello')]),\n).all();\n```\n##### Select all records from `Users` using **LIMIT** and **OFFSET**\n```typescript\nconst limitOffsetSelect = await usersTable.select().limit(10).offset(10).all();\n```\n##### Select all records from `Users` where `phone` contains `\"hello\"`\n```typescript\nconst likeSelect = await usersTable.select().where(\n like(usersTable.phone, '%hello%')\n).all();\n```\n##### Select all records from `Users` where `phone` equals to some of values from array\n```typescript\nconst inArraySelect = usersTable.select().where(\n inArray(usersTable.phone, ['hello'])\n).all();\n```\n##### Select all records from `Users` where `phone` greater(**>**) than `\"hello\"`\n```typescript\nconst greaterSelect = usersTable.select().where(\n greater(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` where `phone` less(**<**) than `\"hello\"`\n```typescript\nconst lessSelect = usersTable.select().where(\n less(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` where `phone` greater or equals(**>=**) than `\"hello\"`\n```typescript\nconst greaterEqSelect = usersTable.select().where(\n greaterEq(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` where `phone` less or equals(**<=**) \n```typescript\nconst lessEqSelect = usersTable.select().where(\n lessEq(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` where `phone` is **NULL**\n```typescript\nconst isNullSelect = usersTable.select().where(\n isNull(usersTable.phone)\n).all();\n```\n##### Select all records from `Users` where `phone` not equals to `\"hello\"`\n```typescript\nconst notEqSelect = usersTable.select().where(\n notEq(usersTable.phone, 'hello')\n).all();\n```\n##### Select all records from `Users` ordered by `phone` in ascending order\n```typescript\nconst ordered = await usersTable.select().orderBy((table) => table.phone, Order.ASC).all();\n```\n#### **Partial Selecting**\n ```typescript\n const partialSelect = await usersTable.select({\n mappedId: usersTable.id,\n mappedPhone: usersTable.phone,\n }).all();\n\n // Usage\n const { mappedId, mappedPhone } = partialSelect;\n ```\n\n\n### **Update**\n---\n##### Update `fullName` to `newName` in `Users` where phone is `\"hello\"`\n```typescript\nawait usersTable.update()\n .where(eq(usersTable.phone, 'hello'))\n .set({ fullName: 'newName' })\n .execute();\n```\n##### Update `fullName` to `newName` in `Users` where phone is `\"hello\"` returning updated `User` model\n```typescript\nawait usersTable.update()\n .where(eq(usersTable.phone, 'hello'))\n .set({ fullName: 'newName' })\n .all();\n```\n##### Update `fullName` to `newName` in `Users` where phone is `\"hello\"` returning updated `User` model\n```typescript\nawait usersTable.update()\n .where(eq(usersTable.phone, 'hello'))\n .set({ fullName: 'newName' })\n .findOne();\n```\n\n### **Delete**\n##### Delete `user` where phone is `\"hello\"`\n```typescript\nawait usersTable.delete()\n .where(eq(usersTable.phone, 'hello'))\n .execute();\n```\n##### Delete `user` where phone is `\"hello\"` returning updated `User` model\n```typescript\nawait usersTable.delete()\n .where(eq(usersTable.phone, 'hello'))\n .all();\n```\n##### Delete `user` where phone is `\"hello\"` returning updated `User` model\n```typescript\nawait usersTable.delete()\n .where(eq(usersTable.phone, 'hello'))\n .findOne();\n```\n\n### **Insert**\n##### Insert `user` with required fields\n```typescript\nawait usersTable.insert({\n test: 1,\n createdAt: new Date(),\n}).execute();\n```\n##### Insert `user` with required fields and get all rows as array\n```typescript\nconst user = await usersTable.insert({\n test: 1,\n createdAt: new Date(),\n}).all();\n```\n##### Insert `user` with required fields and get inserted entity\n```typescript\nconst user = await usersTable.insert({\n test: 1,\n createdAt: new Date(),\n}).findOne();\n```\n##### Insert many `users` with required fields and get all inserted entities\n```typescript\nconst users = await usersTable.insertMany([{\n test: 1,\n createdAt: new Date(),\n }, {\n test: 2,\n createdAt: new Date(),\n }]).all();\n```\n##### Insert many `users` with required fields and get all inserted entities. If such user already exists - update `phone` field\n```typescript\nawait usersTable.insertMany([{\n test: 1,\n createdAt: new Date(),\n }, {\n test: 2,\n createdAt: new Date(),\n }])\n .onConflict(\n (table) => table.phoneIndex,\n { phone: 'confilctUpdate' },\n ).all();\n```\n\n## Joins\n### Join One-To-Many Tables\n##### Join Cities with Users and map to city object with full user\n```typescript\nconst usersTable = new UsersTable(db);\nconst citiesTable = new CitiesTable(db);\n\n const userWithCities = await citiesTable.select()\n .where(eq(citiesTable.id, 1))\n .leftJoin(UsersTable,\n (city) => city.userId,\n (users) => users.id)\n .execute();\n\nconst citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));\n```\n\n### Join Many-To-Many Tables\n##### Join User Groups with Users, using many-to-many table and map response to get user object with groups array\n```typescript\n const usersWithUserGroups = await usersToUserGroupsTable.select()\n .where(eq(userGroupsTable.id, 1))\n .leftJoin(UsersTable,\n (userToGroup) => userToGroup.userId,\n (users) => users.id)\n .leftJoin(UsersToUserGroupsTable, UserGroupsTable,\n (userToGroup) => userToGroup.groupId,\n (users) => users.id)\n .execute();\n\n const userGroupWithUsers = usersWithUserGroups.group({\n one: (_, dbUser, dbUserGroup) => dbUser!,\n many: (_, dbUser, dbUserGroup) => dbUserGroup!,\n });\n\n const userWithGroups: ExtractModel<UsersTable> & { groups: ExtractModel<UserGroupsTable>[] } = {\n ...userGroupWithUsers.one,\n groups: userGroupWithUsers.many,\n };\n```\n##### Join User Groups with Users, using many-to-many table and map response to get user group object with users array\n```typescript\n const usersWithUserGroups = await usersToUserGroupsTable.select()\n .where(eq(userGroupsTable.id, 1))\n .leftJoin(UsersTable,\n (userToGroup) => userToGroup.userId,\n (users) => users.id)\n .leftJoin(UsersToUserGroupsTable, UserGroupsTable,\n (userToGroup) => userToGroup.groupId,\n (users) => users.id)\n .execute();\n\n const userGroupWithUsers = usersWithUserGroups.group({\n one: (_, dbUser, dbUserGroup) => dbUserGroup!,\n many: (_, dbUser, dbUserGroup) => dbUser!,\n });\n\n const userWithGroups: ExtractModel<UserGroupsTable> & { users: ExtractModel<UsersTable>[] } = {\n ...userGroupWithUsers.one,\n users: userGroupWithUsers.many,\n };\n```\n### Join using partial field select\n##### Join Cities with Users getting only needed fields form request\n```typescript\nawait citiesTable.select({\n id: citiesTable.id,\n userId: citiesTable.userId,\n })\n .where(eq(citiesTable.id, 1))\n .leftJoin(UsersTable,\n (city) => city.userId,\n (users) => users.id,\n {\n id: usersTable.id,\n })\n .execute();\n\nconst citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));\n```\n\n\n## Migrations\n#### To run migrations generated by drizzle-kit you could use `Migrator` class\n##### Provide drizzle-kit config path\n```typescript\nawait drizzle.migrator(db).migrate('src/drizzle.config.yaml');\n```\n##### Another possibility is to provide object with path to folder with migrations\n```typescript\nawait drizzle.migrator(db).migrate({ migrationFolder: 'drizzle' });\n```\n\n\n## Raw query usage\n#### If you have some complex queries to execute and drizzle-orm can't handle them yet, then you could use `rawQuery` execution\n\n\n##### Execute custom raw query\n```typescript\nconst res: QueryResult<any> = await db.session().execute('SELECT * FROM users WHERE user.id = $1', [1]);\n```"
42
+ }
44
43
  }
package/README.md DELETED
@@ -1,439 +0,0 @@
1
- # DrizzleORM
2
-
3
- **DrizzleORM** is an ORM framework for
4
- [TypeScript](https://www.typescriptlang.org/).
5
- It offers you several levels of Database communication:
6
- * Typesafe Table View approach
7
- * Typesafe Query Builder
8
- * Simple SQL query execution
9
-
10
- Drizzle ORM is highly influenced by [Exposed](https://github.com/JetBrains/Exposed) and Jetbrains development methodology
11
-
12
- ## Supported Databases
13
-
14
- * PostgreSQL
15
-
16
- ## Links
17
-
18
- In Progress
19
-
20
- ## Installing
21
-
22
- ```bash
23
- npm install drizzle-orm drizzle-kit
24
- ```
25
- #### **In Progress**
26
- ```bash
27
- yarn add drizzle-orm drizzle-kit
28
- bower install drizzle-orm drizzle-kit
29
- ```
30
-
31
- ## Connecting to database
32
-
33
- ```tsx
34
- import { DbConnector } from "drizzle-orm";
35
-
36
- // connect via postgresql connection url
37
- const db = await new DbConnector()
38
- .connectionString("postgres://user:password@host:port/db")
39
- .connect();
40
-
41
- // or by params
42
- const db = await new DbConnector()
43
- .params({
44
- host: '0.0.0.0',
45
- port: 5432,
46
- user: 'user',
47
- password: 'password',
48
- db: 'optional_db_name'
49
- }).connect();
50
- ```
51
- ## Project structure
52
- - tables folder
53
- - migrations folder
54
-
55
- ## Create tables
56
- ### Users Table
57
- ---
58
- ```typescript
59
-
60
- export const rolesEnum = createEnum({ alias: 'test-enum', values: ['user', 'guest', 'admin'] });
61
-
62
- export default class UsersTable extends AbstractTable<UsersTable> {
63
- public id = this.serial('id').primaryKey();
64
- public fullName = this.text('full_name');
65
-
66
- public phone = this.varchar('phone', { size: 256 });
67
- public media = this.jsonb<string[]>('media');
68
- public decimalField = this.decimal('test', { precision: 100, scale: 2 }).notNull();
69
- public bigIntField = this.bigint('test1', 'max_bytes_53');
70
- public role = this.type(rolesEnum, 'name_in_table').notNull();
71
-
72
- public createdAt = this.timestamp('created_at').notNull();
73
-
74
- public createdAtWithTimezone = this.timestamptz('created_at_time_zone');
75
-
76
- public updatedAt = this.timestamp('updated_at').defaultValue(Defaults.CURRENT_TIMESTAMP);
77
- public isArchived = this.bool('is_archived').defaultValue(false);
78
-
79
- public phoneFullNameIndex = this.index([this.phone, this.fullName]);
80
- public phoneIndex = this.uniqueIndex(this.phone);
81
-
82
- public tableName(): string {
83
- return 'users';
84
- }
85
- }
86
- ```
87
- ### Cities Table
88
- ---
89
- ```typescript
90
- interface CityMeta {
91
- population: number,
92
- connection: string,
93
- }
94
-
95
- export default class CitiesTable extends AbstractTable<CitiesTable> {
96
- public id = this.serial('id').primaryKey();
97
-
98
- public foundationDate = this.timestamp('name').notNull();
99
- public location = this.varchar('page', { size: 256 });
100
-
101
- public userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onUpdate: 'CASCADE' });
102
-
103
- public metadata = this.jsonb<CityMeta>('metadata');
104
-
105
- public tableName(): string {
106
- return 'cities';
107
- }
108
- }
109
- ```
110
- ### User Groups Table
111
- ---
112
- ```typescript
113
- export default class UserGroupsTable extends AbstractTable<UserGroupsTable> {
114
- public id = this.serial('id').primaryKey();
115
-
116
- public name = this.varchar('name');
117
- public description = this.varchar('description');
118
-
119
- public tableName(): string {
120
- return 'user_groups';
121
- }
122
- }
123
- ```
124
- ### User to User Groups Table
125
- ---
126
- #### Many to many connection between Users and User Groups
127
- ```typescript
128
- export default class UsersToUserGroupsTable extends AbstractTable<UsersToUserGroupsTable> {
129
- public groupId = this.int('city_id').foreignKey(UserGroupsTable, (table) => table.id, { onDelete: 'CASCADE' });
130
- public userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onDelete: 'CASCADE' });
131
-
132
- public manyToManyIndex = this.index([this.groupId, this.userId]);
133
-
134
- public tableName(): string {
135
- return 'users_to_user_groups';
136
- }
137
- }
138
- ```
139
-
140
- ## CRUD
141
- ### **SELECT**
142
- ---
143
- ```typescript
144
- const db = await new DbConnector()
145
- .connectionString('postgresql://postgres@127.0.0.1/drizzle')
146
- .connect();
147
-
148
- const usersTable = new UsersTable(db);
149
-
150
- // select all
151
- const allSelect = await usersTable.select().all();
152
-
153
- // select first
154
- const firstSelect = await usersTable.select().findOne();
155
- ```
156
- #### **Sorting and Filtering**
157
- ---
158
- ##### Select all records from `Users` where phone is `"hello"`
159
- ```typescript
160
- const eqSelect = await usersTable.select().where(
161
- eq(usersTable.phone, 'hello')
162
- ).all();
163
- ```
164
- ##### Select all records from `Users` where **both** phone is `"hello"` **and** phone is `"hello"`
165
- ```typescript
166
- const andSelect = await usersTable.select().where(
167
- and([
168
- eq(usersTable.phone, 'hello'),
169
- eq(usersTable.phone, 'hello')
170
- ]),
171
- ).all();
172
- ```
173
- ##### Select all records from `Users` where **either** phone is `"hello"` **or** phone is `"hello"`
174
- ```typescript
175
- const orSelect = await usersTable.select().where(
176
- or([eq(usersTable.phone, 'hello')]),
177
- ).all();
178
- ```
179
- ##### Select all records from `Users` using **LIMIT** and **OFFSET**
180
- ```typescript
181
- const limitOffsetSelect = await usersTable.select().limit(10).offset(10).all();
182
- ```
183
- ##### Select all records from `Users` where `phone` contains `"hello"`
184
- ```typescript
185
- const likeSelect = await usersTable.select().where(
186
- like(usersTable.phone, '%hello%')
187
- ).all();
188
- ```
189
- ##### Select all records from `Users` where `phone` equals to some of values from array
190
- ```typescript
191
- const inArraySelect = usersTable.select().where(
192
- inArray(usersTable.phone, ['hello'])
193
- ).all();
194
- ```
195
- ##### Select all records from `Users` where `phone` greater(**>**) than `"hello"`
196
- ```typescript
197
- const greaterSelect = usersTable.select().where(
198
- greater(usersTable.phone, 'hello')
199
- ).all();
200
- ```
201
- ##### Select all records from `Users` where `phone` less(**<**) than `"hello"`
202
- ```typescript
203
- const lessSelect = usersTable.select().where(
204
- less(usersTable.phone, 'hello')
205
- ).all();
206
- ```
207
- ##### Select all records from `Users` where `phone` greater or equals(**>=**) than `"hello"`
208
- ```typescript
209
- const greaterEqSelect = usersTable.select().where(
210
- greaterEq(usersTable.phone, 'hello')
211
- ).all();
212
- ```
213
- ##### Select all records from `Users` where `phone` less or equals(**<=**)
214
- ```typescript
215
- const lessEqSelect = usersTable.select().where(
216
- lessEq(usersTable.phone, 'hello')
217
- ).all();
218
- ```
219
- ##### Select all records from `Users` where `phone` is **NULL**
220
- ```typescript
221
- const isNullSelect = usersTable.select().where(
222
- isNull(usersTable.phone)
223
- ).all();
224
- ```
225
- ##### Select all records from `Users` where `phone` not equals to `"hello"`
226
- ```typescript
227
- const notEqSelect = usersTable.select().where(
228
- notEq(usersTable.phone, 'hello')
229
- ).all();
230
- ```
231
- ##### Select all records from `Users` ordered by `phone` in ascending order
232
- ```typescript
233
- const ordered = await usersTable.select().orderBy((table) => table.phone, Order.ASC).all();
234
- ```
235
- #### **Partial Selecting**
236
- ```typescript
237
- const partialSelect = await usersTable.select({
238
- mappedId: usersTable.id,
239
- mappedPhone: usersTable.phone,
240
- }).all();
241
-
242
- // Usage
243
- const { mappedId, mappedPhone } = partialSelect;
244
- ```
245
-
246
-
247
- ### **Update**
248
- ---
249
- ##### Update `fullName` to `newName` in `Users` where phone is `"hello"`
250
- ```typescript
251
- await usersTable.update()
252
- .where(eq(usersTable.phone, 'hello'))
253
- .set({ fullName: 'newName' })
254
- .execute();
255
- ```
256
- ##### Update `fullName` to `newName` in `Users` where phone is `"hello"` returning updated `User` model
257
- ```typescript
258
- await usersTable.update()
259
- .where(eq(usersTable.phone, 'hello'))
260
- .set({ fullName: 'newName' })
261
- .all();
262
- ```
263
- ##### Update `fullName` to `newName` in `Users` where phone is `"hello"` returning updated `User` model
264
- ```typescript
265
- await usersTable.update()
266
- .where(eq(usersTable.phone, 'hello'))
267
- .set({ fullName: 'newName' })
268
- .findOne();
269
- ```
270
-
271
- ### **Delete**
272
- ##### Delete `user` where phone is `"hello"`
273
- ```typescript
274
- await usersTable.delete()
275
- .where(eq(usersTable.phone, 'hello'))
276
- .execute();
277
- ```
278
- ##### Delete `user` where phone is `"hello"` returning updated `User` model
279
- ```typescript
280
- await usersTable.delete()
281
- .where(eq(usersTable.phone, 'hello'))
282
- .all();
283
- ```
284
- ##### Delete `user` where phone is `"hello"` returning updated `User` model
285
- ```typescript
286
- await usersTable.delete()
287
- .where(eq(usersTable.phone, 'hello'))
288
- .findOne();
289
- ```
290
-
291
- ### **Insert**
292
- ##### Insert `user` with required fields
293
- ```typescript
294
- await usersTable.insert({
295
- test: 1,
296
- createdAt: new Date(),
297
- }).execute();
298
- ```
299
- ##### Insert `user` with required fields and get all rows as array
300
- ```typescript
301
- const user = await usersTable.insert({
302
- test: 1,
303
- createdAt: new Date(),
304
- }).all();
305
- ```
306
- ##### Insert `user` with required fields and get inserted entity
307
- ```typescript
308
- const user = await usersTable.insert({
309
- test: 1,
310
- createdAt: new Date(),
311
- }).findOne();
312
- ```
313
- ##### Insert many `users` with required fields and get all inserted entities
314
- ```typescript
315
- const users = await usersTable.insertMany([{
316
- test: 1,
317
- createdAt: new Date(),
318
- }, {
319
- test: 2,
320
- createdAt: new Date(),
321
- }]).all();
322
- ```
323
- ##### Insert many `users` with required fields and get all inserted entities. If such user already exists - update `phone` field
324
- ```typescript
325
- await usersTable.insertMany([{
326
- test: 1,
327
- createdAt: new Date(),
328
- }, {
329
- test: 2,
330
- createdAt: new Date(),
331
- }])
332
- .onConflict(
333
- (table) => table.phoneIndex,
334
- { phone: 'confilctUpdate' },
335
- ).all();
336
- ```
337
-
338
- ## Joins
339
- ### Join One-To-Many Tables
340
- ##### Join Cities with Users and map to city object with full user
341
- ```typescript
342
- const usersTable = new UsersTable(db);
343
- const citiesTable = new CitiesTable(db);
344
-
345
- const userWithCities = await citiesTable.select()
346
- .where(eq(citiesTable.id, 1))
347
- .leftJoin(UsersTable,
348
- (city) => city.userId,
349
- (users) => users.id)
350
- .execute();
351
-
352
- const citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));
353
- ```
354
-
355
- ### Join Many-To-Many Tables
356
- ##### Join User Groups with Users, using many-to-many table and map response to get user object with groups array
357
- ```typescript
358
- const usersWithUserGroups = await usersToUserGroupsTable.select()
359
- .where(eq(userGroupsTable.id, 1))
360
- .leftJoin(UsersTable,
361
- (userToGroup) => userToGroup.userId,
362
- (users) => users.id)
363
- .leftJoin(UsersToUserGroupsTable, UserGroupsTable,
364
- (userToGroup) => userToGroup.groupId,
365
- (users) => users.id)
366
- .execute();
367
-
368
- const userGroupWithUsers = usersWithUserGroups.group({
369
- one: (_, dbUser, dbUserGroup) => dbUser!,
370
- many: (_, dbUser, dbUserGroup) => dbUserGroup!,
371
- });
372
-
373
- const userWithGroups: ExtractModel<UsersTable> & { groups: ExtractModel<UserGroupsTable>[] } = {
374
- ...userGroupWithUsers.one,
375
- groups: userGroupWithUsers.many,
376
- };
377
- ```
378
- ##### Join User Groups with Users, using many-to-many table and map response to get user group object with users array
379
- ```typescript
380
- const usersWithUserGroups = await usersToUserGroupsTable.select()
381
- .where(eq(userGroupsTable.id, 1))
382
- .leftJoin(UsersTable,
383
- (userToGroup) => userToGroup.userId,
384
- (users) => users.id)
385
- .leftJoin(UsersToUserGroupsTable, UserGroupsTable,
386
- (userToGroup) => userToGroup.groupId,
387
- (users) => users.id)
388
- .execute();
389
-
390
- const userGroupWithUsers = usersWithUserGroups.group({
391
- one: (_, dbUser, dbUserGroup) => dbUserGroup!,
392
- many: (_, dbUser, dbUserGroup) => dbUser!,
393
- });
394
-
395
- const userWithGroups: ExtractModel<UserGroupsTable> & { users: ExtractModel<UsersTable>[] } = {
396
- ...userGroupWithUsers.one,
397
- users: userGroupWithUsers.many,
398
- };
399
- ```
400
- ### Join using partial field select
401
- ##### Join Cities with Users getting only needed fields form request
402
- ```typescript
403
- await citiesTable.select({
404
- id: citiesTable.id,
405
- userId: citiesTable.userId,
406
- })
407
- .where(eq(citiesTable.id, 1))
408
- .leftJoin(UsersTable,
409
- (city) => city.userId,
410
- (users) => users.id,
411
- {
412
- id: usersTable.id,
413
- })
414
- .execute();
415
-
416
- const citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));
417
- ```
418
-
419
-
420
- ## Migrations
421
- #### To run migrations generated by drizzle-kit you could use `Migrator` class
422
- ##### Provide drizzle-kit config path
423
- ```typescript
424
- await drizzle.migrator(db).migrate('src/drizzle.config.yaml');
425
- ```
426
- ##### Another possibility is to provide object with path to folder with migrations
427
- ```typescript
428
- await drizzle.migrator(db).migrate({ migrationFolder: 'drizzle' });
429
- ```
430
-
431
-
432
- ## Raw query usage
433
- #### If you have some complex queries to execute and drizzle-orm can't handle them yet, then you could use `rawQuery` execution
434
-
435
-
436
- ##### Execute custom raw query
437
- ```typescript
438
- const res: QueryResult<any> = await db.session().execute('SELECT * FROM users WHERE user.id = $1', [1]);
439
- ```
@@ -1,11 +0,0 @@
1
- import { AbstractColumn } from '../../columns/column';
2
- import ColumnType from '../../columns/types/columnType';
3
- import { AbstractTable } from '../../tables';
4
- export default class Aggregator {
5
- protected _fields: Array<string>;
6
- protected _table: AbstractTable<any>;
7
- constructor(table: AbstractTable<any>, partial?: {
8
- [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, AbstractTable<any>>;
9
- });
10
- protected generateSelectArray: (table: string, columns: AbstractColumn<ColumnType>[], id?: number | undefined) => string[];
11
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable max-len */
4
- const column_1 = require("../../columns/column");
5
- const ecranate_1 = require("../../utils/ecranate");
6
- // eslint-disable-next-line max-len
7
- class Aggregator {
8
- constructor(table, partial) {
9
- this._fields = [];
10
- this.generateSelectArray = (table, columns, id) => {
11
- const selectFields = [];
12
- columns.forEach((field) => {
13
- if (field instanceof column_1.Column) {
14
- selectFields.push(' ');
15
- selectFields.push(table);
16
- selectFields.push('.');
17
- selectFields.push(ecranate_1.ecranate(field.getColumnName()));
18
- selectFields.push(' AS ');
19
- selectFields.push(ecranate_1.ecranate(`${field.getAlias()}${id ? `_${id}` : ''}`));
20
- selectFields.push(',');
21
- }
22
- });
23
- selectFields.pop();
24
- return selectFields;
25
- };
26
- this._table = table;
27
- if (!partial) {
28
- this._fields = this.generateSelectArray(this._table.tableName(), Object.values(this._table.mapServiceToDb()));
29
- }
30
- else {
31
- this._fields = this.generateSelectArray(this._table.tableName(), Object.values(partial));
32
- }
33
- }
34
- }
35
- exports.default = Aggregator;
@@ -1,16 +0,0 @@
1
- import { AbstractTable } from '../../tables';
2
- import Expr from '../requestBuilders/where/where';
3
- import Aggregator from './abstractAggregator';
4
- export default class DeleteAggregator extends Aggregator {
5
- private _from;
6
- private _filters;
7
- private _values;
8
- private _delete;
9
- constructor(table: AbstractTable<any>);
10
- filters: (filters: Expr) => DeleteAggregator;
11
- appendFrom: (tableName: string) => DeleteAggregator;
12
- buildQuery: () => {
13
- query: string;
14
- values: Array<any>;
15
- };
16
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const abstractAggregator_1 = __importDefault(require("./abstractAggregator"));
7
- class DeleteAggregator extends abstractAggregator_1.default {
8
- constructor(table) {
9
- super(table);
10
- this._from = [];
11
- this._filters = [];
12
- this._values = [];
13
- this._delete = ['DELETE'];
14
- this.filters = (filters) => {
15
- if (filters) {
16
- const filterQuery = filters.toQuery();
17
- this._filters.push('WHERE ');
18
- this._filters.push(filterQuery.query);
19
- this._values = filterQuery.values;
20
- }
21
- return this;
22
- };
23
- this.appendFrom = (tableName) => {
24
- this._from.push(' FROM ');
25
- this._from.push(tableName);
26
- return this;
27
- };
28
- this.buildQuery = () => {
29
- // this._delete.push(this._fields.join(''));
30
- this._delete.push('\n');
31
- this._delete.push(this._from.join(''));
32
- this._delete.push('\n');
33
- this._delete.push(this._filters.join(''));
34
- this._delete.push('\n');
35
- this._delete.push('RETURNING');
36
- this._delete.push('\n');
37
- this._delete.push(this._fields.join(''));
38
- return { query: this._delete.join(''), values: this._values };
39
- };
40
- }
41
- }
42
- exports.default = DeleteAggregator;
@@ -1,22 +0,0 @@
1
- import { AbstractTable } from '../../tables';
2
- import { Indexing } from '../../tables/inferTypes';
3
- import { UpdateExpr } from '../requestBuilders/updates/updates';
4
- import Aggregator from './abstractAggregator';
5
- export default class InsertAggregator extends Aggregator {
6
- private _onConflict;
7
- private _columns;
8
- private _query;
9
- private _values;
10
- private _from;
11
- private _insert;
12
- constructor(table: AbstractTable<any>);
13
- appendColumns: () => void;
14
- appendValues: (values: {
15
- [name: string]: any;
16
- }[]) => void;
17
- appendOnConflict: (column: Indexing, updates?: UpdateExpr | undefined) => this;
18
- buildQuery: () => {
19
- query: string;
20
- values: Array<any>;
21
- };
22
- }