drizzle-orm 0.11.5 → 0.12.0-beta.1

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 (410) hide show
  1. package/branded-types.d.ts +18 -0
  2. package/branded-types.js +6 -0
  3. package/branded-types.js.map +1 -0
  4. package/column-builder.d.ts +14 -0
  5. package/column-builder.js +24 -0
  6. package/column-builder.js.map +1 -0
  7. package/column.d.ts +37 -0
  8. package/column.js +41 -0
  9. package/column.js.map +1 -0
  10. package/connection.d.ts +29 -0
  11. package/connection.js +91 -0
  12. package/connection.js.map +1 -0
  13. package/expressions.d.ts +1 -0
  14. package/expressions.js +18 -0
  15. package/expressions.js.map +1 -0
  16. package/index.d.ts +4 -13
  17. package/index.js +11 -24
  18. package/index.js.map +1 -1
  19. package/operations.d.ts +13 -0
  20. package/{tables/inferTypes.js → operations.js} +1 -1
  21. package/operations.js.map +1 -0
  22. package/package.json +58 -27
  23. package/sql/expressions/conditions.d.ts +33 -0
  24. package/sql/expressions/conditions.js +140 -0
  25. package/sql/expressions/conditions.js.map +1 -0
  26. package/sql/expressions/index.d.ts +2 -0
  27. package/sql/expressions/index.js +19 -0
  28. package/sql/expressions/index.js.map +1 -0
  29. package/sql/expressions/select.d.ts +5 -0
  30. package/sql/expressions/select.js +13 -0
  31. package/sql/expressions/select.js.map +1 -0
  32. package/sql/index.d.ts +97 -0
  33. package/sql/index.js +172 -0
  34. package/sql/index.js.map +1 -0
  35. package/table.d.ts +10 -0
  36. package/table.js +36 -0
  37. package/table.js.map +1 -0
  38. package/utils.d.ts +7 -0
  39. package/utils.js +18 -0
  40. package/utils.js.map +1 -0
  41. package/LICENSE +0 -674
  42. package/README.md +0 -343
  43. package/builders/aggregators/abstractAggregator.d.ts +0 -12
  44. package/builders/aggregators/abstractAggregator.js +0 -52
  45. package/builders/aggregators/abstractAggregator.js.map +0 -1
  46. package/builders/aggregators/deleteAggregator.d.ts +0 -16
  47. package/builders/aggregators/deleteAggregator.js +0 -43
  48. package/builders/aggregators/deleteAggregator.js.map +0 -1
  49. package/builders/aggregators/insertAggregator.d.ts +0 -22
  50. package/builders/aggregators/insertAggregator.js +0 -110
  51. package/builders/aggregators/insertAggregator.js.map +0 -1
  52. package/builders/aggregators/selectAggregator.d.ts +0 -33
  53. package/builders/aggregators/selectAggregator.js +0 -111
  54. package/builders/aggregators/selectAggregator.js.map +0 -1
  55. package/builders/aggregators/selectAggregatorV1.d.ts +0 -39
  56. package/builders/aggregators/selectAggregatorV1.js +0 -144
  57. package/builders/aggregators/selectAggregatorV1.js.map +0 -1
  58. package/builders/aggregators/updateAggregator.d.ts +0 -19
  59. package/builders/aggregators/updateAggregator.js +0 -54
  60. package/builders/aggregators/updateAggregator.js.map +0 -1
  61. package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
  62. package/builders/highLvlBuilders/abstractRequestBuilder.js +0 -34
  63. package/builders/highLvlBuilders/abstractRequestBuilder.js.map +0 -1
  64. package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
  65. package/builders/highLvlBuilders/deleteRequestBuilder.js +0 -62
  66. package/builders/highLvlBuilders/deleteRequestBuilder.js.map +0 -1
  67. package/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
  68. package/builders/highLvlBuilders/insertRequestBuilder.js +0 -74
  69. package/builders/highLvlBuilders/insertRequestBuilder.js.map +0 -1
  70. package/builders/highLvlBuilders/joins/joinBuilderResponse.d.ts +0 -8
  71. package/builders/highLvlBuilders/joins/joinBuilderResponse.js +0 -17
  72. package/builders/highLvlBuilders/joins/joinBuilderResponse.js.map +0 -1
  73. package/builders/highLvlBuilders/joins/proxies/joinProxies.d.ts +0 -16
  74. package/builders/highLvlBuilders/joins/proxies/joinProxies.js +0 -48
  75. package/builders/highLvlBuilders/joins/proxies/joinProxies.js.map +0 -1
  76. package/builders/highLvlBuilders/joins/selectJoinBuilder.d.ts +0 -44
  77. package/builders/highLvlBuilders/joins/selectJoinBuilder.js +0 -114
  78. package/builders/highLvlBuilders/joins/selectJoinBuilder.js.map +0 -1
  79. package/builders/highLvlBuilders/order.d.ts +0 -5
  80. package/builders/highLvlBuilders/order.js +0 -9
  81. package/builders/highLvlBuilders/order.js.map +0 -1
  82. package/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -63
  83. package/builders/highLvlBuilders/selectRequestBuilder.js +0 -171
  84. package/builders/highLvlBuilders/selectRequestBuilder.js.map +0 -1
  85. package/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
  86. package/builders/highLvlBuilders/updateRequestBuilder.js +0 -81
  87. package/builders/highLvlBuilders/updateRequestBuilder.js.map +0 -1
  88. package/builders/index.d.ts +0 -21
  89. package/builders/index.js +0 -69
  90. package/builders/index.js.map +0 -1
  91. package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -42
  92. package/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -82
  93. package/builders/joinBuilders/builders/abstractJoinBuilder.js.map +0 -1
  94. package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -36
  95. package/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -46
  96. package/builders/joinBuilders/builders/selectWithFiveJoins.js.map +0 -1
  97. package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -56
  98. package/builders/joinBuilders/builders/selectWithFourJoins.js +0 -79
  99. package/builders/joinBuilders/builders/selectWithFourJoins.js.map +0 -1
  100. package/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -50
  101. package/builders/joinBuilders/builders/selectWithJoin.js +0 -65
  102. package/builders/joinBuilders/builders/selectWithJoin.js.map +0 -1
  103. package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -54
  104. package/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -74
  105. package/builders/joinBuilders/builders/selectWithThreeJoins.js.map +0 -1
  106. package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -52
  107. package/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -72
  108. package/builders/joinBuilders/builders/selectWithTwoJoins.js.map +0 -1
  109. package/builders/joinBuilders/join.d.ts +0 -23
  110. package/builders/joinBuilders/join.js +0 -29
  111. package/builders/joinBuilders/join.js.map +0 -1
  112. package/builders/joinBuilders/joinWith.d.ts +0 -14
  113. package/builders/joinBuilders/joinWith.js +0 -15
  114. package/builders/joinBuilders/joinWith.js.map +0 -1
  115. package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
  116. package/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -36
  117. package/builders/joinBuilders/responses/selectResponseFiveJoins.js.map +0 -1
  118. package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
  119. package/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -35
  120. package/builders/joinBuilders/responses/selectResponseFourJoins.js.map +0 -1
  121. package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
  122. package/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -34
  123. package/builders/joinBuilders/responses/selectResponseThreeJoins.js.map +0 -1
  124. package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
  125. package/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -33
  126. package/builders/joinBuilders/responses/selectResponseTwoJoins.js.map +0 -1
  127. package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
  128. package/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -32
  129. package/builders/joinBuilders/responses/selectResponseWithJoin.js.map +0 -1
  130. package/builders/joinBuilders/static.d.ts +0 -5
  131. package/builders/joinBuilders/static.js +0 -10
  132. package/builders/joinBuilders/static.js.map +0 -1
  133. package/builders/lowLvlBuilders/alter.d.ts +0 -0
  134. package/builders/lowLvlBuilders/alter.js +0 -2
  135. package/builders/lowLvlBuilders/alter.js.map +0 -1
  136. package/builders/lowLvlBuilders/create.d.ts +0 -12
  137. package/builders/lowLvlBuilders/create.js +0 -101
  138. package/builders/lowLvlBuilders/create.js.map +0 -1
  139. package/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
  140. package/builders/lowLvlBuilders/delets/delete.js +0 -16
  141. package/builders/lowLvlBuilders/delets/delete.js.map +0 -1
  142. package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
  143. package/builders/lowLvlBuilders/delets/deleteFilter.js +0 -14
  144. package/builders/lowLvlBuilders/delets/deleteFilter.js.map +0 -1
  145. package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
  146. package/builders/lowLvlBuilders/delets/deleteFrom.js +0 -15
  147. package/builders/lowLvlBuilders/delets/deleteFrom.js.map +0 -1
  148. package/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
  149. package/builders/lowLvlBuilders/inserts/insert.js +0 -16
  150. package/builders/lowLvlBuilders/inserts/insert.js.map +0 -1
  151. package/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
  152. package/builders/lowLvlBuilders/inserts/insertInto.js +0 -17
  153. package/builders/lowLvlBuilders/inserts/insertInto.js.map +0 -1
  154. package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
  155. package/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -14
  156. package/builders/lowLvlBuilders/inserts/onConflictInsert.js.map +0 -1
  157. package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
  158. package/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -20
  159. package/builders/lowLvlBuilders/inserts/valuesInsert.js.map +0 -1
  160. package/builders/lowLvlBuilders/selects/select.d.ts +0 -12
  161. package/builders/lowLvlBuilders/selects/select.js +0 -43
  162. package/builders/lowLvlBuilders/selects/select.js.map +0 -1
  163. package/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -45
  164. package/builders/lowLvlBuilders/selects/selectFrom.js +0 -79
  165. package/builders/lowLvlBuilders/selects/selectFrom.js.map +0 -1
  166. package/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -42
  167. package/builders/lowLvlBuilders/selects/selectJoined.js +0 -72
  168. package/builders/lowLvlBuilders/selects/selectJoined.js.map +0 -1
  169. package/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -30
  170. package/builders/lowLvlBuilders/selects/whereSelect.js +0 -50
  171. package/builders/lowLvlBuilders/selects/whereSelect.js.map +0 -1
  172. package/builders/lowLvlBuilders/updates/update.d.ts +0 -5
  173. package/builders/lowLvlBuilders/updates/update.js +0 -16
  174. package/builders/lowLvlBuilders/updates/update.js.map +0 -1
  175. package/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
  176. package/builders/lowLvlBuilders/updates/updateIn.js +0 -16
  177. package/builders/lowLvlBuilders/updates/updateIn.js.map +0 -1
  178. package/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
  179. package/builders/lowLvlBuilders/updates/whereSelect.js +0 -14
  180. package/builders/lowLvlBuilders/updates/whereSelect.js.map +0 -1
  181. package/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
  182. package/builders/lowLvlBuilders/updates/whereSet.js +0 -19
  183. package/builders/lowLvlBuilders/updates/whereSet.js.map +0 -1
  184. package/builders/requestBuilders/updates/combine.d.ts +0 -13
  185. package/builders/requestBuilders/updates/combine.js +0 -27
  186. package/builders/requestBuilders/updates/combine.js.map +0 -1
  187. package/builders/requestBuilders/updates/increment.d.ts +0 -17
  188. package/builders/requestBuilders/updates/increment.js +0 -19
  189. package/builders/requestBuilders/updates/increment.js.map +0 -1
  190. package/builders/requestBuilders/updates/setObjects.d.ts +0 -16
  191. package/builders/requestBuilders/updates/setObjects.js +0 -20
  192. package/builders/requestBuilders/updates/setObjects.js.map +0 -1
  193. package/builders/requestBuilders/updates/static.d.ts +0 -7
  194. package/builders/requestBuilders/updates/static.js +0 -16
  195. package/builders/requestBuilders/updates/static.js.map +0 -1
  196. package/builders/requestBuilders/updates/updates.d.ts +0 -13
  197. package/builders/requestBuilders/updates/updates.js +0 -10
  198. package/builders/requestBuilders/updates/updates.js.map +0 -1
  199. package/builders/requestBuilders/where/and.d.ts +0 -23
  200. package/builders/requestBuilders/where/and.js +0 -49
  201. package/builders/requestBuilders/where/and.js.map +0 -1
  202. package/builders/requestBuilders/where/const.d.ts +0 -20
  203. package/builders/requestBuilders/where/const.js +0 -35
  204. package/builders/requestBuilders/where/const.js.map +0 -1
  205. package/builders/requestBuilders/where/constArray.d.ts +0 -20
  206. package/builders/requestBuilders/where/constArray.js +0 -65
  207. package/builders/requestBuilders/where/constArray.js.map +0 -1
  208. package/builders/requestBuilders/where/eqWhere.d.ts +0 -27
  209. package/builders/requestBuilders/where/eqWhere.js +0 -26
  210. package/builders/requestBuilders/where/eqWhere.js.map +0 -1
  211. package/builders/requestBuilders/where/greater.d.ts +0 -27
  212. package/builders/requestBuilders/where/greater.js +0 -26
  213. package/builders/requestBuilders/where/greater.js.map +0 -1
  214. package/builders/requestBuilders/where/greaterEq.d.ts +0 -27
  215. package/builders/requestBuilders/where/greaterEq.js +0 -26
  216. package/builders/requestBuilders/where/greaterEq.js.map +0 -1
  217. package/builders/requestBuilders/where/in.d.ts +0 -24
  218. package/builders/requestBuilders/where/in.js +0 -26
  219. package/builders/requestBuilders/where/in.js.map +0 -1
  220. package/builders/requestBuilders/where/isNotNull.d.ts +0 -23
  221. package/builders/requestBuilders/where/isNotNull.js +0 -23
  222. package/builders/requestBuilders/where/isNotNull.js.map +0 -1
  223. package/builders/requestBuilders/where/isNull.d.ts +0 -23
  224. package/builders/requestBuilders/where/isNull.js +0 -23
  225. package/builders/requestBuilders/where/isNull.js.map +0 -1
  226. package/builders/requestBuilders/where/less.d.ts +0 -27
  227. package/builders/requestBuilders/where/less.js +0 -26
  228. package/builders/requestBuilders/where/less.js.map +0 -1
  229. package/builders/requestBuilders/where/lessEq.d.ts +0 -27
  230. package/builders/requestBuilders/where/lessEq.js +0 -26
  231. package/builders/requestBuilders/where/lessEq.js.map +0 -1
  232. package/builders/requestBuilders/where/like.d.ts +0 -24
  233. package/builders/requestBuilders/where/like.js +0 -26
  234. package/builders/requestBuilders/where/like.js.map +0 -1
  235. package/builders/requestBuilders/where/notEqWhere.d.ts +0 -24
  236. package/builders/requestBuilders/where/notEqWhere.js +0 -26
  237. package/builders/requestBuilders/where/notEqWhere.js.map +0 -1
  238. package/builders/requestBuilders/where/or.d.ts +0 -23
  239. package/builders/requestBuilders/where/or.js +0 -49
  240. package/builders/requestBuilders/where/or.js.map +0 -1
  241. package/builders/requestBuilders/where/rawWhere.d.ts +0 -23
  242. package/builders/requestBuilders/where/rawWhere.js +0 -17
  243. package/builders/requestBuilders/where/rawWhere.js.map +0 -1
  244. package/builders/requestBuilders/where/static.d.ts +0 -21
  245. package/builders/requestBuilders/where/static.js +0 -57
  246. package/builders/requestBuilders/where/static.js.map +0 -1
  247. package/builders/requestBuilders/where/var.d.ts +0 -25
  248. package/builders/requestBuilders/where/var.js +0 -23
  249. package/builders/requestBuilders/where/var.js.map +0 -1
  250. package/builders/requestBuilders/where/where.d.ts +0 -20
  251. package/builders/requestBuilders/where/where.js +0 -6
  252. package/builders/requestBuilders/where/where.js.map +0 -1
  253. package/builders/transaction/transaction.d.ts +0 -8
  254. package/builders/transaction/transaction.js +0 -21
  255. package/builders/transaction/transaction.js.map +0 -1
  256. package/columns/column.d.ts +0 -81
  257. package/columns/column.js +0 -119
  258. package/columns/column.js.map +0 -1
  259. package/columns/index.d.ts +0 -10
  260. package/columns/index.js +0 -30
  261. package/columns/index.js.map +0 -1
  262. package/columns/types/columnType.d.ts +0 -7
  263. package/columns/types/columnType.js +0 -7
  264. package/columns/types/columnType.js.map +0 -1
  265. package/columns/types/pgBigDecimal.d.ts +0 -10
  266. package/columns/types/pgBigDecimal.js +0 -32
  267. package/columns/types/pgBigDecimal.js.map +0 -1
  268. package/columns/types/pgBigInt.d.ts +0 -15
  269. package/columns/types/pgBigInt.js +0 -33
  270. package/columns/types/pgBigInt.js.map +0 -1
  271. package/columns/types/pgBigSerial.d.ts +0 -15
  272. package/columns/types/pgBigSerial.js +0 -33
  273. package/columns/types/pgBigSerial.js.map +0 -1
  274. package/columns/types/pgBoolean.d.ts +0 -8
  275. package/columns/types/pgBoolean.js +0 -19
  276. package/columns/types/pgBoolean.js.map +0 -1
  277. package/columns/types/pgEnum.d.ts +0 -9
  278. package/columns/types/pgEnum.js +0 -19
  279. package/columns/types/pgEnum.js.map +0 -1
  280. package/columns/types/pgInteger.d.ts +0 -8
  281. package/columns/types/pgInteger.js +0 -22
  282. package/columns/types/pgInteger.js.map +0 -1
  283. package/columns/types/pgJsonb.d.ts +0 -9
  284. package/columns/types/pgJsonb.js +0 -21
  285. package/columns/types/pgJsonb.js.map +0 -1
  286. package/columns/types/pgSerial.d.ts +0 -8
  287. package/columns/types/pgSerial.js +0 -19
  288. package/columns/types/pgSerial.js.map +0 -1
  289. package/columns/types/pgSmallInt.d.ts +0 -8
  290. package/columns/types/pgSmallInt.js +0 -19
  291. package/columns/types/pgSmallInt.js.map +0 -1
  292. package/columns/types/pgText.d.ts +0 -8
  293. package/columns/types/pgText.js +0 -19
  294. package/columns/types/pgText.js.map +0 -1
  295. package/columns/types/pgTime.d.ts +0 -8
  296. package/columns/types/pgTime.js +0 -19
  297. package/columns/types/pgTime.js.map +0 -1
  298. package/columns/types/pgTimestamp.d.ts +0 -8
  299. package/columns/types/pgTimestamp.js +0 -19
  300. package/columns/types/pgTimestamp.js.map +0 -1
  301. package/columns/types/pgTimestamptz.d.ts +0 -8
  302. package/columns/types/pgTimestamptz.js +0 -19
  303. package/columns/types/pgTimestamptz.js.map +0 -1
  304. package/columns/types/pgVarChar.d.ts +0 -9
  305. package/columns/types/pgVarChar.js +0 -25
  306. package/columns/types/pgVarChar.js.map +0 -1
  307. package/db/db.d.ts +0 -18
  308. package/db/db.js +0 -26
  309. package/db/db.js.map +0 -1
  310. package/db/dbConnector.d.ts +0 -9
  311. package/db/dbConnector.js +0 -33
  312. package/db/dbConnector.js.map +0 -1
  313. package/db/dbStringConnector.d.ts +0 -6
  314. package/db/dbStringConnector.js +0 -30
  315. package/db/dbStringConnector.js.map +0 -1
  316. package/db/group_by.d.ts +0 -0
  317. package/db/group_by.js +0 -69
  318. package/db/group_by.js.map +0 -1
  319. package/db/index.d.ts +0 -4
  320. package/db/index.js +0 -15
  321. package/db/index.js.map +0 -1
  322. package/db/session.d.ts +0 -16
  323. package/db/session.js +0 -40
  324. package/db/session.js.map +0 -1
  325. package/docs/cases/simple_delete.d.ts +0 -1
  326. package/docs/cases/simple_delete.js +0 -36
  327. package/docs/cases/simple_delete.js.map +0 -1
  328. package/docs/cases/simple_insert.d.ts +0 -1
  329. package/docs/cases/simple_insert.js +0 -58
  330. package/docs/cases/simple_insert.js.map +0 -1
  331. package/docs/cases/simple_join.d.ts +0 -1
  332. package/docs/cases/simple_join.js +0 -116
  333. package/docs/cases/simple_join.js.map +0 -1
  334. package/docs/cases/simple_select.d.ts +0 -1
  335. package/docs/cases/simple_select.js +0 -51
  336. package/docs/cases/simple_select.js.map +0 -1
  337. package/docs/cases/simple_update.d.ts +0 -1
  338. package/docs/cases/simple_update.js +0 -40
  339. package/docs/cases/simple_update.js.map +0 -1
  340. package/docs/tables/citiesTable.d.ts +0 -14
  341. package/docs/tables/citiesTable.js +0 -22
  342. package/docs/tables/citiesTable.js.map +0 -1
  343. package/docs/tables/userGroupsTable.d.ts +0 -8
  344. package/docs/tables/userGroupsTable.js +0 -20
  345. package/docs/tables/userGroupsTable.js.map +0 -1
  346. package/docs/tables/usersTable.d.ts +0 -17
  347. package/docs/tables/usersTable.js +0 -36
  348. package/docs/tables/usersTable.js.map +0 -1
  349. package/docs/tables/usersToUserGroups.d.ts +0 -7
  350. package/docs/tables/usersToUserGroups.js +0 -21
  351. package/docs/tables/usersToUserGroups.js.map +0 -1
  352. package/docs/types/rolesType.d.ts +0 -1
  353. package/docs/types/rolesType.js +0 -7
  354. package/docs/types/rolesType.js.map +0 -1
  355. package/errors/baseError.d.ts +0 -22
  356. package/errors/baseError.js +0 -36
  357. package/errors/baseError.js.map +0 -1
  358. package/errors/builderError.d.ts +0 -15
  359. package/errors/builderError.js +0 -26
  360. package/errors/builderError.js.map +0 -1
  361. package/errors/dbErrors.d.ts +0 -12
  362. package/errors/dbErrors.js +0 -29
  363. package/errors/dbErrors.js.map +0 -1
  364. package/indexes/tableIndex.d.ts +0 -11
  365. package/indexes/tableIndex.js +0 -18
  366. package/indexes/tableIndex.js.map +0 -1
  367. package/logger/abstractLogger.d.ts +0 -4
  368. package/logger/abstractLogger.js +0 -6
  369. package/logger/abstractLogger.js.map +0 -1
  370. package/logger/consoleLogger.d.ts +0 -5
  371. package/logger/consoleLogger.js +0 -16
  372. package/logger/consoleLogger.js.map +0 -1
  373. package/mappers/index.d.ts +0 -0
  374. package/mappers/index.js +0 -2
  375. package/mappers/index.js.map +0 -1
  376. package/mappers/responseMapper.d.ts +0 -15
  377. package/mappers/responseMapper.js +0 -69
  378. package/mappers/responseMapper.js.map +0 -1
  379. package/migrator/index.d.ts +0 -0
  380. package/migrator/index.js +0 -2
  381. package/migrator/index.js.map +0 -1
  382. package/migrator/migrator.d.ts +0 -11
  383. package/migrator/migrator.js +0 -113
  384. package/migrator/migrator.js.map +0 -1
  385. package/serializer/serializer.d.ts +0 -0
  386. package/serializer/serializer.js +0 -295
  387. package/serializer/serializer.js.map +0 -1
  388. package/tables/abstractTable.d.ts +0 -73
  389. package/tables/abstractTable.js +0 -173
  390. package/tables/abstractTable.js.map +0 -1
  391. package/tables/index.d.ts +0 -3
  392. package/tables/index.js +0 -12
  393. package/tables/index.js.map +0 -1
  394. package/tables/inferTypes.d.ts +0 -48
  395. package/tables/inferTypes.js.map +0 -1
  396. package/tables/migrationsTable.d.ts +0 -7
  397. package/tables/migrationsTable.js +0 -19
  398. package/tables/migrationsTable.js.map +0 -1
  399. package/test.d.ts +0 -1
  400. package/test.js +0 -193
  401. package/test.js.map +0 -1
  402. package/types/type.d.ts +0 -10
  403. package/types/type.js +0 -15
  404. package/types/type.js.map +0 -1
  405. package/utils/ecranate.d.ts +0 -2
  406. package/utils/ecranate.js +0 -9
  407. package/utils/ecranate.js.map +0 -1
  408. package/utils/escape.d.ts +0 -2
  409. package/utils/escape.js +0 -9
  410. package/utils/escape.js.map +0 -1
package/README.md DELETED
@@ -1,343 +0,0 @@
1
- ## DrizzleORM
2
- DrizzleORM is a TypeScript ORM library with a [drizzle-kit](https://www.npmjs.com/package/drizzle-kit) CLI companion for automatic SQL migrations generation. It's meant to be a library, not a framework, stay as an opt-in solution all the time at any levels. We try to follow SQL-like syntax whenever possible, be strongly typed ground top and fail in compile time, not in runtime. We implemented best in class `joins` and second to none `migrations generation`. Library has almost zero dependencies and being battle tested on production projects by multiple teams 🚀
3
-
4
- | database | support |
5
- |:-- | :---: |
6
- | PostgreSQL | ✅ |
7
- | MySQL | ⏳ |
8
- | DynamoDB | ⏳ |
9
- | SQLite | ⏳ |
10
- | MS SQL | ⏳ |
11
- | CockroachDB | ⏳ |
12
-
13
- ### Installation
14
- ```bash
15
- npm install drizzle-orm drizzle-kit
16
- ```
17
-
18
- ### Quick start
19
- ```typescript
20
- import { drizzle, PgTable } from 'drizzle-orm'
21
-
22
- export class UsersTable extends PgTable<UsersTable> {
23
- public id = this.serial('id').primaryKey();
24
- public fullName = this.text('full_name');
25
- public phone = this.varchar('phone', { size: 256 });
26
-
27
- public tableName(): string {
28
- return 'users';
29
- }
30
- }
31
- export type User = InferType<UsersTable>
32
-
33
- const db = await drizzle.connect("postgres://user:password@host:port/db");
34
- const usersTable = new UsersTable(db);
35
-
36
- const users: User[] = await usersTable.select().execute();
37
- ```
38
-
39
- ### Connecting to database
40
- ```typescript
41
-
42
- const db = await drizzle.connect("postgres://user:password@host:port/db");
43
- const db = await drizzle.connect({
44
- host: "127.0.0.1",
45
- port: 5432,
46
- user: "postgres",
47
- password: "postgres",
48
- db: "db_name",
49
- });
50
- ```
51
-
52
- ### SQL schema declaration
53
- With `drizzle-orm` you declare SQL schema in typescritp. You can have either one `schema.ts` file with all declarations or you can group them logically in multiple files. We prefer to use single file schema.
54
- ```
55
- 📦project
56
- ├ 📂src
57
- │ ├ 📂data
58
- │ │ └ 📜schema.ts
59
- │ └ ...
60
- ├ ...
61
- └ 📜package.json
62
-
63
- ## or multiple schema files
64
- ├ 📂data
65
- ├ 📜users.ts
66
- ├ 📜countries.ts
67
- ├ 📜cities.ts
68
- ├ 📜products.ts
69
- ├ 📜clients.ts
70
- ├ 📜enums.ts
71
- └ 📜etc.ts
72
- ```
73
- This is how you declare SQL schema in `schema.ts`. You can declare tables, indexes and constraints, foreign keys and enums. Please pay attention to `export` keyword, they are mandatory if you'll be using drizzle-kit SQL migrations generator.
74
- ```typescript
75
- // declaring enum in database
76
- export const popularityEnum = createEnum({ alias: 'popularity', values: ['unknown', 'known', 'popular'] });
77
-
78
- export class CountriesTable extends PgTable<CountriesTable> {
79
- id = this.serial("id").primaryKey();
80
- name = this.varchar("name", { size: 256 })
81
-
82
- // declaring index
83
- nameIndex = this.uniqueIndex(this.name)
84
-
85
- public tableName(): string {
86
- return 'countries';
87
- }
88
- }
89
-
90
- export class CitiesTable extends PgTable<CitiesTable> {
91
- id = this.serial("id").primaryKey();
92
- name = this.varchar("name", { size: 256 })
93
- countryId = this.int("country_id").foreignKey(CountriesTable, (country) => country.id)
94
-
95
- // declaring enum column in table
96
- popularity = this.type(popularityEnum, "popularity")
97
-
98
- public tableName(): string {
99
- return 'cities';
100
- }
101
- }
102
- ```
103
- The list of all possible types. You can also create custom types - !!see here!!.
104
- ```typescript
105
- export const enum = createEnum({ alias: "database-name", values: ["value1", "value2", "value3"] });
106
- type(enum, "...")
107
-
108
- smallint("...")
109
- int("...")
110
- bigint("...", maxBytes: "max_bytes_53")
111
- bigint("...", maxBytes: "max_bytes_64")
112
-
113
- bool("...")
114
- text("...");
115
- varchar("...");
116
- varchar("...", { size: 256 });
117
-
118
- serial("...");
119
- bigserial("...", maxBytes: "max_bytes_53");
120
- bigserial("...", maxBytes: "max_bytes_64");
121
-
122
- decimal("...", { precision: 100, scale: 2 });
123
-
124
- jsonb<...>("...");
125
- jsonb<string[]>("...");
126
-
127
- time("...")
128
- timestamp("...") // with timezone
129
- timestamptz("..."); // without timezone
130
- timestamp("...").defaultValue(Defaults.CURRENT_TIMESTAMP)
131
-
132
- index(column);
133
- index([column1, column2, ...]);
134
- uniqueIndex(column);
135
- uniqueIndex([column1, column2, ...]);
136
-
137
-
138
- column.primaryKey()
139
- column.notNull()
140
- column.defaultValue(...)
141
-
142
- // 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT'
143
- column.foreignKey(Table, (table) => table.column, { onDelete: "CASCADE", onUpdate: "CASCADE" });
144
- ```
145
-
146
- ### Create Read Update Delete
147
- Querying, sorting and filtering. We also support partial select.
148
- ```typescript
149
- const db = await drizzle.connect("...")
150
- const table = new UsersTable(db);
151
-
152
- const result: User[] = await table.select().execute();
153
- await table.select().where(
154
- eq(table.id, 42)
155
- ).execute();
156
-
157
- // you can combine filters with eq(...) or or(...)
158
- await table.select().where(
159
- and([eq(table.id, 42), eq(table.name, "Dan")])
160
- ).execute();
161
-
162
- await table.select().where(
163
- or([eq(table.id, 42), eq(table.id, 1)])
164
- ).execute();
165
-
166
- // partial select
167
- const result = await table.select({
168
- mapped1: table.id,
169
- mapped2: table.name,
170
- }).execute();
171
- const { mapped1, mapped2 } = result[0];
172
-
173
- // limit offset & order by
174
- await table.select().limit(10).offset(10).execute()
175
- await table.select().orderBy((table) => table.name, Order.ASC)
176
- await table.select().orderBy((table) => table.name, Order.DESC)
177
-
178
- // list of all filter operators
179
- eq(table.column, value)
180
- notEq(table.column, value)
181
- less(table.column, value)
182
- lessEq(table.column, value)
183
- greater(table.column, value)
184
- greaterEq(table.column, value)
185
- isNull(table.column)
186
- isNotNull(table.column)
187
-
188
- inArray(table.column, [...values])
189
- like(table.column, value)
190
- raw("raw sql filter")
191
-
192
- and(exressions: Expr[])
193
- or(exressions: Expr[])
194
- ```
195
- Inserting
196
- ```typescript
197
- const result = await usersTable.insert({
198
- name: "Andrew",
199
- createdAt: new Date(),
200
- }).execute();
201
-
202
- const result = await usersTable.insertMany([{
203
- name: "Andrew",
204
- createdAt: new Date(),
205
- }, {
206
- name: "Dan",
207
- createdAt: new Date(),
208
- }]).execute();
209
-
210
- //await usersTable.insert({
211
- // name: "Dan"
212
- //})
213
- //.onConflict(
214
- // (table) => table.name,
215
- // { name: 'name value to be upserted' }
216
- //).execute();
217
- ```
218
-
219
- Update and Delete
220
- ```typescript
221
- await usersTable.update()
222
- .where(eq(usersTable.name, 'Dan'))
223
- .set({ name: 'Mr. Dan' })
224
- .execute();
225
-
226
- await usersTable.delete()
227
- .where(eq(usersTable.name, 'Dan'))
228
- .execute();
229
- ```
230
-
231
- ### Joins
232
- Last but not least. Probably the most powerful feature in the library🚀
233
- Many-to-one
234
- ```typescript
235
- const usersTable = new UsersTable(db);
236
- const citiesTable = new CitiesTable(db);
237
-
238
- const result = await citiesTable.select()
239
- .leftJoin(usersTable, (cities, users) => eq(cities.userId, users.id))
240
- .where((cities, users) => eq(cities.id, 1))
241
- .execute();
242
-
243
- const citiesWithUsers: { city: City, user: User }[] = result.map((city, user) => ({ city, user }));
244
- ```
245
- Many-to-many
246
- ```typescript
247
- export class UsersTable extends PgTable<UsersTable> {
248
- id = this.serial("id").primaryKey();
249
- name = this.varchar("name");
250
- }
251
-
252
- export class ChatGroupsTable extends PgTable<ChatGroupsTable> {
253
- id = this.serial("id").primaryKey();
254
- }
255
-
256
- export class ManyToManyTable extends PgTable<ManyToManyTable> {
257
- userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onDelete: 'CASCADE' });
258
- groupId = this.int('group_id').foreignKey(ChatGroupsTable, (table) => table.id, { onDelete: 'CASCADE' });
259
- }
260
-
261
- ...
262
- const usersTable = new UsersTable(db);
263
- const chatGroupsTable = new ChatGroupsTable(db);
264
- const manyToManyTable = new ManyToManyTable(db);
265
-
266
- // querying user group with id 1 and all the participants(users)
267
- const usersWithUserGroups = await manyToManyTable.select()
268
- .leftJoin(usersTable, (manyToMany, users) => eq(manyToManyTable.userId, users.id))
269
- .leftJoin(chatGroupsTable, (manyToMany, _users, chatGroups) => eq(manyToManyTable.groupId, chatGroups.id))
270
- .where((manyToMany, _users, userGroups) => eq(userGroups.id, 1))
271
- .execute();
272
- ```
273
-
274
- ### Join using partial field select
275
- ##### Join Cities with Users getting only needed fields form request
276
- ```typescript
277
- await citiesTable.select({
278
- id: citiesTable.id,
279
- userId: citiesTable.userId,
280
- })
281
- .leftJoin(usersTable, (cities, users) => eq(cities.userId, users.id))
282
- .where((cities, users) => eq(cities.id, 1))
283
- .execute();
284
-
285
- const citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));
286
- ```
287
- ### Another join examples with different callback ON statements
288
- ```typescript
289
- await citiesTable.select()
290
- .leftJoin(usersTable, (cities, _users) => eq(cities.id, 13))
291
- .where((cities, _users) => eq(cities.location, 'q'))
292
- .execute();
293
- // Join statement generated from query
294
- // LEFT JOIN users AS users_1
295
- // ON cities."id"=$1
296
- // WHERE cities."page"=$2
297
- //
298
- // Values: [13, 'q']
299
-
300
- await citiesTable.select()
301
- .leftJoin(usersTable, (cities, _users) => and([
302
- eq(cities.id, 13), notEq(cities.id, 14),
303
- ]))
304
- .execute();
305
- // Join statement generated from query
306
- // LEFT JOIN users AS users_1
307
- // ON (cities."id"=$1 and cities."id"!=$2)
308
- //
309
- // Values: [13, 14]
310
-
311
- await citiesTable.select()
312
- .leftJoin(usersTable, (_cities, _users) => raw('<custom expression after ON statement>'))
313
- .where((cities, _users) => eq(cities.location, 'location'))
314
- .execute();
315
- // Join statement generated from query
316
- // LEFT JOIN users AS users_1
317
- // ON <custom expression after ON statement>
318
- // WHERE cities."page"=$1
319
- //
320
- // Values: ['location']
321
- ```
322
-
323
-
324
- ## Migrations
325
- #### To run migrations generated by drizzle-kit you could use `Migrator` class
326
- ##### Provide drizzle-kit config path
327
- ```typescript
328
- await drizzle.migrator(db).migrate('src/drizzle.config.yaml');
329
- ```
330
- ##### Another possibility is to provide object with path to folder with migrations
331
- ```typescript
332
- await drizzle.migrator(db).migrate({ migrationFolder: 'drizzle' });
333
- ```
334
-
335
-
336
- ## Raw query usage
337
- #### If you have some complex queries to execute and drizzle-orm can't handle them yet, then you could use `rawQuery` execution
338
-
339
-
340
- ##### Execute custom raw query
341
- ```typescript
342
- const res: QueryResult<any> = await db.session().execute('SELECT * FROM users WHERE user.id = $1', [1]);
343
- ```
@@ -1,12 +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
- protected generateSelectArrayV1: (table: string, columns: AbstractColumn<ColumnType>[], id?: number | undefined) => string[];
12
- }
@@ -1,52 +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(`${table}_${field.getColumnName()}`));
20
- selectFields.push(',');
21
- }
22
- });
23
- selectFields.pop();
24
- return selectFields;
25
- };
26
- this.generateSelectArrayV1 = (table, columns, id) => {
27
- const selectFields = [];
28
- columns.forEach((field) => {
29
- if (field instanceof column_1.Column) {
30
- selectFields.push(' ');
31
- selectFields.push(table);
32
- selectFields.push('.');
33
- selectFields.push(ecranate_1.ecranate(field.getColumnName()));
34
- selectFields.push(' AS ');
35
- selectFields.push(ecranate_1.ecranate(`${field.getAlias()}${id ? `_${id}` : ''}`));
36
- selectFields.push(',');
37
- }
38
- });
39
- selectFields.pop();
40
- return selectFields;
41
- };
42
- this._table = table;
43
- if (!partial) {
44
- this._fields = this.generateSelectArray(this._table.tableName(), Object.values(this._table.mapServiceToDb()));
45
- }
46
- else {
47
- this._fields = this.generateSelectArray(this._table.tableName(), Object.values(partial));
48
- }
49
- }
50
- }
51
- exports.default = Aggregator;
52
- //# sourceMappingURL=abstractAggregator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstractAggregator.js","sourceRoot":"","sources":["../../../src/builders/aggregators/abstractAggregator.ts"],"names":[],"mappings":";;AAAA,4BAA4B;AAC5B,iDAA8D;AAG9D,mDAAgD;AAEhD,mCAAmC;AACnC,MAAqB,UAAU;IAI7B,YAAmB,KAAyB,EAAE,OAAmG;QAHvI,YAAO,GAAkB,EAAE,CAAC;QAc5B,wBAAmB,GAAG,CAAC,KAAa,EAAE,OAAqC,EAAE,EAAW,EAAE,EAAE;YACpG,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC7B,IAAI,KAAK,YAAY,eAAM,EAAE;oBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,mBAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;oBACnD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,mBAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,GAAG,EAAE,CAAC;YACnB,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QAEQ,0BAAqB,GAAG,CAAC,KAAa,EAAE,OAAqC,EAAE,EAAW,EAAE,EAAE;YACtG,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC7B,IAAI,KAAK,YAAY,eAAM,EAAE;oBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,mBAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;oBACnD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,mBAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,GAAG,EAAE,CAAC;YACnB,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QA9CA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;SAChD;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAC7D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3B;IACH,CAAC;CAuCF;AApDD,6BAoDC"}
@@ -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,43 +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({ session: this._table.db.session() });
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;
43
- //# sourceMappingURL=deleteAggregator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteAggregator.js","sourceRoot":"","sources":["../../../src/builders/aggregators/deleteAggregator.ts"],"names":[],"mappings":";;;;;AAEA,8EAA8C;AAE9C,MAAqB,gBAAiB,SAAQ,4BAAU;IAMtD,YAAmB,KAAyB;QAC1C,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,UAAK,GAAkB,EAAE,CAAC;QAC1B,aAAQ,GAAkB,EAAE,CAAC;QAC7B,YAAO,GAAe,EAAE,CAAC;QACzB,YAAO,GAAkB,CAAC,QAAQ,CAAC,CAAC;QAMrC,YAAO,GAAG,CAAC,OAAa,EAAoB,EAAE;YACnD,IAAI,OAAO,EAAE;gBACX,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;aACnC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEK,eAAU,GAAG,CAAC,SAAiB,EAAoB,EAAE;YAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEK,eAAU,GAAG,GAA0C,EAAE;YAC9D,4CAA4C;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,CAAC,CAAC;IA9BF,CAAC;CA+BF;AAvCD,mCAuCC"}
@@ -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
- }
@@ -1,110 +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
- /* eslint-disable @typescript-eslint/no-loop-func */
7
- const column_1 = require("../../columns/column");
8
- const abstractAggregator_1 = __importDefault(require("./abstractAggregator"));
9
- class InsertAggregator extends abstractAggregator_1.default {
10
- constructor(table) {
11
- super(table);
12
- this._onConflict = [];
13
- this._columns = [];
14
- this._query = [];
15
- this._values = [];
16
- this._from = [];
17
- this._insert = ['INSERT INTO'];
18
- this.appendColumns = () => {
19
- const mapper = this._table.mapServiceToDb();
20
- const columns = Object.values(mapper);
21
- for (let i = 0; i < columns.length; i += 1) {
22
- const column = columns[i];
23
- this._columns.push('"');
24
- this._columns.push(column.getColumnName());
25
- this._columns.push('"');
26
- if (i < columns.length - 1) {
27
- this._columns.push(', ');
28
- }
29
- }
30
- };
31
- this.appendValues = (values) => {
32
- // @TODO Check if values not empty
33
- const mapper = this._table.mapServiceToDb();
34
- let position = 0;
35
- for (let i = 0; i < values.length; i += 1) {
36
- const value = values[i];
37
- this._query.push('(');
38
- const entries = Object.entries(mapper);
39
- entries.forEach(([key], index) => {
40
- const valueToInsert = value[key];
41
- const isKeyExistsInValue = key.toString() in value;
42
- const column = mapper[key];
43
- if (isKeyExistsInValue) {
44
- if (valueToInsert !== undefined && valueToInsert !== null) {
45
- position += 1;
46
- this._query.push(this._table.db.session().parametrized(position));
47
- this._values.push(column.getColumnType().insertStrategy(valueToInsert));
48
- }
49
- else {
50
- this._query.push('null');
51
- }
52
- }
53
- else {
54
- this._query.push('DEFAULT');
55
- }
56
- if (index < entries.length - 1) {
57
- this._query.push(', ');
58
- }
59
- });
60
- if (i < values.length - 1) {
61
- this._query.push('),\n');
62
- }
63
- else {
64
- this._query.push(')\n');
65
- }
66
- }
67
- };
68
- this.appendOnConflict = (column, updates) => {
69
- if (column) {
70
- const indexName = column instanceof column_1.IndexedColumn
71
- ? column.getColumnName() : column.getColumns().map((it) => it.getColumnName()).join(',');
72
- this._onConflict.push(`ON CONFLICT (${indexName})\n`);
73
- if (updates) {
74
- const currentPointerPosition = this._values.length > 0
75
- ? this._values.length + 1 : undefined;
76
- const updatesQuery = updates.toQuery({
77
- position: currentPointerPosition,
78
- session: this._table.db.session(),
79
- });
80
- this._onConflict.push('DO UPDATE\n');
81
- this._onConflict.push(`SET ${updatesQuery.query}`);
82
- this._values.push(...updatesQuery.values);
83
- }
84
- else {
85
- this._onConflict.push('DO NOTHING\n');
86
- }
87
- }
88
- return this;
89
- };
90
- this.buildQuery = () => {
91
- this._insert.push(this._from.join(''));
92
- this._insert.push(' (');
93
- this._insert.push(this._columns.join(''));
94
- this._insert.push(') ');
95
- this._insert.push('VALUES\n');
96
- this._insert.push(this._query.join(''));
97
- this._insert.push('\n');
98
- this._insert.push(this._onConflict.join(''));
99
- this._insert.push('\n');
100
- this._insert.push('RETURNING');
101
- this._insert.push('\n');
102
- this._insert.push(this._fields.join(''));
103
- return { query: this._insert.join(''), values: this._values };
104
- };
105
- this._from.push(' ');
106
- this._from.push(table.tableName());
107
- }
108
- }
109
- exports.default = InsertAggregator;
110
- //# sourceMappingURL=insertAggregator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insertAggregator.js","sourceRoot":"","sources":["../../../src/builders/aggregators/insertAggregator.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { AbstractColumn } from '../../columns/column';
2
- import ColumnType from '../../columns/types/columnType';
3
- import { AbstractTable } from '../../tables';
4
- import { JoinType } from '../highLvlBuilders/joins/selectJoinBuilder';
5
- import Order from '../highLvlBuilders/order';
6
- import Expr from '../requestBuilders/where/where';
7
- import Aggregator from './abstractAggregator';
8
- export default class SelectAggregator extends Aggregator {
9
- private _from;
10
- private _filters;
11
- private _select;
12
- private _join;
13
- private _limit;
14
- private _offset;
15
- private _distinct;
16
- private _orderBy;
17
- private _values;
18
- private _joinCache;
19
- constructor(table: AbstractTable<any>, partial?: {
20
- [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, AbstractTable<any>>;
21
- });
22
- filters: (filters: Expr) => SelectAggregator;
23
- limit: (limit?: number | undefined) => SelectAggregator;
24
- offset: (offset?: number | undefined) => SelectAggregator;
25
- orderBy: (column?: AbstractColumn<ColumnType<{}>, boolean, boolean, any> | undefined, order?: Order | undefined) => SelectAggregator;
26
- distinct: (column?: AbstractColumn<ColumnType<{}>, boolean, boolean, any> | undefined) => SelectAggregator;
27
- appendFrom: (tableName: string) => SelectAggregator;
28
- join: (joins: Array<JoinType<AbstractTable<any>>>) => SelectAggregator;
29
- buildQuery: () => {
30
- query: string;
31
- values: Array<any>;
32
- };
33
- }