drizzle-orm 0.10.21 → 0.10.24

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 (481) hide show
  1. package/LICENSE +674 -0
  2. package/{builders → dist/builders}/aggregators/abstractAggregator.d.ts +0 -0
  3. package/{builders → dist/builders}/aggregators/abstractAggregator.js +0 -0
  4. package/{builders → dist/builders}/aggregators/deleteAggregator.d.ts +0 -0
  5. package/{builders → dist/builders}/aggregators/deleteAggregator.js +4 -1
  6. package/{builders → dist/builders}/aggregators/insertAggregator.d.ts +0 -0
  7. package/{builders → dist/builders}/aggregators/insertAggregator.js +4 -1
  8. package/{builders → dist/builders}/aggregators/selectAggregator.d.ts +0 -0
  9. package/{builders → dist/builders}/aggregators/selectAggregator.js +24 -9
  10. package/{builders → dist/builders}/aggregators/updateAggregator.d.ts +0 -0
  11. package/{builders → dist/builders}/aggregators/updateAggregator.js +4 -1
  12. package/{builders → dist/builders}/highLvlBuilders/abstractRequestBuilder.d.ts +0 -0
  13. package/{builders → dist/builders}/highLvlBuilders/abstractRequestBuilder.js +0 -0
  14. package/{builders → dist/builders}/highLvlBuilders/deleteRequestBuilder.d.ts +0 -0
  15. package/{builders → dist/builders}/highLvlBuilders/deleteRequestBuilder.js +26 -4
  16. package/{builders → dist/builders}/highLvlBuilders/insertRequestBuilder.d.ts +0 -0
  17. package/{builders → dist/builders}/highLvlBuilders/insertRequestBuilder.js +26 -4
  18. package/{builders → dist/builders}/highLvlBuilders/order.d.ts +0 -0
  19. package/{builders → dist/builders}/highLvlBuilders/order.js +0 -0
  20. package/{builders → dist/builders}/highLvlBuilders/selectRequestBuilder.d.ts +0 -0
  21. package/{builders → dist/builders}/highLvlBuilders/selectRequestBuilder.js +26 -4
  22. package/{builders → dist/builders}/highLvlBuilders/updateRequestBuilder.d.ts +0 -0
  23. package/{builders → dist/builders}/highLvlBuilders/updateRequestBuilder.js +26 -4
  24. package/{builders → dist/builders}/index.d.ts +0 -0
  25. package/{builders → dist/builders}/index.js +19 -16
  26. package/{builders → dist/builders}/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -0
  27. package/{builders → dist/builders}/joinBuilders/builders/abstractJoinBuilder.js +25 -3
  28. package/{builders → dist/builders}/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -0
  29. package/{builders → dist/builders}/joinBuilders/builders/selectWithFiveJoins.js +5 -2
  30. package/{builders → dist/builders}/joinBuilders/builders/selectWithFourJoins.d.ts +0 -0
  31. package/{builders → dist/builders}/joinBuilders/builders/selectWithFourJoins.js +7 -4
  32. package/{builders → dist/builders}/joinBuilders/builders/selectWithJoin.d.ts +0 -0
  33. package/{builders → dist/builders}/joinBuilders/builders/selectWithJoin.js +7 -4
  34. package/{builders → dist/builders}/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -0
  35. package/{builders → dist/builders}/joinBuilders/builders/selectWithThreeJoins.js +7 -4
  36. package/{builders → dist/builders}/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -0
  37. package/{builders → dist/builders}/joinBuilders/builders/selectWithTwoJoins.js +7 -4
  38. package/{builders → dist/builders}/joinBuilders/join.d.ts +0 -0
  39. package/{builders → dist/builders}/joinBuilders/join.js +0 -0
  40. package/{builders → dist/builders}/joinBuilders/joinWith.d.ts +0 -0
  41. package/{builders → dist/builders}/joinBuilders/joinWith.js +4 -1
  42. package/{builders → dist/builders}/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -0
  43. package/{builders → dist/builders}/joinBuilders/responses/selectResponseFiveJoins.js +0 -0
  44. package/{builders → dist/builders}/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -0
  45. package/{builders → dist/builders}/joinBuilders/responses/selectResponseFourJoins.js +0 -0
  46. package/{builders → dist/builders}/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -0
  47. package/{builders → dist/builders}/joinBuilders/responses/selectResponseThreeJoins.js +0 -0
  48. package/{builders → dist/builders}/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -0
  49. package/{builders → dist/builders}/joinBuilders/responses/selectResponseTwoJoins.js +0 -0
  50. package/{builders → dist/builders}/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -0
  51. package/{builders → dist/builders}/joinBuilders/responses/selectResponseWithJoin.js +0 -0
  52. package/{builders → dist/builders}/joinBuilders/static.d.ts +0 -0
  53. package/{builders → dist/builders}/joinBuilders/static.js +4 -1
  54. package/{builders → dist/builders}/lowLvlBuilders/alter.d.ts +0 -0
  55. package/{builders → dist/builders}/lowLvlBuilders/alter.js +0 -0
  56. package/{builders → dist/builders}/lowLvlBuilders/create.d.ts +0 -0
  57. package/{builders → dist/builders}/lowLvlBuilders/create.js +4 -1
  58. package/{builders → dist/builders}/lowLvlBuilders/delets/delete.d.ts +0 -0
  59. package/{builders → dist/builders}/lowLvlBuilders/delets/delete.js +5 -2
  60. package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFilter.d.ts +0 -0
  61. package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFilter.js +0 -0
  62. package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFrom.d.ts +0 -0
  63. package/{builders → dist/builders}/lowLvlBuilders/delets/deleteFrom.js +4 -1
  64. package/{builders → dist/builders}/lowLvlBuilders/inserts/insert.d.ts +0 -0
  65. package/{builders → dist/builders}/lowLvlBuilders/inserts/insert.js +5 -2
  66. package/{builders → dist/builders}/lowLvlBuilders/inserts/insertInto.d.ts +0 -0
  67. package/{builders → dist/builders}/lowLvlBuilders/inserts/insertInto.js +4 -1
  68. package/{builders → dist/builders}/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -0
  69. package/{builders → dist/builders}/lowLvlBuilders/inserts/onConflictInsert.js +0 -0
  70. package/{builders → dist/builders}/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -0
  71. package/{builders → dist/builders}/lowLvlBuilders/inserts/valuesInsert.js +4 -1
  72. package/{builders → dist/builders}/lowLvlBuilders/selects/select.d.ts +0 -0
  73. package/{builders → dist/builders}/lowLvlBuilders/selects/select.js +5 -2
  74. package/{builders → dist/builders}/lowLvlBuilders/selects/selectFrom.d.ts +0 -0
  75. package/{builders → dist/builders}/lowLvlBuilders/selects/selectFrom.js +5 -2
  76. package/{builders → dist/builders}/lowLvlBuilders/selects/selectJoined.d.ts +0 -0
  77. package/{builders → dist/builders}/lowLvlBuilders/selects/selectJoined.js +4 -1
  78. package/{builders → dist/builders}/lowLvlBuilders/selects/whereSelect.d.ts +0 -0
  79. package/{builders → dist/builders}/lowLvlBuilders/selects/whereSelect.js +0 -0
  80. package/{builders → dist/builders}/lowLvlBuilders/updates/update.d.ts +0 -0
  81. package/{builders → dist/builders}/lowLvlBuilders/updates/update.js +5 -2
  82. package/{builders → dist/builders}/lowLvlBuilders/updates/updateIn.d.ts +0 -0
  83. package/{builders → dist/builders}/lowLvlBuilders/updates/updateIn.js +4 -1
  84. package/{builders → dist/builders}/lowLvlBuilders/updates/whereSelect.d.ts +0 -0
  85. package/{builders → dist/builders}/lowLvlBuilders/updates/whereSelect.js +0 -0
  86. package/{builders → dist/builders}/lowLvlBuilders/updates/whereSet.d.ts +0 -0
  87. package/{builders → dist/builders}/lowLvlBuilders/updates/whereSet.js +4 -1
  88. package/{builders → dist/builders}/requestBuilders/updates/combine.d.ts +0 -0
  89. package/{builders → dist/builders}/requestBuilders/updates/combine.js +0 -0
  90. package/{builders → dist/builders}/requestBuilders/updates/increment.d.ts +0 -0
  91. package/{builders → dist/builders}/requestBuilders/updates/increment.js +0 -0
  92. package/{builders → dist/builders}/requestBuilders/updates/setObjects.d.ts +0 -0
  93. package/{builders → dist/builders}/requestBuilders/updates/setObjects.js +5 -2
  94. package/{builders → dist/builders}/requestBuilders/updates/static.d.ts +0 -0
  95. package/{builders → dist/builders}/requestBuilders/updates/static.js +6 -3
  96. package/{builders → dist/builders}/requestBuilders/updates/updates.d.ts +0 -0
  97. package/{builders → dist/builders}/requestBuilders/updates/updates.js +0 -0
  98. package/{builders → dist/builders}/requestBuilders/where/and.d.ts +0 -0
  99. package/{builders → dist/builders}/requestBuilders/where/and.js +4 -1
  100. package/{builders → dist/builders}/requestBuilders/where/const.d.ts +0 -0
  101. package/{builders → dist/builders}/requestBuilders/where/const.js +4 -1
  102. package/{builders → dist/builders}/requestBuilders/where/constArray.d.ts +0 -0
  103. package/{builders → dist/builders}/requestBuilders/where/constArray.js +4 -1
  104. package/{builders → dist/builders}/requestBuilders/where/eqWhere.d.ts +0 -0
  105. package/{builders → dist/builders}/requestBuilders/where/eqWhere.js +4 -1
  106. package/{builders → dist/builders}/requestBuilders/where/greater.d.ts +0 -0
  107. package/{builders → dist/builders}/requestBuilders/where/greater.js +4 -1
  108. package/{builders → dist/builders}/requestBuilders/where/greaterEq.d.ts +0 -0
  109. package/{builders → dist/builders}/requestBuilders/where/greaterEq.js +4 -1
  110. package/{builders → dist/builders}/requestBuilders/where/in.d.ts +0 -0
  111. package/{builders → dist/builders}/requestBuilders/where/in.js +4 -1
  112. package/{builders → dist/builders}/requestBuilders/where/isNotNull.d.ts +0 -0
  113. package/{builders → dist/builders}/requestBuilders/where/isNotNull.js +4 -1
  114. package/{builders → dist/builders}/requestBuilders/where/isNull.d.ts +0 -0
  115. package/{builders → dist/builders}/requestBuilders/where/isNull.js +4 -1
  116. package/{builders → dist/builders}/requestBuilders/where/less.d.ts +0 -0
  117. package/{builders → dist/builders}/requestBuilders/where/less.js +4 -1
  118. package/{builders → dist/builders}/requestBuilders/where/lessEq.d.ts +0 -0
  119. package/{builders → dist/builders}/requestBuilders/where/lessEq.js +4 -1
  120. package/{builders → dist/builders}/requestBuilders/where/like.d.ts +0 -0
  121. package/{builders → dist/builders}/requestBuilders/where/like.js +4 -1
  122. package/{builders → dist/builders}/requestBuilders/where/notEqWhere.d.ts +0 -0
  123. package/{builders → dist/builders}/requestBuilders/where/notEqWhere.js +4 -1
  124. package/{builders → dist/builders}/requestBuilders/where/or.d.ts +0 -0
  125. package/{builders → dist/builders}/requestBuilders/where/or.js +4 -1
  126. package/{builders → dist/builders}/requestBuilders/where/rawWhere.d.ts +0 -0
  127. package/{builders → dist/builders}/requestBuilders/where/rawWhere.js +4 -1
  128. package/{builders → dist/builders}/requestBuilders/where/static.d.ts +0 -0
  129. package/{builders → dist/builders}/requestBuilders/where/static.js +19 -16
  130. package/{builders → dist/builders}/requestBuilders/where/var.d.ts +0 -0
  131. package/{builders → dist/builders}/requestBuilders/where/var.js +4 -1
  132. package/{builders → dist/builders}/requestBuilders/where/where.d.ts +0 -0
  133. package/{builders → dist/builders}/requestBuilders/where/where.js +0 -0
  134. package/{builders → dist/builders}/transaction/transaction.d.ts +0 -0
  135. package/{builders → dist/builders}/transaction/transaction.js +0 -0
  136. package/{columns → dist/columns}/column.d.ts +0 -0
  137. package/{columns → dist/columns}/column.js +0 -0
  138. package/{columns → dist/columns}/index.d.ts +0 -0
  139. package/{columns → dist/columns}/index.js +12 -9
  140. package/{columns → dist/columns}/types/columnType.d.ts +0 -0
  141. package/{columns → dist/columns}/types/columnType.js +0 -0
  142. package/{columns → dist/columns}/types/pgBigDecimal.d.ts +0 -0
  143. package/{columns → dist/columns}/types/pgBigDecimal.js +4 -1
  144. package/{columns → dist/columns}/types/pgBigInt.d.ts +0 -0
  145. package/{columns → dist/columns}/types/pgBigInt.js +4 -1
  146. package/{columns → dist/columns}/types/pgBigSerial.d.ts +0 -0
  147. package/{columns → dist/columns}/types/pgBigSerial.js +4 -1
  148. package/{columns → dist/columns}/types/pgBoolean.d.ts +0 -0
  149. package/{columns → dist/columns}/types/pgBoolean.js +4 -1
  150. package/{columns → dist/columns}/types/pgEnum.d.ts +0 -0
  151. package/{columns → dist/columns}/types/pgEnum.js +4 -1
  152. package/{columns → dist/columns}/types/pgInteger.d.ts +0 -0
  153. package/{columns → dist/columns}/types/pgInteger.js +4 -1
  154. package/{columns → dist/columns}/types/pgJsonb.d.ts +0 -0
  155. package/{columns → dist/columns}/types/pgJsonb.js +4 -1
  156. package/{columns → dist/columns}/types/pgSerial.d.ts +0 -0
  157. package/{columns → dist/columns}/types/pgSerial.js +4 -1
  158. package/{columns → dist/columns}/types/pgSmallInt.d.ts +0 -0
  159. package/{columns → dist/columns}/types/pgSmallInt.js +4 -1
  160. package/{columns → dist/columns}/types/pgText.d.ts +0 -0
  161. package/{columns → dist/columns}/types/pgText.js +4 -1
  162. package/{columns → dist/columns}/types/pgTime.d.ts +0 -0
  163. package/{columns → dist/columns}/types/pgTime.js +4 -1
  164. package/{columns → dist/columns}/types/pgTimestamp.d.ts +0 -0
  165. package/{columns → dist/columns}/types/pgTimestamp.js +4 -1
  166. package/{columns → dist/columns}/types/pgTimestamptz.d.ts +0 -0
  167. package/{columns → dist/columns}/types/pgTimestamptz.js +4 -1
  168. package/{columns → dist/columns}/types/pgVarChar.d.ts +0 -0
  169. package/{columns → dist/columns}/types/pgVarChar.js +4 -1
  170. package/{db → dist/db}/db.d.ts +0 -0
  171. package/{db → dist/db}/db.js +0 -0
  172. package/{db → dist/db}/dbConnector.d.ts +0 -0
  173. package/{db → dist/db}/dbConnector.js +6 -3
  174. package/{db → dist/db}/dbStringConnector.d.ts +0 -0
  175. package/{db → dist/db}/dbStringConnector.js +5 -2
  176. package/{db → dist/db}/group_by.d.ts +0 -0
  177. package/{db → dist/db}/group_by.js +0 -0
  178. package/{db → dist/db}/index.d.ts +0 -0
  179. package/{db → dist/db}/index.js +6 -3
  180. package/{db → dist/db}/session.d.ts +0 -0
  181. package/{db → dist/db}/session.js +0 -0
  182. package/{docs → dist/docs}/cases/simple_delete.d.ts +0 -0
  183. package/{docs → dist/docs}/cases/simple_delete.js +7 -4
  184. package/{docs → dist/docs}/cases/simple_insert.d.ts +0 -0
  185. package/{docs → dist/docs}/cases/simple_insert.js +8 -5
  186. package/{docs → dist/docs}/cases/simple_join.d.ts +0 -0
  187. package/{docs → dist/docs}/cases/simple_join.js +8 -5
  188. package/{docs → dist/docs}/cases/simple_select.d.ts +0 -0
  189. package/{docs → dist/docs}/cases/simple_select.js +6 -3
  190. package/{docs → dist/docs}/cases/simple_update.d.ts +0 -0
  191. package/{docs → dist/docs}/cases/simple_update.js +7 -4
  192. package/{docs → dist/docs}/tables/citiesTable.d.ts +0 -0
  193. package/{docs → dist/docs}/tables/citiesTable.js +6 -2
  194. package/{docs → dist/docs}/tables/userGroupsTable.d.ts +0 -0
  195. package/{docs → dist/docs}/tables/userGroupsTable.js +4 -1
  196. package/{docs → dist/docs}/tables/usersTable.d.ts +0 -0
  197. package/{docs → dist/docs}/tables/usersTable.js +4 -1
  198. package/{docs → dist/docs}/tables/usersToUserGroups.d.ts +0 -0
  199. package/{docs → dist/docs}/tables/usersToUserGroups.js +6 -3
  200. package/{docs → dist/docs}/types/rolesType.d.ts +0 -0
  201. package/{docs → dist/docs}/types/rolesType.js +0 -0
  202. package/{errors → dist/errors}/baseError.d.ts +0 -0
  203. package/{errors → dist/errors}/baseError.js +0 -0
  204. package/{errors → dist/errors}/builderError.d.ts +0 -0
  205. package/{errors → dist/errors}/builderError.js +2 -1
  206. package/{errors → dist/errors}/dbErrors.d.ts +0 -0
  207. package/{errors → dist/errors}/dbErrors.js +0 -0
  208. package/{index.d.ts → dist/index.d.ts} +0 -0
  209. package/{index.js → dist/index.js} +4 -1
  210. package/{indexes → dist/indexes}/tableIndex.d.ts +0 -0
  211. package/{indexes → dist/indexes}/tableIndex.js +0 -0
  212. package/{logger → dist/logger}/abstractLogger.d.ts +0 -0
  213. package/{logger → dist/logger}/abstractLogger.js +0 -0
  214. package/{logger → dist/logger}/consoleLogger.d.ts +0 -0
  215. package/{logger → dist/logger}/consoleLogger.js +4 -1
  216. package/{mappers → dist/mappers}/index.d.ts +0 -0
  217. package/{mappers → dist/mappers}/index.js +0 -0
  218. package/{mappers → dist/mappers}/responseMapper.d.ts +0 -0
  219. package/{mappers → dist/mappers}/responseMapper.js +0 -0
  220. package/{migrator → dist/migrator}/index.d.ts +0 -0
  221. package/{migrator → dist/migrator}/index.js +0 -0
  222. package/{migrator → dist/migrator}/migrator.d.ts +0 -0
  223. package/{migrator → dist/migrator}/migrator.js +26 -4
  224. package/dist/serializer/serializer.d.ts +47 -0
  225. package/dist/serializer/serializer.js +258 -0
  226. package/dist/src/builders/aggregators/abstractAggregator.d.ts +11 -0
  227. package/dist/src/builders/aggregators/abstractAggregator.js +35 -0
  228. package/dist/src/builders/aggregators/deleteAggregator.d.ts +16 -0
  229. package/dist/src/builders/aggregators/deleteAggregator.js +42 -0
  230. package/dist/src/builders/aggregators/insertAggregator.d.ts +22 -0
  231. package/dist/src/builders/aggregators/insertAggregator.js +106 -0
  232. package/dist/src/builders/aggregators/selectAggregator.d.ts +39 -0
  233. package/dist/src/builders/aggregators/selectAggregator.js +143 -0
  234. package/dist/src/builders/aggregators/updateAggregator.d.ts +19 -0
  235. package/dist/src/builders/aggregators/updateAggregator.js +50 -0
  236. package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.d.ts +27 -0
  237. package/dist/src/builders/highLvlBuilders/abstractRequestBuilder.js +32 -0
  238. package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.d.ts +19 -0
  239. package/dist/src/builders/highLvlBuilders/deleteRequestBuilder.js +61 -0
  240. package/dist/src/builders/highLvlBuilders/insertRequestBuilder.d.ts +20 -0
  241. package/dist/src/builders/highLvlBuilders/insertRequestBuilder.js +73 -0
  242. package/dist/src/builders/highLvlBuilders/order.d.ts +5 -0
  243. package/dist/src/builders/highLvlBuilders/order.js +8 -0
  244. package/dist/src/builders/highLvlBuilders/selectRequestBuilder.d.ts +47 -0
  245. package/dist/src/builders/highLvlBuilders/selectRequestBuilder.js +128 -0
  246. package/dist/src/builders/highLvlBuilders/updateRequestBuilder.d.ts +22 -0
  247. package/dist/src/builders/highLvlBuilders/updateRequestBuilder.js +80 -0
  248. package/dist/src/builders/index.d.ts +18 -0
  249. package/dist/src/builders/index.js +54 -0
  250. package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +40 -0
  251. package/dist/src/builders/joinBuilders/builders/abstractJoinBuilder.js +78 -0
  252. package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +35 -0
  253. package/dist/src/builders/joinBuilders/builders/selectWithFiveJoins.js +45 -0
  254. package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.d.ts +55 -0
  255. package/dist/src/builders/joinBuilders/builders/selectWithFourJoins.js +78 -0
  256. package/dist/src/builders/joinBuilders/builders/selectWithJoin.d.ts +49 -0
  257. package/dist/src/builders/joinBuilders/builders/selectWithJoin.js +64 -0
  258. package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +53 -0
  259. package/dist/src/builders/joinBuilders/builders/selectWithThreeJoins.js +73 -0
  260. package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +51 -0
  261. package/dist/src/builders/joinBuilders/builders/selectWithTwoJoins.js +68 -0
  262. package/dist/src/builders/joinBuilders/join.d.ts +23 -0
  263. package/dist/src/builders/joinBuilders/join.js +28 -0
  264. package/dist/src/builders/joinBuilders/joinWith.d.ts +14 -0
  265. package/dist/src/builders/joinBuilders/joinWith.js +14 -0
  266. package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +20 -0
  267. package/dist/src/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
  268. package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +19 -0
  269. package/dist/src/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
  270. package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +18 -0
  271. package/dist/src/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
  272. package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +17 -0
  273. package/dist/src/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
  274. package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +16 -0
  275. package/dist/src/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
  276. package/dist/src/builders/joinBuilders/static.d.ts +5 -0
  277. package/dist/src/builders/joinBuilders/static.js +9 -0
  278. package/dist/src/builders/lowLvlBuilders/alter.d.ts +0 -0
  279. package/dist/src/builders/lowLvlBuilders/alter.js +1 -0
  280. package/dist/src/builders/lowLvlBuilders/create.d.ts +12 -0
  281. package/dist/src/builders/lowLvlBuilders/create.js +100 -0
  282. package/dist/src/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
  283. package/dist/src/builders/lowLvlBuilders/delets/delete.js +15 -0
  284. package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.d.ts +11 -0
  285. package/dist/src/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
  286. package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.d.ts +12 -0
  287. package/dist/src/builders/lowLvlBuilders/delets/deleteFrom.js +14 -0
  288. package/dist/src/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
  289. package/dist/src/builders/lowLvlBuilders/inserts/insert.js +15 -0
  290. package/dist/src/builders/lowLvlBuilders/inserts/insertInto.d.ts +13 -0
  291. package/dist/src/builders/lowLvlBuilders/inserts/insertInto.js +16 -0
  292. package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +12 -0
  293. package/dist/src/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
  294. package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +16 -0
  295. package/dist/src/builders/lowLvlBuilders/inserts/valuesInsert.js +19 -0
  296. package/dist/src/builders/lowLvlBuilders/selects/select.d.ts +9 -0
  297. package/dist/src/builders/lowLvlBuilders/selects/select.js +16 -0
  298. package/dist/src/builders/lowLvlBuilders/selects/selectFrom.d.ts +28 -0
  299. package/dist/src/builders/lowLvlBuilders/selects/selectFrom.js +34 -0
  300. package/dist/src/builders/lowLvlBuilders/selects/selectJoined.d.ts +26 -0
  301. package/dist/src/builders/lowLvlBuilders/selects/selectJoined.js +30 -0
  302. package/dist/src/builders/lowLvlBuilders/selects/whereSelect.d.ts +17 -0
  303. package/dist/src/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
  304. package/dist/src/builders/lowLvlBuilders/updates/update.d.ts +5 -0
  305. package/dist/src/builders/lowLvlBuilders/updates/update.js +15 -0
  306. package/dist/src/builders/lowLvlBuilders/updates/updateIn.d.ts +13 -0
  307. package/dist/src/builders/lowLvlBuilders/updates/updateIn.js +15 -0
  308. package/dist/src/builders/lowLvlBuilders/updates/whereSelect.d.ts +11 -0
  309. package/dist/src/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
  310. package/dist/src/builders/lowLvlBuilders/updates/whereSet.d.ts +14 -0
  311. package/dist/src/builders/lowLvlBuilders/updates/whereSet.js +18 -0
  312. package/dist/src/builders/requestBuilders/updates/combine.d.ts +9 -0
  313. package/dist/src/builders/requestBuilders/updates/combine.js +26 -0
  314. package/dist/src/builders/requestBuilders/updates/increment.d.ts +13 -0
  315. package/dist/src/builders/requestBuilders/updates/increment.js +18 -0
  316. package/dist/src/builders/requestBuilders/updates/setObjects.d.ts +12 -0
  317. package/dist/src/builders/requestBuilders/updates/setObjects.js +19 -0
  318. package/dist/src/builders/requestBuilders/updates/static.d.ts +7 -0
  319. package/dist/src/builders/requestBuilders/updates/static.js +15 -0
  320. package/dist/src/builders/requestBuilders/updates/updates.d.ts +9 -0
  321. package/dist/src/builders/requestBuilders/updates/updates.js +10 -0
  322. package/dist/src/builders/requestBuilders/where/and.d.ts +11 -0
  323. package/dist/src/builders/requestBuilders/where/and.js +31 -0
  324. package/dist/src/builders/requestBuilders/where/const.d.ts +9 -0
  325. package/dist/src/builders/requestBuilders/where/const.js +25 -0
  326. package/dist/src/builders/requestBuilders/where/constArray.d.ts +9 -0
  327. package/dist/src/builders/requestBuilders/where/constArray.js +39 -0
  328. package/dist/src/builders/requestBuilders/where/eqWhere.d.ts +12 -0
  329. package/dist/src/builders/requestBuilders/where/eqWhere.js +20 -0
  330. package/dist/src/builders/requestBuilders/where/greater.d.ts +15 -0
  331. package/dist/src/builders/requestBuilders/where/greater.js +20 -0
  332. package/dist/src/builders/requestBuilders/where/greaterEq.d.ts +15 -0
  333. package/dist/src/builders/requestBuilders/where/greaterEq.js +20 -0
  334. package/dist/src/builders/requestBuilders/where/in.d.ts +12 -0
  335. package/dist/src/builders/requestBuilders/where/in.js +20 -0
  336. package/dist/src/builders/requestBuilders/where/isNotNull.d.ts +11 -0
  337. package/dist/src/builders/requestBuilders/where/isNotNull.js +18 -0
  338. package/dist/src/builders/requestBuilders/where/isNull.d.ts +11 -0
  339. package/dist/src/builders/requestBuilders/where/isNull.js +18 -0
  340. package/dist/src/builders/requestBuilders/where/less.d.ts +15 -0
  341. package/dist/src/builders/requestBuilders/where/less.js +20 -0
  342. package/dist/src/builders/requestBuilders/where/lessEq.d.ts +15 -0
  343. package/dist/src/builders/requestBuilders/where/lessEq.js +20 -0
  344. package/dist/src/builders/requestBuilders/where/like.d.ts +12 -0
  345. package/dist/src/builders/requestBuilders/where/like.js +20 -0
  346. package/dist/src/builders/requestBuilders/where/notEqWhere.d.ts +12 -0
  347. package/dist/src/builders/requestBuilders/where/notEqWhere.js +20 -0
  348. package/dist/src/builders/requestBuilders/where/or.d.ts +11 -0
  349. package/dist/src/builders/requestBuilders/where/or.js +31 -0
  350. package/dist/src/builders/requestBuilders/where/rawWhere.d.ts +9 -0
  351. package/dist/src/builders/requestBuilders/where/rawWhere.js +15 -0
  352. package/dist/src/builders/requestBuilders/where/static.d.ts +17 -0
  353. package/dist/src/builders/requestBuilders/where/static.js +49 -0
  354. package/dist/src/builders/requestBuilders/where/var.d.ts +13 -0
  355. package/dist/src/builders/requestBuilders/where/var.js +18 -0
  356. package/dist/src/builders/requestBuilders/where/where.d.ts +8 -0
  357. package/dist/src/builders/requestBuilders/where/where.js +6 -0
  358. package/dist/src/builders/transaction/transaction.d.ts +8 -0
  359. package/dist/src/builders/transaction/transaction.js +20 -0
  360. package/dist/src/columns/column.d.ts +72 -0
  361. package/dist/src/columns/column.js +101 -0
  362. package/dist/src/columns/index.d.ts +10 -0
  363. package/dist/src/columns/index.js +27 -0
  364. package/dist/src/columns/types/columnType.d.ts +7 -0
  365. package/dist/src/columns/types/columnType.js +6 -0
  366. package/dist/src/columns/types/pgBigDecimal.d.ts +10 -0
  367. package/dist/src/columns/types/pgBigDecimal.js +31 -0
  368. package/dist/src/columns/types/pgBigInt.d.ts +15 -0
  369. package/dist/src/columns/types/pgBigInt.js +32 -0
  370. package/dist/src/columns/types/pgBigSerial.d.ts +15 -0
  371. package/dist/src/columns/types/pgBigSerial.js +32 -0
  372. package/dist/src/columns/types/pgBoolean.d.ts +8 -0
  373. package/dist/src/columns/types/pgBoolean.js +18 -0
  374. package/dist/src/columns/types/pgEnum.d.ts +9 -0
  375. package/dist/src/columns/types/pgEnum.js +18 -0
  376. package/dist/src/columns/types/pgInteger.d.ts +8 -0
  377. package/dist/src/columns/types/pgInteger.js +21 -0
  378. package/dist/src/columns/types/pgJsonb.d.ts +9 -0
  379. package/dist/src/columns/types/pgJsonb.js +20 -0
  380. package/dist/src/columns/types/pgSerial.d.ts +8 -0
  381. package/dist/src/columns/types/pgSerial.js +18 -0
  382. package/dist/src/columns/types/pgSmallInt.d.ts +8 -0
  383. package/dist/src/columns/types/pgSmallInt.js +18 -0
  384. package/dist/src/columns/types/pgText.d.ts +8 -0
  385. package/dist/src/columns/types/pgText.js +18 -0
  386. package/dist/src/columns/types/pgTime.d.ts +8 -0
  387. package/dist/src/columns/types/pgTime.js +18 -0
  388. package/dist/src/columns/types/pgTimestamp.d.ts +8 -0
  389. package/dist/src/columns/types/pgTimestamp.js +18 -0
  390. package/dist/src/columns/types/pgTimestamptz.d.ts +8 -0
  391. package/dist/src/columns/types/pgTimestamptz.js +18 -0
  392. package/dist/src/columns/types/pgVarChar.d.ts +9 -0
  393. package/dist/src/columns/types/pgVarChar.js +24 -0
  394. package/dist/src/db/db.d.ts +18 -0
  395. package/dist/src/db/db.js +25 -0
  396. package/dist/src/db/dbConnector.d.ts +9 -0
  397. package/dist/src/db/dbConnector.js +32 -0
  398. package/dist/src/db/dbStringConnector.d.ts +6 -0
  399. package/dist/src/db/dbStringConnector.js +29 -0
  400. package/dist/src/db/group_by.d.ts +0 -0
  401. package/dist/src/db/group_by.js +68 -0
  402. package/dist/src/db/index.d.ts +4 -0
  403. package/dist/src/db/index.js +14 -0
  404. package/dist/src/db/session.d.ts +9 -0
  405. package/dist/src/db/session.js +16 -0
  406. package/{test.d.ts → dist/src/docs/cases/simple_delete.d.ts} +0 -0
  407. package/dist/src/docs/cases/simple_delete.js +35 -0
  408. package/dist/src/docs/cases/simple_insert.d.ts +1 -0
  409. package/dist/src/docs/cases/simple_insert.js +57 -0
  410. package/dist/src/docs/cases/simple_join.d.ts +1 -0
  411. package/dist/src/docs/cases/simple_join.js +115 -0
  412. package/dist/src/docs/cases/simple_select.d.ts +1 -0
  413. package/dist/src/docs/cases/simple_select.js +50 -0
  414. package/dist/src/docs/cases/simple_update.d.ts +1 -0
  415. package/dist/src/docs/cases/simple_update.js +39 -0
  416. package/dist/src/docs/tables/citiesTable.d.ts +14 -0
  417. package/dist/src/docs/tables/citiesTable.js +21 -0
  418. package/dist/src/docs/tables/userGroupsTable.d.ts +7 -0
  419. package/dist/src/docs/tables/userGroupsTable.js +18 -0
  420. package/dist/src/docs/tables/usersTable.d.ts +17 -0
  421. package/dist/src/docs/tables/usersTable.js +35 -0
  422. package/dist/src/docs/tables/usersToUserGroups.d.ts +7 -0
  423. package/dist/src/docs/tables/usersToUserGroups.js +20 -0
  424. package/dist/src/docs/types/rolesType.d.ts +1 -0
  425. package/dist/src/docs/types/rolesType.js +6 -0
  426. package/dist/src/errors/baseError.d.ts +22 -0
  427. package/dist/src/errors/baseError.js +35 -0
  428. package/dist/src/errors/builderError.d.ts +14 -0
  429. package/dist/src/errors/builderError.js +25 -0
  430. package/dist/src/errors/dbErrors.d.ts +12 -0
  431. package/dist/src/errors/dbErrors.js +28 -0
  432. package/dist/src/index.d.ts +11 -0
  433. package/dist/src/index.js +31 -0
  434. package/dist/src/indexes/tableIndex.d.ts +11 -0
  435. package/dist/src/indexes/tableIndex.js +17 -0
  436. package/dist/src/logger/abstractLogger.d.ts +4 -0
  437. package/dist/src/logger/abstractLogger.js +5 -0
  438. package/dist/src/logger/consoleLogger.d.ts +5 -0
  439. package/dist/src/logger/consoleLogger.js +15 -0
  440. package/dist/src/mappers/index.d.ts +0 -0
  441. package/dist/src/mappers/index.js +1 -0
  442. package/dist/src/mappers/responseMapper.d.ts +10 -0
  443. package/dist/src/mappers/responseMapper.js +35 -0
  444. package/dist/src/migrator/index.d.ts +0 -0
  445. package/dist/src/migrator/index.js +1 -0
  446. package/dist/src/migrator/migrator.d.ts +11 -0
  447. package/dist/src/migrator/migrator.js +105 -0
  448. package/{serializer → dist/src/serializer}/serializer.d.ts +0 -0
  449. package/{serializer → dist/src/serializer}/serializer.js +4 -1
  450. package/{tables → dist/src/tables}/abstractTable.d.ts +0 -0
  451. package/{tables → dist/src/tables}/abstractTable.js +41 -19
  452. package/{tables → dist/src/tables}/index.d.ts +0 -0
  453. package/{tables → dist/src/tables}/index.js +5 -2
  454. package/{tables → dist/src/tables}/inferTypes.d.ts +0 -0
  455. package/{tables → dist/src/tables}/inferTypes.js +0 -0
  456. package/{tables → dist/src/tables}/migrationsTable.d.ts +0 -0
  457. package/{tables → dist/src/tables}/migrationsTable.js +4 -1
  458. package/dist/src/test.d.ts +1 -0
  459. package/{test.js → dist/src/test.js} +23 -8
  460. package/{types → dist/src/types}/type.d.ts +0 -0
  461. package/{types → dist/src/types}/type.js +0 -0
  462. package/{utils → dist/src/utils}/ecranate.d.ts +0 -0
  463. package/{utils → dist/src/utils}/ecranate.js +0 -0
  464. package/dist/tables/abstractTable.d.ts +68 -0
  465. package/dist/tables/abstractTable.js +151 -0
  466. package/dist/tables/index.d.ts +3 -0
  467. package/dist/tables/index.js +11 -0
  468. package/dist/tables/inferTypes.d.ts +39 -0
  469. package/dist/tables/inferTypes.js +2 -0
  470. package/dist/tables/migrationsTable.d.ts +7 -0
  471. package/dist/tables/migrationsTable.js +18 -0
  472. package/dist/test.d.ts +1 -0
  473. package/dist/test.js +65 -0
  474. package/dist/tsconfig.tsbuildinfo +5054 -0
  475. package/dist/types/type.d.ts +10 -0
  476. package/dist/types/type.js +14 -0
  477. package/dist/utils/ecranate.d.ts +2 -0
  478. package/dist/utils/ecranate.js +8 -0
  479. package/package.json +18 -13
  480. package/tables/aggregators.d.ts +0 -27
  481. package/tables/aggregators.js +0 -56
@@ -0,0 +1,22 @@
1
+ import { AbstractColumn } from '../../columns/column';
2
+ import ColumnType from '../../columns/types/columnType';
3
+ import { ISession } from '../../db/session';
4
+ import BaseLogger from '../../logger/abstractLogger';
5
+ import { AbstractTable } from '../../tables';
6
+ import { ExtractModel, ExtractUpdateModel } from '../../tables/inferTypes';
7
+ import Expr from '../requestBuilders/where/where';
8
+ import TableRequestBuilder from './abstractRequestBuilder';
9
+ export default class UpdateTRB<TTable extends AbstractTable<TTable>, TPartial extends {
10
+ [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, TTable>;
11
+ } = {}> extends TableRequestBuilder<TTable, TPartial> {
12
+ private _filter;
13
+ private _update;
14
+ private _objToUpdate;
15
+ constructor(table: AbstractTable<TTable>, session: ISession, mappedServiceToDb: {
16
+ [name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>;
17
+ }, logger?: BaseLogger);
18
+ where: (expr: Expr) => UpdateTRB<TTable>;
19
+ set: (expr: Partial<ExtractUpdateModel<TTable>>) => UpdateTRB<TTable>;
20
+ execute: () => Promise<void>;
21
+ protected _execute: () => Promise<Array<[keyof TPartial] extends [never] ? ExtractModel<TTable> : ExtractModel<TPartial>>>;
22
+ }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const builderError_1 = __importStar(require("../../errors/builderError"));
26
+ const responseMapper_1 = __importDefault(require("../../mappers/responseMapper"));
27
+ const update_1 = __importDefault(require("../lowLvlBuilders/updates/update"));
28
+ const static_1 = require("../requestBuilders/updates/static");
29
+ const updates_1 = require("../requestBuilders/updates/updates");
30
+ const abstractRequestBuilder_1 = __importDefault(require("./abstractRequestBuilder"));
31
+ class UpdateTRB extends abstractRequestBuilder_1.default {
32
+ constructor(table, session, mappedServiceToDb, logger) {
33
+ super(table, session, mappedServiceToDb, logger);
34
+ this.where = (expr) => {
35
+ this._filter = expr;
36
+ return this;
37
+ };
38
+ this.set = (expr) => {
39
+ const updates = [];
40
+ Object.entries(expr).forEach(([key, value]) => {
41
+ const column = this._mappedServiceToDb[key];
42
+ if (value instanceof updates_1.UpdateCustomExpr) {
43
+ value.setColumn(column);
44
+ updates.push(value);
45
+ }
46
+ else {
47
+ updates.push(static_1.set(column, value));
48
+ }
49
+ });
50
+ this._update = static_1.combine(updates);
51
+ return this;
52
+ };
53
+ this.execute = async () => {
54
+ await this._execute();
55
+ };
56
+ this._execute = async () => {
57
+ let query = '';
58
+ let values = [];
59
+ try {
60
+ const builderResult = update_1.default.in(this._table)
61
+ .columns()
62
+ .set(this._update)
63
+ .filteredBy(this._filter)
64
+ .build();
65
+ query = builderResult.query;
66
+ values = builderResult.values;
67
+ }
68
+ catch (e) {
69
+ throw new builderError_1.default(builderError_1.BuilderType.UPDATE, this._table.tableName(), this._columns, e, this._filter);
70
+ }
71
+ if (this._logger) {
72
+ this._logger.info(`Updating ${this._table.tableName()} using query:\n ${query}`);
73
+ console.log(values);
74
+ }
75
+ const result = await this._session.execute(query, values);
76
+ return responseMapper_1.default.map(this._mappedServiceToDb, result);
77
+ };
78
+ }
79
+ }
80
+ exports.default = UpdateTRB;
@@ -0,0 +1,18 @@
1
+ export { default as DeleteTRB } from './highLvlBuilders/deleteRequestBuilder';
2
+ export { default as InsertTRB } from './highLvlBuilders/insertRequestBuilder';
3
+ export { default as SelectTRB } from './highLvlBuilders/selectRequestBuilder';
4
+ export { default as UpdateTRB } from './highLvlBuilders/updateRequestBuilder';
5
+ export { default as to } from './joinBuilders/static';
6
+ export { default as JoinWith } from './joinBuilders/joinWith';
7
+ export { default as Join } from './joinBuilders/join';
8
+ export { default as SelectTRBWithJoin } from './joinBuilders/builders/selectWithJoin';
9
+ export { default as SelectTRBWithTwoJoins } from './joinBuilders/builders/selectWithTwoJoins';
10
+ export { default as SelectResponseTwoJoins } from './joinBuilders/responses/selectResponseTwoJoins';
11
+ export { default as SelectResponseJoin } from './joinBuilders/responses/selectResponseWithJoin';
12
+ export { default as Create } from './lowLvlBuilders/create';
13
+ export { default as Delete } from './lowLvlBuilders/delets/delete';
14
+ export { default as Insert } from './lowLvlBuilders/inserts/insert';
15
+ export { default as Select } from './lowLvlBuilders/selects/select';
16
+ export { default as Update } from './lowLvlBuilders/updates/update';
17
+ export { set, combine } from './requestBuilders/updates/static';
18
+ export { eq, inArray as in, and, or, like, greater, greaterEq, less, lessEq, raw, isNotNull, } from './requestBuilders/where/static';
@@ -0,0 +1,54 @@
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
+ exports.isNotNull = exports.raw = exports.lessEq = exports.less = exports.greaterEq = exports.greater = exports.like = exports.or = exports.and = exports.in = exports.eq = exports.combine = exports.set = exports.Update = exports.Select = exports.Insert = exports.Delete = exports.Create = exports.SelectResponseJoin = exports.SelectResponseTwoJoins = exports.SelectTRBWithTwoJoins = exports.SelectTRBWithJoin = exports.Join = exports.JoinWith = exports.to = exports.UpdateTRB = exports.SelectTRB = exports.InsertTRB = exports.DeleteTRB = void 0;
7
+ /* eslint-disable import/no-cycle */
8
+ var deleteRequestBuilder_1 = require("./highLvlBuilders/deleteRequestBuilder");
9
+ Object.defineProperty(exports, "DeleteTRB", { enumerable: true, get: function () { return __importDefault(deleteRequestBuilder_1).default; } });
10
+ var insertRequestBuilder_1 = require("./highLvlBuilders/insertRequestBuilder");
11
+ Object.defineProperty(exports, "InsertTRB", { enumerable: true, get: function () { return __importDefault(insertRequestBuilder_1).default; } });
12
+ var selectRequestBuilder_1 = require("./highLvlBuilders/selectRequestBuilder");
13
+ Object.defineProperty(exports, "SelectTRB", { enumerable: true, get: function () { return __importDefault(selectRequestBuilder_1).default; } });
14
+ var updateRequestBuilder_1 = require("./highLvlBuilders/updateRequestBuilder");
15
+ Object.defineProperty(exports, "UpdateTRB", { enumerable: true, get: function () { return __importDefault(updateRequestBuilder_1).default; } });
16
+ var static_1 = require("./joinBuilders/static");
17
+ Object.defineProperty(exports, "to", { enumerable: true, get: function () { return __importDefault(static_1).default; } });
18
+ var joinWith_1 = require("./joinBuilders/joinWith");
19
+ Object.defineProperty(exports, "JoinWith", { enumerable: true, get: function () { return __importDefault(joinWith_1).default; } });
20
+ var join_1 = require("./joinBuilders/join");
21
+ Object.defineProperty(exports, "Join", { enumerable: true, get: function () { return __importDefault(join_1).default; } });
22
+ var selectWithJoin_1 = require("./joinBuilders/builders/selectWithJoin");
23
+ Object.defineProperty(exports, "SelectTRBWithJoin", { enumerable: true, get: function () { return __importDefault(selectWithJoin_1).default; } });
24
+ var selectWithTwoJoins_1 = require("./joinBuilders/builders/selectWithTwoJoins");
25
+ Object.defineProperty(exports, "SelectTRBWithTwoJoins", { enumerable: true, get: function () { return __importDefault(selectWithTwoJoins_1).default; } });
26
+ var selectResponseTwoJoins_1 = require("./joinBuilders/responses/selectResponseTwoJoins");
27
+ Object.defineProperty(exports, "SelectResponseTwoJoins", { enumerable: true, get: function () { return __importDefault(selectResponseTwoJoins_1).default; } });
28
+ var selectResponseWithJoin_1 = require("./joinBuilders/responses/selectResponseWithJoin");
29
+ Object.defineProperty(exports, "SelectResponseJoin", { enumerable: true, get: function () { return __importDefault(selectResponseWithJoin_1).default; } });
30
+ var create_1 = require("./lowLvlBuilders/create");
31
+ Object.defineProperty(exports, "Create", { enumerable: true, get: function () { return __importDefault(create_1).default; } });
32
+ var delete_1 = require("./lowLvlBuilders/delets/delete");
33
+ Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return __importDefault(delete_1).default; } });
34
+ var insert_1 = require("./lowLvlBuilders/inserts/insert");
35
+ Object.defineProperty(exports, "Insert", { enumerable: true, get: function () { return __importDefault(insert_1).default; } });
36
+ var select_1 = require("./lowLvlBuilders/selects/select");
37
+ Object.defineProperty(exports, "Select", { enumerable: true, get: function () { return __importDefault(select_1).default; } });
38
+ var update_1 = require("./lowLvlBuilders/updates/update");
39
+ Object.defineProperty(exports, "Update", { enumerable: true, get: function () { return __importDefault(update_1).default; } });
40
+ var static_2 = require("./requestBuilders/updates/static");
41
+ Object.defineProperty(exports, "set", { enumerable: true, get: function () { return static_2.set; } });
42
+ Object.defineProperty(exports, "combine", { enumerable: true, get: function () { return static_2.combine; } });
43
+ var static_3 = require("./requestBuilders/where/static");
44
+ Object.defineProperty(exports, "eq", { enumerable: true, get: function () { return static_3.eq; } });
45
+ Object.defineProperty(exports, "in", { enumerable: true, get: function () { return static_3.inArray; } });
46
+ Object.defineProperty(exports, "and", { enumerable: true, get: function () { return static_3.and; } });
47
+ Object.defineProperty(exports, "or", { enumerable: true, get: function () { return static_3.or; } });
48
+ Object.defineProperty(exports, "like", { enumerable: true, get: function () { return static_3.like; } });
49
+ Object.defineProperty(exports, "greater", { enumerable: true, get: function () { return static_3.greater; } });
50
+ Object.defineProperty(exports, "greaterEq", { enumerable: true, get: function () { return static_3.greaterEq; } });
51
+ Object.defineProperty(exports, "less", { enumerable: true, get: function () { return static_3.less; } });
52
+ Object.defineProperty(exports, "lessEq", { enumerable: true, get: function () { return static_3.lessEq; } });
53
+ Object.defineProperty(exports, "raw", { enumerable: true, get: function () { return static_3.raw; } });
54
+ Object.defineProperty(exports, "isNotNull", { enumerable: true, get: function () { return static_3.isNotNull; } });
@@ -0,0 +1,40 @@
1
+ import { QueryResult } from 'pg';
2
+ import { AbstractColumn } from '../../../columns/column';
3
+ import ColumnType from '../../../columns/types/columnType';
4
+ import { ISession } from '../../../db/session';
5
+ import { AbstractTable } from '../../../tables';
6
+ import { ExtractModel, FullOrPartial, PartialFor } from '../../../tables/inferTypes';
7
+ import Order from '../../highLvlBuilders/order';
8
+ import Expr from '../../requestBuilders/where/where';
9
+ import Join from '../join';
10
+ export default abstract class AbstractJoined<TTable extends AbstractTable<TTable>, TRes, TPartial extends PartialFor<TTable> = {}> {
11
+ protected _table: TTable;
12
+ protected _session: ISession;
13
+ protected _filter: Expr;
14
+ protected _distinct?: AbstractColumn<ColumnType, boolean, boolean>;
15
+ protected _props: {
16
+ limit?: number;
17
+ offset?: number;
18
+ };
19
+ protected _orderBy?: AbstractColumn<ColumnType, boolean, boolean>;
20
+ protected _order?: Order;
21
+ protected _partial?: TPartial;
22
+ constructor(table: TTable, filter: Expr, session: ISession, props: {
23
+ limit?: number;
24
+ offset?: number;
25
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial);
26
+ limit: (limit: number) => this;
27
+ offset: (offset: number) => this;
28
+ execute: () => Promise<TRes>;
29
+ protected fullOrPartial<Table extends AbstractTable<Table>, Partial extends PartialFor<Table>>(mappedServiceToDb: {
30
+ [name in keyof ExtractModel<Table>]: AbstractColumn<ColumnType>;
31
+ }, result: QueryResult<any>, partial?: Partial, joinId?: number): Array<FullOrPartial<Table, Partial>>;
32
+ protected abstract mapResponse(result: QueryResult<any>): TRes;
33
+ protected abstract joins(): Array<{
34
+ join: Join<any>;
35
+ partial?: {
36
+ [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>;
37
+ };
38
+ id?: number;
39
+ }>;
40
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const builderError_1 = __importStar(require("../../../errors/builderError"));
26
+ const responseMapper_1 = __importDefault(require("../../../mappers/responseMapper"));
27
+ const select_1 = __importDefault(require("../../lowLvlBuilders/selects/select"));
28
+ class AbstractJoined {
29
+ constructor(table, filter, session, props, orderBy, order, distinct, tablePartial) {
30
+ this.limit = (limit) => {
31
+ this._props.limit = limit;
32
+ return this;
33
+ };
34
+ this.offset = (offset) => {
35
+ this._props.offset = offset;
36
+ return this;
37
+ };
38
+ this.execute = async () => {
39
+ const queryBuilder = select_1.default
40
+ .from(this._table, this._partial)
41
+ .distinct(this._distinct)
42
+ .joined(this.joins())
43
+ .limit(this._props.limit)
44
+ .offset(this._props.offset)
45
+ .filteredBy(this._filter)
46
+ .orderBy(this._orderBy, this._order);
47
+ let query = '';
48
+ let values = [];
49
+ try {
50
+ const builderResult = queryBuilder.build();
51
+ query = builderResult.query;
52
+ values = builderResult.values;
53
+ }
54
+ catch (e) {
55
+ throw new builderError_1.default(builderError_1.BuilderType.JOINED_SELECT, this._table.tableName(), Object.values(this._table.mapServiceToDb()), e, this._filter);
56
+ }
57
+ console.log(query);
58
+ console.log(values);
59
+ const result = await this._session.execute(query, values);
60
+ return this.mapResponse(result);
61
+ };
62
+ this._table = table;
63
+ this._session = session;
64
+ this._filter = filter;
65
+ this._props = props;
66
+ this._order = order;
67
+ this._orderBy = orderBy;
68
+ this._distinct = distinct;
69
+ this._partial = tablePartial;
70
+ }
71
+ fullOrPartial(mappedServiceToDb, result, partial, joinId) {
72
+ if (partial) {
73
+ return responseMapper_1.default.partialMap(partial, result, joinId);
74
+ }
75
+ return responseMapper_1.default.map(mappedServiceToDb, result, joinId);
76
+ }
77
+ }
78
+ exports.default = AbstractJoined;
@@ -0,0 +1,35 @@
1
+ import { QueryResult } from 'pg';
2
+ import { AbstractColumn } from '../../../columns/column';
3
+ import ColumnType from '../../../columns/types/columnType';
4
+ import { ISession } from '../../../db/session';
5
+ import { AbstractTable } from '../../../tables';
6
+ import { PartialFor } from '../../../tables/inferTypes';
7
+ import Order from '../../highLvlBuilders/order';
8
+ import Expr from '../../requestBuilders/where/where';
9
+ import Join from '../join';
10
+ import SelectResponseFiveJoins from '../responses/selectResponseFiveJoins';
11
+ import AbstractJoined from './abstractJoinBuilder';
12
+ export default class SelectTRBWithFiveJoins<TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>, TTable3 extends AbstractTable<TTable3>, TTable4 extends AbstractTable<TTable4>, TTable5 extends AbstractTable<TTable5>, TPartial extends PartialFor<TTable> = {}, TPartial1 extends PartialFor<TTable1> = {}, TPartial2 extends PartialFor<TTable2> = {}, TPartial3 extends PartialFor<TTable3> = {}, TPartial4 extends PartialFor<TTable4> = {}, TPartial5 extends PartialFor<TTable5> = {}> extends AbstractJoined<TTable, SelectResponseFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, TTable5, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, TPartial5>, TPartial> {
13
+ private _join1;
14
+ private _join2;
15
+ private _join3;
16
+ private _join4;
17
+ private _join5;
18
+ private _joinedPartial?;
19
+ private _joinedPartial1?;
20
+ private _joinedPartial2?;
21
+ private _joinedPartial3?;
22
+ private _joinedPartial4?;
23
+ constructor(table: TTable, session: ISession, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, join3: Join<TTable3>, join4: Join<TTable4>, join5: Join<TTable5>, props: {
24
+ limit?: number;
25
+ offset?: number;
26
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1, joinedPartial1?: TPartial2, joinedPartial2?: TPartial3, joinedPartial3?: TPartial4, joinedPartial4?: TPartial5);
27
+ protected joins(): Array<{
28
+ join: Join<any>;
29
+ partial?: {
30
+ [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>;
31
+ };
32
+ id?: number;
33
+ }>;
34
+ protected mapResponse(result: QueryResult<any>): SelectResponseFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, TTable5, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, TPartial5>;
35
+ }
@@ -0,0 +1,45 @@
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 selectResponseFiveJoins_1 = __importDefault(require("../responses/selectResponseFiveJoins"));
7
+ const abstractJoinBuilder_1 = __importDefault(require("./abstractJoinBuilder"));
8
+ class SelectTRBWithFiveJoins extends abstractJoinBuilder_1.default {
9
+ constructor(table, session, filter, join1, join2, join3, join4, join5, props, orderBy, order, distinct, tablePartial, joinedPartial, joinedPartial1, joinedPartial2, joinedPartial3, joinedPartial4) {
10
+ super(table, filter, session, props, orderBy, order, distinct, tablePartial);
11
+ this._join1 = join1;
12
+ this._join2 = join2;
13
+ this._join3 = join3;
14
+ this._join4 = join4;
15
+ this._join5 = join5;
16
+ this._joinedPartial = joinedPartial;
17
+ this._joinedPartial1 = joinedPartial1;
18
+ this._joinedPartial2 = joinedPartial2;
19
+ this._joinedPartial3 = joinedPartial3;
20
+ this._joinedPartial4 = joinedPartial4;
21
+ }
22
+ joins() {
23
+ return [{ join: this._join1, partial: this._joinedPartial, id: 1 },
24
+ { join: this._join2, partial: this._joinedPartial1, id: 2 },
25
+ { join: this._join3, partial: this._joinedPartial2, id: 3 },
26
+ { join: this._join4, partial: this._joinedPartial3, id: 4 },
27
+ { join: this._join5, partial: this._joinedPartial4, id: 5 }];
28
+ }
29
+ mapResponse(result) {
30
+ const parent = this._join1.mappedServiceToDb;
31
+ const parentTwo = this._join2.mappedServiceToDb;
32
+ const parentThree = this._join3.mappedServiceToDb;
33
+ const parentFour = this._join4.mappedServiceToDb;
34
+ const parentFive = this._join5.mappedServiceToDb;
35
+ // TODO map ids for join properly
36
+ const response = this.fullOrPartial(this._table.mapServiceToDb(), result, this._partial);
37
+ const objects = this.fullOrPartial(parent, result, this._joinedPartial, 1);
38
+ const objectsTwo = this.fullOrPartial(parentTwo, result, this._joinedPartial1, 2);
39
+ const objectsThree = this.fullOrPartial(parentThree, result, this._joinedPartial2, 3);
40
+ const objectsFour = this.fullOrPartial(parentFour, result, this._joinedPartial3, 4);
41
+ const objectsFive = this.fullOrPartial(parentFive, result, this._joinedPartial4, 5);
42
+ return new selectResponseFiveJoins_1.default(response, objects, objectsTwo, objectsThree, objectsFour, objectsFive);
43
+ }
44
+ }
45
+ exports.default = SelectTRBWithFiveJoins;
@@ -0,0 +1,55 @@
1
+ import { QueryResult } from 'pg';
2
+ import { AbstractColumn } from '../../../columns/column';
3
+ import ColumnType from '../../../columns/types/columnType';
4
+ import DB from '../../../db/db';
5
+ import { ISession } from '../../../db/session';
6
+ import { AbstractTable } from '../../../tables';
7
+ import { CheckFiveTypes, PartialFor } from '../../../tables/inferTypes';
8
+ import Order from '../../highLvlBuilders/order';
9
+ import Expr from '../../requestBuilders/where/where';
10
+ import Join from '../join';
11
+ import SelectResponseFourJoins from '../responses/selectResponseFourJoins';
12
+ import AbstractJoined from './abstractJoinBuilder';
13
+ import SelectTRBWithFiveJoins from './selectWithFiveJoins';
14
+ export default class SelectTRBWithFourJoins<TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TTable2 extends AbstractTable<TTable2>, TTable3 extends AbstractTable<TTable3>, TTable4 extends AbstractTable<TTable4>, TPartial extends PartialFor<TTable> = {}, TPartial1 extends PartialFor<TTable1> = {}, TPartial2 extends PartialFor<TTable2> = {}, TPartial3 extends PartialFor<TTable3> = {}, TPartial4 extends PartialFor<TTable4> = {}> extends AbstractJoined<TTable, SelectResponseFourJoins<TTable, TTable1, TTable2, TTable3, TTable4, TPartial, TPartial1, TPartial2, TPartial3, TPartial4>, TPartial> {
15
+ private _join1;
16
+ private _join2;
17
+ private _join3;
18
+ private _join4;
19
+ private _joinedPartial?;
20
+ private _joinedPartial1?;
21
+ private _joinedPartial2?;
22
+ private _joinedPartial3?;
23
+ constructor(table: TTable, session: ISession, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, join3: Join<TTable3>, join4: Join<TTable4>, props: {
24
+ limit?: number;
25
+ offset?: number;
26
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1, joinedPartial1?: TPartial2, joinedPartial2?: TPartial3, joinedPartial3?: TPartial4);
27
+ innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
28
+ new (db: DB): InputTable;
29
+ }, table: {
30
+ new (db: DB): IToTable;
31
+ }, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
32
+ leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
33
+ new (db: DB): InputTable;
34
+ }, table: {
35
+ new (db: DB): IToTable;
36
+ }, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
37
+ rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
38
+ new (db: DB): InputTable;
39
+ }, table: {
40
+ new (db: DB): IToTable;
41
+ }, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
42
+ fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
43
+ new (db: DB): InputTable;
44
+ }, table: {
45
+ new (db: DB): IToTable;
46
+ }, from: (table: CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>) => AbstractColumn<TColumn, boolean, boolean, CheckFiveTypes<InputTable, TTable, TTable1, TTable2, TTable3, TTable4>>, to: (table: IToTable) => AbstractColumn<TToColumn>, partial?: IToPartial): SelectTRBWithFiveJoins<TTable, TTable1, TTable2, TTable3, TTable4, IToTable, TPartial, TPartial1, TPartial2, TPartial3, TPartial4, IToPartial>;
47
+ protected joins(): Array<{
48
+ join: Join<any>;
49
+ partial?: {
50
+ [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>;
51
+ };
52
+ id?: number;
53
+ }>;
54
+ protected mapResponse(result: QueryResult<any>): SelectResponseFourJoins<TTable, TTable1, TTable2, TTable3, TTable4, TPartial, TPartial1, TPartial2, TPartial3, TPartial4>;
55
+ }
@@ -0,0 +1,78 @@
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 join_1 = require("../join");
7
+ const joinWith_1 = __importDefault(require("../joinWith"));
8
+ const selectResponseFourJoins_1 = __importDefault(require("../responses/selectResponseFourJoins"));
9
+ const abstractJoinBuilder_1 = __importDefault(require("./abstractJoinBuilder"));
10
+ const selectWithFiveJoins_1 = __importDefault(require("./selectWithFiveJoins"));
11
+ class SelectTRBWithFourJoins extends abstractJoinBuilder_1.default {
12
+ constructor(table, session, filter, join1, join2, join3, join4, props, orderBy, order, distinct, tablePartial, joinedPartial, joinedPartial1, joinedPartial2, joinedPartial3) {
13
+ super(table, filter, session, props, orderBy, order, distinct, tablePartial);
14
+ this._join1 = join1;
15
+ this._join2 = join2;
16
+ this._join3 = join3;
17
+ this._join4 = join4;
18
+ this._joinedPartial = joinedPartial;
19
+ this._joinedPartial1 = joinedPartial1;
20
+ this._joinedPartial2 = joinedPartial2;
21
+ this._joinedPartial3 = joinedPartial3;
22
+ }
23
+ innerJoin(fromTable, table, from, to, partial) {
24
+ const toTable = this._table.db.create(table);
25
+ const tableFrom = this._table.db.create(fromTable);
26
+ const fromColumn = from(tableFrom);
27
+ const toColumn = to(toTable);
28
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
29
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.INNER_JOIN);
30
+ return new selectWithFiveJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, this._join4, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, this._joinedPartial1, this._joinedPartial2, this._joinedPartial3, partial);
31
+ }
32
+ leftJoin(fromTable, table, from, to, partial) {
33
+ const toTable = this._table.db.create(table);
34
+ const tableFrom = this._table.db.create(fromTable);
35
+ const fromColumn = from(tableFrom);
36
+ const toColumn = to(toTable);
37
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
38
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.LEFT_JOIN);
39
+ return new selectWithFiveJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, this._join4, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, this._joinedPartial1, this._joinedPartial2, this._joinedPartial3, partial);
40
+ }
41
+ rightJoin(fromTable, table, from, to, partial) {
42
+ const toTable = this._table.db.create(table);
43
+ const tableFrom = this._table.db.create(fromTable);
44
+ const fromColumn = from(tableFrom);
45
+ const toColumn = to(toTable);
46
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
47
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.RIGHT_JOIN);
48
+ return new selectWithFiveJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, this._join4, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, this._joinedPartial1, this._joinedPartial2, this._joinedPartial3, partial);
49
+ }
50
+ fullJoin(fromTable, table, from, to, partial) {
51
+ const toTable = this._table.db.create(table);
52
+ const tableFrom = this._table.db.create(fromTable);
53
+ const fromColumn = from(tableFrom);
54
+ const toColumn = to(toTable);
55
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
56
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.FULL_JOIN);
57
+ return new selectWithFiveJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, this._join4, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, this._joinedPartial1, this._joinedPartial2, this._joinedPartial3, partial);
58
+ }
59
+ joins() {
60
+ return [{ join: this._join1, partial: this._joinedPartial, id: 1 },
61
+ { join: this._join2, partial: this._joinedPartial1, id: 2 },
62
+ { join: this._join3, partial: this._joinedPartial2, id: 3 },
63
+ { join: this._join4, partial: this._joinedPartial3, id: 4 }];
64
+ }
65
+ mapResponse(result) {
66
+ const parent = this._join1.mappedServiceToDb;
67
+ const parentTwo = this._join2.mappedServiceToDb;
68
+ const parentThree = this._join3.mappedServiceToDb;
69
+ const parentFour = this._join4.mappedServiceToDb;
70
+ const response = this.fullOrPartial(this._table.mapServiceToDb(), result, this._partial);
71
+ const objects = this.fullOrPartial(parent, result, this._joinedPartial, 1);
72
+ const objectsTwo = this.fullOrPartial(parentTwo, result, this._joinedPartial1, 2);
73
+ const objectsThree = this.fullOrPartial(parentThree, result, this._joinedPartial2, 3);
74
+ const objectsFour = this.fullOrPartial(parentFour, result, this._joinedPartial3, 4);
75
+ return new selectResponseFourJoins_1.default(response, objects, objectsTwo, objectsThree, objectsFour);
76
+ }
77
+ }
78
+ exports.default = SelectTRBWithFourJoins;
@@ -0,0 +1,49 @@
1
+ import { QueryResult } from 'pg';
2
+ import { AbstractColumn } from '../../../columns/column';
3
+ import ColumnType from '../../../columns/types/columnType';
4
+ import DB from '../../../db/db';
5
+ import { ISession } from '../../../db/session';
6
+ import AbstractTable from '../../../tables/abstractTable';
7
+ import { CheckTwoTypes, PartialFor } from '../../../tables/inferTypes';
8
+ import Order from '../../highLvlBuilders/order';
9
+ import Expr from '../../requestBuilders/where/where';
10
+ import Join from '../join';
11
+ import SelectResponseJoin from '../responses/selectResponseWithJoin';
12
+ import AbstractJoined from './abstractJoinBuilder';
13
+ import SelectTRBWithTwoJoins from './selectWithTwoJoins';
14
+ export default class SelectTRBWithJoin<TTable extends AbstractTable<TTable>, TTable1 extends AbstractTable<TTable1>, TPartial extends PartialFor<TTable> = {}, TPartial1 extends PartialFor<TTable1> = {}> extends AbstractJoined<TTable, SelectResponseJoin<TTable, TTable1, TPartial, TPartial1>, TPartial> {
15
+ private _join;
16
+ private _joinedPartial?;
17
+ constructor(table: TTable, session: ISession, filter: Expr, join: Join<TTable1>, props: {
18
+ limit?: number;
19
+ offset?: number;
20
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>, tablePartial?: TPartial, joinedPartial?: TPartial1);
21
+ innerJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
22
+ new (db: DB): InputTable;
23
+ }, table: {
24
+ new (db: DB): IToTable;
25
+ }, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
26
+ leftJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
27
+ new (db: DB): InputTable;
28
+ }, table: {
29
+ new (db: DB): IToTable;
30
+ }, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
31
+ rightJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
32
+ new (db: DB): InputTable;
33
+ }, table: {
34
+ new (db: DB): IToTable;
35
+ }, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
36
+ fullJoin<InputTable extends AbstractTable<InputTable>, TColumn extends ColumnType, TToColumn extends ColumnType, IToTable extends AbstractTable<IToTable>, IToPartial extends PartialFor<IToTable> = {}>(fromTable: {
37
+ new (db: DB): InputTable;
38
+ }, table: {
39
+ new (db: DB): IToTable;
40
+ }, from: (table: CheckTwoTypes<InputTable, TTable, TTable1>) => AbstractColumn<TColumn, boolean, boolean, CheckTwoTypes<InputTable, TTable, TTable1>>, to: (table: IToTable) => AbstractColumn<TToColumn, boolean, boolean, IToTable>, partial?: IToPartial): SelectTRBWithTwoJoins<TTable, TTable1, IToTable, TPartial, TPartial1, IToPartial>;
41
+ protected joins(): Array<{
42
+ join: Join<any>;
43
+ partial?: {
44
+ [name: string]: AbstractColumn<ColumnType<any>, boolean, boolean, any>;
45
+ };
46
+ id?: number;
47
+ }>;
48
+ protected mapResponse(result: QueryResult<any>): SelectResponseJoin<TTable, TTable1, TPartial, TPartial1>;
49
+ }
@@ -0,0 +1,64 @@
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 join_1 = require("../join");
7
+ const joinWith_1 = __importDefault(require("../joinWith"));
8
+ const selectResponseWithJoin_1 = __importDefault(require("../responses/selectResponseWithJoin"));
9
+ const abstractJoinBuilder_1 = __importDefault(require("./abstractJoinBuilder"));
10
+ const selectWithTwoJoins_1 = __importDefault(require("./selectWithTwoJoins"));
11
+ // eslint-disable-next-line max-len
12
+ class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
13
+ constructor(table, session, filter, join, props, orderBy, order, distinct, tablePartial, joinedPartial) {
14
+ super(table, filter, session, props, orderBy, order, distinct, tablePartial);
15
+ this._join = join;
16
+ this._joinedPartial = joinedPartial;
17
+ }
18
+ innerJoin(fromTable, table, from, to, partial) {
19
+ const toTable = this._table.db.create(table);
20
+ const tableFrom = this._table.db.create(fromTable);
21
+ const fromColumn = from(tableFrom);
22
+ const toColumn = to(toTable);
23
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
24
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.INNER_JOIN);
25
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, partial);
26
+ }
27
+ leftJoin(fromTable, table, from, to, partial) {
28
+ const toTable = this._table.db.create(table);
29
+ const tableFrom = this._table.db.create(fromTable);
30
+ const fromColumn = from(tableFrom);
31
+ const toColumn = to(toTable);
32
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
33
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.LEFT_JOIN);
34
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, partial);
35
+ }
36
+ rightJoin(fromTable, table, from, to, partial) {
37
+ const toTable = this._table.db.create(table);
38
+ const tableFrom = this._table.db.create(fromTable);
39
+ const fromColumn = from(tableFrom);
40
+ const toColumn = to(toTable);
41
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
42
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.RIGHT_JOIN);
43
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, partial);
44
+ }
45
+ fullJoin(fromTable, table, from, to, partial) {
46
+ const toTable = this._table.db.create(table);
47
+ const tableFrom = this._table.db.create(fromTable);
48
+ const fromColumn = from(tableFrom);
49
+ const toColumn = to(toTable);
50
+ const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
51
+ .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.FULL_JOIN);
52
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct, this._partial, this._joinedPartial, partial);
53
+ }
54
+ joins() {
55
+ return [{ join: this._join, partial: this._joinedPartial, id: 1 }];
56
+ }
57
+ mapResponse(result) {
58
+ const parent = this._join.mappedServiceToDb;
59
+ const response = this.fullOrPartial(this._table.mapServiceToDb(), result, this._partial);
60
+ const objects = this.fullOrPartial(parent, result, this._joinedPartial, 1);
61
+ return new selectResponseWithJoin_1.default(response, objects);
62
+ }
63
+ }
64
+ exports.default = SelectTRBWithJoin;