drizzle-orm 0.9.0 → 0.9.4

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 (325) hide show
  1. package/builders/aggregators/abstractAggregator.d.ts +9 -0
  2. package/builders/aggregators/abstractAggregator.js +28 -0
  3. package/builders/aggregators/deleteAggregator.d.ts +12 -0
  4. package/builders/aggregators/deleteAggregator.js +36 -0
  5. package/builders/aggregators/insertAggregator.d.ts +18 -0
  6. package/builders/aggregators/insertAggregator.js +94 -0
  7. package/builders/aggregators/selectAggregator.d.ts +26 -0
  8. package/builders/aggregators/selectAggregator.js +106 -0
  9. package/builders/aggregators/updateAggregator.d.ts +15 -0
  10. package/builders/aggregators/updateAggregator.js +41 -0
  11. package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +21 -0
  12. package/builders/highLvlBuilders/abstractRequestBuilder.js +21 -0
  13. package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +17 -0
  14. package/builders/highLvlBuilders/deleteRequestBuilder.js +43 -0
  15. package/builders/highLvlBuilders/insertRequestBuilder.d.ts +18 -0
  16. package/builders/highLvlBuilders/insertRequestBuilder.js +54 -0
  17. package/builders/highLvlBuilders/order.d.ts +5 -0
  18. package/builders/highLvlBuilders/order.js +8 -0
  19. package/builders/highLvlBuilders/selectRequestBuilder.d.ts +42 -0
  20. package/builders/highLvlBuilders/selectRequestBuilder.js +99 -0
  21. package/builders/highLvlBuilders/updateRequestBuilder.d.ts +20 -0
  22. package/builders/highLvlBuilders/updateRequestBuilder.js +54 -0
  23. package/{src/builders/index.ts → builders/index.d.ts} +2 -4
  24. package/builders/index.js +50 -0
  25. package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +27 -0
  26. package/builders/joinBuilders/builders/abstractJoinBuilder.js +42 -0
  27. package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +23 -0
  28. package/builders/joinBuilders/builders/selectWithFiveJoins.js +33 -0
  29. package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +36 -0
  30. package/builders/joinBuilders/builders/selectWithFourJoins.js +65 -0
  31. package/builders/joinBuilders/builders/selectWithJoin.d.ts +33 -0
  32. package/builders/joinBuilders/builders/selectWithJoin.js +56 -0
  33. package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +35 -0
  34. package/builders/joinBuilders/builders/selectWithThreeJoins.js +62 -0
  35. package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +34 -0
  36. package/builders/joinBuilders/builders/selectWithTwoJoins.js +59 -0
  37. package/builders/joinBuilders/join.d.ts +23 -0
  38. package/builders/joinBuilders/join.js +28 -0
  39. package/builders/joinBuilders/joinWith.d.ts +14 -0
  40. package/builders/joinBuilders/joinWith.js +11 -0
  41. package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +19 -0
  42. package/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
  43. package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +18 -0
  44. package/builders/joinBuilders/responses/selectResponseFourJoins.js +34 -0
  45. package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +17 -0
  46. package/builders/joinBuilders/responses/selectResponseThreeJoins.js +33 -0
  47. package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +16 -0
  48. package/builders/joinBuilders/responses/selectResponseTwoJoins.js +32 -0
  49. package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +15 -0
  50. package/builders/joinBuilders/responses/selectResponseWithJoin.js +31 -0
  51. package/builders/joinBuilders/static.d.ts +5 -0
  52. package/builders/joinBuilders/static.js +6 -0
  53. package/{src/builders/lowLvlBuilders/alter.ts → builders/lowLvlBuilders/alter.d.ts} +0 -0
  54. package/builders/lowLvlBuilders/alter.js +1 -0
  55. package/builders/lowLvlBuilders/create.d.ts +12 -0
  56. package/builders/lowLvlBuilders/create.js +97 -0
  57. package/builders/lowLvlBuilders/delets/delete.d.ts +5 -0
  58. package/builders/lowLvlBuilders/delets/delete.js +12 -0
  59. package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +8 -0
  60. package/builders/lowLvlBuilders/delets/deleteFilter.js +13 -0
  61. package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +9 -0
  62. package/builders/lowLvlBuilders/delets/deleteFrom.js +11 -0
  63. package/builders/lowLvlBuilders/inserts/insert.d.ts +5 -0
  64. package/builders/lowLvlBuilders/inserts/insert.js +12 -0
  65. package/builders/lowLvlBuilders/inserts/insertInto.d.ts +10 -0
  66. package/builders/lowLvlBuilders/inserts/insertInto.js +13 -0
  67. package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +9 -0
  68. package/builders/lowLvlBuilders/inserts/onConflictInsert.js +13 -0
  69. package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +13 -0
  70. package/builders/lowLvlBuilders/inserts/valuesInsert.js +16 -0
  71. package/builders/lowLvlBuilders/selects/select.d.ts +5 -0
  72. package/builders/lowLvlBuilders/selects/select.js +12 -0
  73. package/builders/lowLvlBuilders/selects/selectFrom.d.ts +19 -0
  74. package/builders/lowLvlBuilders/selects/selectFrom.js +31 -0
  75. package/builders/lowLvlBuilders/selects/selectJoined.d.ts +17 -0
  76. package/builders/lowLvlBuilders/selects/selectJoined.js +27 -0
  77. package/builders/lowLvlBuilders/selects/whereSelect.d.ts +14 -0
  78. package/builders/lowLvlBuilders/selects/whereSelect.js +25 -0
  79. package/builders/lowLvlBuilders/updates/update.d.ts +5 -0
  80. package/builders/lowLvlBuilders/updates/update.js +12 -0
  81. package/builders/lowLvlBuilders/updates/updateIn.d.ts +10 -0
  82. package/builders/lowLvlBuilders/updates/updateIn.js +12 -0
  83. package/builders/lowLvlBuilders/updates/whereSelect.d.ts +8 -0
  84. package/builders/lowLvlBuilders/updates/whereSelect.js +13 -0
  85. package/builders/lowLvlBuilders/updates/whereSet.d.ts +11 -0
  86. package/builders/lowLvlBuilders/updates/whereSet.js +15 -0
  87. package/builders/requestBuilders/updates/combine.d.ts +6 -0
  88. package/builders/requestBuilders/updates/combine.js +21 -0
  89. package/builders/requestBuilders/updates/setObjects.d.ts +9 -0
  90. package/builders/requestBuilders/updates/setObjects.js +12 -0
  91. package/builders/requestBuilders/updates/static.d.ts +6 -0
  92. package/builders/requestBuilders/updates/static.js +9 -0
  93. package/{src/builders/requestBuilders/updates/updates.ts → builders/requestBuilders/updates/updates.d.ts} +1 -1
  94. package/builders/requestBuilders/updates/updates.js +5 -0
  95. package/builders/requestBuilders/where/and.d.ts +6 -0
  96. package/builders/requestBuilders/where/and.js +22 -0
  97. package/builders/requestBuilders/where/const.d.ts +6 -0
  98. package/builders/requestBuilders/where/const.js +17 -0
  99. package/builders/requestBuilders/where/constArray.d.ts +6 -0
  100. package/builders/requestBuilders/where/constArray.js +27 -0
  101. package/builders/requestBuilders/where/eqWhere.d.ts +7 -0
  102. package/builders/requestBuilders/where/eqWhere.js +12 -0
  103. package/builders/requestBuilders/where/greater.d.ts +10 -0
  104. package/builders/requestBuilders/where/greater.js +12 -0
  105. package/builders/requestBuilders/where/greaterEq.d.ts +10 -0
  106. package/builders/requestBuilders/where/greaterEq.js +12 -0
  107. package/builders/requestBuilders/where/in.d.ts +7 -0
  108. package/builders/requestBuilders/where/in.js +12 -0
  109. package/builders/requestBuilders/where/isNull.d.ts +6 -0
  110. package/builders/requestBuilders/where/isNull.js +11 -0
  111. package/builders/requestBuilders/where/less.d.ts +10 -0
  112. package/builders/requestBuilders/where/less.js +12 -0
  113. package/builders/requestBuilders/where/lessEq.d.ts +10 -0
  114. package/builders/requestBuilders/where/lessEq.js +12 -0
  115. package/builders/requestBuilders/where/like.d.ts +7 -0
  116. package/builders/requestBuilders/where/like.js +12 -0
  117. package/builders/requestBuilders/where/notEqWhere.d.ts +7 -0
  118. package/builders/requestBuilders/where/notEqWhere.js +12 -0
  119. package/builders/requestBuilders/where/or.d.ts +6 -0
  120. package/builders/requestBuilders/where/or.js +22 -0
  121. package/builders/requestBuilders/where/rawWhere.d.ts +6 -0
  122. package/builders/requestBuilders/where/rawWhere.js +11 -0
  123. package/builders/requestBuilders/where/static.d.ts +16 -0
  124. package/builders/requestBuilders/where/static.js +43 -0
  125. package/builders/requestBuilders/where/var.d.ts +8 -0
  126. package/builders/requestBuilders/where/var.js +12 -0
  127. package/{src/builders/requestBuilders/where/where.ts → builders/requestBuilders/where/where.d.ts} +1 -1
  128. package/builders/requestBuilders/where/where.js +5 -0
  129. package/builders/transaction/transaction.d.ts +8 -0
  130. package/builders/transaction/transaction.js +20 -0
  131. package/columns/column.d.ts +61 -0
  132. package/columns/column.js +98 -0
  133. package/{src/columns/index.ts → columns/index.d.ts} +0 -0
  134. package/columns/index.js +23 -0
  135. package/columns/types/columnType.d.ts +7 -0
  136. package/columns/types/columnType.js +6 -0
  137. package/columns/types/pgBigDecimal.d.ts +10 -0
  138. package/columns/types/pgBigDecimal.js +28 -0
  139. package/columns/types/pgBigInt.d.ts +8 -0
  140. package/columns/types/pgBigInt.js +17 -0
  141. package/columns/types/pgBoolean.d.ts +8 -0
  142. package/columns/types/pgBoolean.js +15 -0
  143. package/columns/types/pgEnum.d.ts +9 -0
  144. package/columns/types/pgEnum.js +15 -0
  145. package/columns/types/pgInteger.d.ts +8 -0
  146. package/columns/types/pgInteger.js +15 -0
  147. package/columns/types/pgJsonb.d.ts +9 -0
  148. package/columns/types/pgJsonb.js +15 -0
  149. package/columns/types/pgText.d.ts +8 -0
  150. package/columns/types/pgText.js +15 -0
  151. package/columns/types/pgTime.d.ts +8 -0
  152. package/columns/types/pgTime.js +15 -0
  153. package/columns/types/pgTimestamp.d.ts +8 -0
  154. package/columns/types/pgTimestamp.js +15 -0
  155. package/columns/types/pgVarChar.d.ts +9 -0
  156. package/columns/types/pgVarChar.js +21 -0
  157. package/db/db.d.ts +19 -0
  158. package/db/db.js +26 -0
  159. package/db/dbConnector.d.ts +9 -0
  160. package/db/dbConnector.js +28 -0
  161. package/db/dbStringConnector.d.ts +6 -0
  162. package/db/dbStringConnector.js +25 -0
  163. package/{src/mappers/index.ts → db/group_by.d.ts} +0 -0
  164. package/db/group_by.js +68 -0
  165. package/{src/db/index.ts → db/index.d.ts} +0 -0
  166. package/db/index.js +9 -0
  167. package/db/session.d.ts +7 -0
  168. package/db/session.js +20 -0
  169. package/docs/cases/simple_delete.d.ts +1 -0
  170. package/docs/cases/simple_delete.js +30 -0
  171. package/docs/cases/simple_insert.d.ts +1 -0
  172. package/docs/cases/simple_insert.js +51 -0
  173. package/docs/cases/simple_join.d.ts +1 -0
  174. package/docs/cases/simple_join.js +95 -0
  175. package/docs/cases/simple_select.d.ts +1 -0
  176. package/docs/cases/simple_select.js +39 -0
  177. package/docs/cases/simple_update.d.ts +1 -0
  178. package/docs/cases/simple_update.js +33 -0
  179. package/docs/tables/citiesTable.d.ts +14 -0
  180. package/docs/tables/citiesTable.js +19 -0
  181. package/docs/tables/citiesToUsers.d.ts +7 -0
  182. package/docs/tables/citiesToUsers.js +18 -0
  183. package/docs/tables/userGroupsTable.d.ts +7 -0
  184. package/docs/tables/userGroupsTable.js +15 -0
  185. package/docs/tables/usersTable.d.ts +17 -0
  186. package/docs/tables/usersTable.js +29 -0
  187. package/docs/tables/usersToUserGroups.d.ts +7 -0
  188. package/docs/tables/usersToUserGroups.js +18 -0
  189. package/docs/types/rolesType.d.ts +1 -0
  190. package/docs/types/rolesType.js +6 -0
  191. package/errors/baseError.d.ts +22 -0
  192. package/errors/baseError.js +35 -0
  193. package/errors/builderError.d.ts +14 -0
  194. package/errors/builderError.js +24 -0
  195. package/errors/dbErrors.d.ts +12 -0
  196. package/errors/dbErrors.js +28 -0
  197. package/index.d.ts +13 -0
  198. package/index.js +32 -0
  199. package/indexes/tableIndex.d.ts +11 -0
  200. package/indexes/tableIndex.js +17 -0
  201. package/logger/abstractLogger.d.ts +4 -0
  202. package/logger/abstractLogger.js +5 -0
  203. package/logger/consoleLogger.d.ts +5 -0
  204. package/logger/consoleLogger.js +12 -0
  205. package/{src/migrator/index.ts → mappers/index.d.ts} +0 -0
  206. package/mappers/index.js +1 -0
  207. package/mappers/responseMapper.d.ts +7 -0
  208. package/mappers/responseMapper.js +23 -0
  209. package/migrator/index.d.ts +0 -0
  210. package/migrator/index.js +1 -0
  211. package/migrator/migrator.d.ts +16 -0
  212. package/migrator/migrator.js +101 -0
  213. package/package.json +2 -2
  214. package/serializer/serializer.d.ts +40 -0
  215. package/serializer/serializer.js +74 -0
  216. package/tables/abstractTable.d.ts +118 -0
  217. package/tables/abstractTable.js +116 -0
  218. package/{src/tables/index.ts → tables/index.d.ts} +0 -0
  219. package/tables/index.js +8 -0
  220. package/tables/inferTypes.d.ts +19 -0
  221. package/tables/inferTypes.js +2 -0
  222. package/tables/migrationsTable.d.ts +8 -0
  223. package/tables/migrationsTable.js +16 -0
  224. package/test.d.ts +1 -0
  225. package/test.js +81 -0
  226. package/types/type.d.ts +10 -0
  227. package/types/type.js +14 -0
  228. package/utils/ecranate.d.ts +2 -0
  229. package/utils/ecranate.js +8 -0
  230. package/.eslintrc +0 -26
  231. package/.tslintignore +0 -1
  232. package/LICENSE +0 -674
  233. package/README.md +0 -147
  234. package/src/builders/aggregators/abstractAggregator.ts +0 -37
  235. package/src/builders/aggregators/deleteAggregator.ts +0 -34
  236. package/src/builders/aggregators/insertAggregator.ts +0 -116
  237. package/src/builders/aggregators/selectAggregator.ts +0 -102
  238. package/src/builders/aggregators/updateAggregator.ts +0 -45
  239. package/src/builders/highLvlBuilders/abstractRequestBuilder.ts +0 -37
  240. package/src/builders/highLvlBuilders/deleteRequestBuilder.ts +0 -59
  241. package/src/builders/highLvlBuilders/insertRequestBuilder.ts +0 -87
  242. package/src/builders/highLvlBuilders/order.ts +0 -4
  243. package/src/builders/highLvlBuilders/selectRequestBuilder.ts +0 -102
  244. package/src/builders/highLvlBuilders/updateRequestBuilder.ts +0 -63
  245. package/src/builders/joinBuilders/builders/abstractJoinBuilder.ts +0 -22
  246. package/src/builders/joinBuilders/builders/selectWithFourJoins.ts +0 -71
  247. package/src/builders/joinBuilders/builders/selectWithJoin.ts +0 -67
  248. package/src/builders/joinBuilders/builders/selectWithThreeJoins.ts +0 -78
  249. package/src/builders/joinBuilders/builders/selectWithTwoJoins.ts +0 -72
  250. package/src/builders/joinBuilders/join.ts +0 -37
  251. package/src/builders/joinBuilders/joinWith.ts +0 -19
  252. package/src/builders/joinBuilders/responses/selectResponseFourJoins.ts +0 -33
  253. package/src/builders/joinBuilders/responses/selectResponseThreeJoins.ts +0 -29
  254. package/src/builders/joinBuilders/responses/selectResponseTwoJoins.ts +0 -22
  255. package/src/builders/joinBuilders/responses/selectResponseWithJoin.ts +0 -28
  256. package/src/builders/joinBuilders/static.ts +0 -9
  257. package/src/builders/lowLvlBuilders/create.ts +0 -114
  258. package/src/builders/lowLvlBuilders/delets/delete.ts +0 -10
  259. package/src/builders/lowLvlBuilders/delets/deleteFilter.ts +0 -17
  260. package/src/builders/lowLvlBuilders/delets/deleteFrom.ts +0 -15
  261. package/src/builders/lowLvlBuilders/inserts/insert.ts +0 -12
  262. package/src/builders/lowLvlBuilders/inserts/insertInto.ts +0 -18
  263. package/src/builders/lowLvlBuilders/inserts/onConflictInsert.ts +0 -19
  264. package/src/builders/lowLvlBuilders/inserts/valuesInsert.ts +0 -30
  265. package/src/builders/lowLvlBuilders/selects/select.ts +0 -12
  266. package/src/builders/lowLvlBuilders/selects/selectFrom.ts +0 -38
  267. package/src/builders/lowLvlBuilders/selects/selectJoined.ts +0 -40
  268. package/src/builders/lowLvlBuilders/selects/whereSelect.ts +0 -35
  269. package/src/builders/lowLvlBuilders/updates/update.ts +0 -10
  270. package/src/builders/lowLvlBuilders/updates/updateIn.ts +0 -22
  271. package/src/builders/lowLvlBuilders/updates/whereSelect.ts +0 -17
  272. package/src/builders/lowLvlBuilders/updates/whereSet.ts +0 -21
  273. package/src/builders/requestBuilders/updates/combine.ts +0 -25
  274. package/src/builders/requestBuilders/updates/setObjects.ts +0 -18
  275. package/src/builders/requestBuilders/updates/static.ts +0 -11
  276. package/src/builders/requestBuilders/where/and.ts +0 -26
  277. package/src/builders/requestBuilders/where/const.ts +0 -18
  278. package/src/builders/requestBuilders/where/constArray.ts +0 -27
  279. package/src/builders/requestBuilders/where/eqWhere.ts +0 -14
  280. package/src/builders/requestBuilders/where/greater.ts +0 -14
  281. package/src/builders/requestBuilders/where/greaterEq.ts +0 -14
  282. package/src/builders/requestBuilders/where/in.ts +0 -14
  283. package/src/builders/requestBuilders/where/less.ts +0 -14
  284. package/src/builders/requestBuilders/where/lessEq.ts +0 -14
  285. package/src/builders/requestBuilders/where/like.ts +0 -14
  286. package/src/builders/requestBuilders/where/or.ts +0 -26
  287. package/src/builders/requestBuilders/where/static.ts +0 -42
  288. package/src/builders/requestBuilders/where/var.ts +0 -15
  289. package/src/builders/transaction/transaction.ts +0 -21
  290. package/src/columns/column.ts +0 -86
  291. package/src/columns/types/columnType.ts +0 -7
  292. package/src/columns/types/pgBigDecimal.ts +0 -29
  293. package/src/columns/types/pgBigInt.ts +0 -20
  294. package/src/columns/types/pgBoolean.ts +0 -18
  295. package/src/columns/types/pgEnum.ts +0 -22
  296. package/src/columns/types/pgInteger.ts +0 -18
  297. package/src/columns/types/pgJsonb.ts +0 -19
  298. package/src/columns/types/pgText.ts +0 -18
  299. package/src/columns/types/pgTime.ts +0 -18
  300. package/src/columns/types/pgTimestamp.ts +0 -18
  301. package/src/columns/types/pgVarChar.ts +0 -24
  302. package/src/db/db.ts +0 -29
  303. package/src/db/dbConnector.ts +0 -30
  304. package/src/db/dbStringConnector.ts +0 -28
  305. package/src/db/session.ts +0 -21
  306. package/src/errors/baseError.ts +0 -47
  307. package/src/errors/builderError.ts +0 -30
  308. package/src/errors/dbErrors.ts +0 -24
  309. package/src/examples/tables/authOtpTable.ts +0 -17
  310. package/src/examples/tables/cityTable.ts +0 -15
  311. package/src/examples/tables/usersTable.ts +0 -18
  312. package/src/examples/testEnum.ts +0 -6
  313. package/src/index.ts +0 -40
  314. package/src/indexes/tableIndex.ts +0 -19
  315. package/src/logger/abstractLogger.ts +0 -4
  316. package/src/logger/consoleLogger.ts +0 -11
  317. package/src/mappers/responseMapper.ts +0 -24
  318. package/src/migrator/migrator.ts +0 -110
  319. package/src/serializer/Untitled.js +0 -72
  320. package/src/serializer/out.json +0 -140
  321. package/src/tables/abstractTable.ts +0 -183
  322. package/src/tables/inferTypes.ts +0 -34
  323. package/src/tables/migrationsTable.ts +0 -12
  324. package/src/utils/ecranate.ts +0 -4
  325. package/tsconfig.json +0 -29
@@ -1,102 +0,0 @@
1
- import { Select } from '..';
2
- import { Column } from '../../columns/column';
3
- import ColumnType from '../../columns/types/columnType';
4
- import Session from '../../db/session';
5
- import BuilderError, { BuilderType } from '../../errors/builderError';
6
- import { DatabaseSelectError } from '../../errors/dbErrors';
7
- import BaseLogger from '../../logger/abstractLogger';
8
- import QueryResponseMapper from '../../mappers/responseMapper';
9
- import { AbstractTable } from '../../tables';
10
- import { ExtractModel } from '../../tables/inferTypes';
11
- import SelectTRBWithJoin from '../joinBuilders/builders/selectWithJoin';
12
- import Join from '../joinBuilders/join';
13
- import Expr from '../requestBuilders/where/where';
14
- import TableRequestBuilder from './abstractRequestBuilder';
15
- import Order from './order';
16
-
17
- export default class SelectTRB<TTable>
18
- extends TableRequestBuilder<TTable> {
19
- protected _filter: Expr;
20
- private props: {limit?:number, offset?:number};
21
- private __orderBy?: Column<ColumnType, boolean, boolean>;
22
- private __groupBy?: Column<ColumnType, boolean, boolean>;
23
- private __order?: Order;
24
- private __table: TTable;
25
-
26
- public constructor(
27
- tableName: string,
28
- session: Session,
29
- mappedServiceToDb: { [name in keyof ExtractModel<TTable>]: Column<ColumnType>; },
30
- logger: BaseLogger,
31
- props: {limit?:number, offset?:number},
32
- table: AbstractTable<TTable>,
33
- ) {
34
- super(tableName, session, mappedServiceToDb, logger);
35
- this.props = props;
36
- this.__table = table as unknown as TTable;
37
- }
38
-
39
- public where = (expr: Expr): SelectTRB<TTable> => {
40
- this._filter = expr;
41
- return this;
42
- };
43
-
44
- public orderBy(callback: (table: TTable) => Column<ColumnType, boolean, boolean>, order: Order)
45
- : SelectTRB<TTable> {
46
- this.__orderBy = callback(this.__table);
47
- this.__order = order;
48
- console.log(this.__orderBy, this.__order);
49
- return this;
50
- }
51
-
52
- // public groupBy(callback: (table: TTable) => Column<ColumnType, boolean, boolean>)
53
- // : SelectTRB<TTable> {
54
- // this.__groupBy = callback(this.__table);
55
- // return this;
56
- // }
57
-
58
- public join = <COLUMN extends ColumnType, T1>(join: Join<COLUMN, T1>):
59
- SelectTRBWithJoin<COLUMN, T1, TTable> => new SelectTRBWithJoin(this._tableName, this._session,
60
- this._filter, join, this._mappedServiceToDb);
61
-
62
- public execute = async () => {
63
- const res = await this._execute();
64
- return res;
65
- };
66
-
67
- protected _execute = async (): Promise<ExtractModel<TTable>[]> => {
68
- // Select.from().filteredBy().limit().offset().orderBy().groupBy().build()
69
- const queryBuilder = Select.from(this._tableName, this._columns);
70
- if (this._filter) {
71
- queryBuilder.filteredBy(this._filter);
72
- }
73
- if (this.props.limit) {
74
- queryBuilder.limit(this.props.limit);
75
- }
76
- if (this.props.offset) {
77
- queryBuilder.offset(this.props.offset);
78
- }
79
- if (this.__orderBy) {
80
- queryBuilder.orderBy(this.__orderBy, this.__order!);
81
- }
82
-
83
- let query = '';
84
- try {
85
- query = queryBuilder.build();
86
- } catch (e) {
87
- throw new BuilderError(BuilderType.SELECT, this._tableName, this._columns, e, this._filter);
88
- }
89
-
90
- if (this._logger) {
91
- this._logger.info(`Selecting from ${this._tableName} using query:\n ${query}`);
92
- }
93
-
94
- const result = await this._session.execute(query);
95
- if (result.isLeft()) {
96
- const { reason } = result.value;
97
- throw new DatabaseSelectError(this._tableName, reason, query);
98
- } else {
99
- return QueryResponseMapper.map(this._mappedServiceToDb, result.value);
100
- }
101
- };
102
- }
@@ -1,63 +0,0 @@
1
- import { Column } from '../../columns/column';
2
- import ColumnType from '../../columns/types/columnType';
3
- import Session from '../../db/session';
4
- import BuilderError, { BuilderType } from '../../errors/builderError';
5
- import { DatabaseUpdateError } from '../../errors/dbErrors';
6
- import BaseLogger from '../../logger/abstractLogger';
7
- import QueryResponseMapper from '../../mappers/responseMapper';
8
- import { ExtractModel } from '../../tables/inferTypes';
9
- import Update from '../lowLvlBuilders/updates/update';
10
- import UpdateExpr from '../requestBuilders/updates/updates';
11
- import Expr from '../requestBuilders/where/where';
12
- import TableRequestBuilder from './abstractRequestBuilder';
13
-
14
- export default class UpdateTRB<TTable> extends TableRequestBuilder<TTable> {
15
- private _filter: Expr;
16
- private _update: UpdateExpr;
17
-
18
- public constructor(
19
- tableName: string,
20
- session: Session,
21
- mappedServiceToDb: { [name in keyof ExtractModel<TTable>]: Column<ColumnType>; },
22
- logger: BaseLogger,
23
- ) {
24
- super(tableName, session, mappedServiceToDb, logger);
25
- }
26
-
27
- public where = (expr: Expr): UpdateTRB<TTable> => {
28
- this._filter = expr;
29
- return this;
30
- };
31
-
32
- public set = (expr: UpdateExpr): UpdateTRB<TTable> => {
33
- this._update = expr;
34
- return this;
35
- };
36
-
37
- public execute = async () => {
38
- await this._execute();
39
- };
40
-
41
- protected _execute = async (): Promise<ExtractModel<TTable>[]> => {
42
- let query = '';
43
- try {
44
- query = Update.in(this._tableName)
45
- .columns(this._columns)
46
- .set(this._update).filteredBy(this._filter)
47
- .build();
48
- } catch (e) {
49
- throw new BuilderError(BuilderType.UPDATE, this._tableName, this._columns, e, this._filter);
50
- }
51
-
52
- if (this._logger) {
53
- this._logger.info(`Updating ${this._tableName} using query:\n ${query}`);
54
- }
55
- const result = await this._session.execute(query);
56
- if (result.isLeft()) {
57
- const { reason } = result.value;
58
- throw new DatabaseUpdateError(this._tableName, reason, query);
59
- } else {
60
- return QueryResponseMapper.map(this._mappedServiceToDb, result.value);
61
- }
62
- };
63
- }
@@ -1,22 +0,0 @@
1
- import { Column } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
3
- import Session from '../../../db/session';
4
- import { ExtractModel } from '../../../tables/inferTypes';
5
- import Expr from '../../requestBuilders/where/where';
6
-
7
- export default abstract class AbstractJoined<K> {
8
- protected _tableName: string;
9
- protected _session: Session;
10
- protected _filter: Expr;
11
- protected _columns: { [name in keyof ExtractModel<K>]: Column<ColumnType>; };
12
-
13
- public constructor(filter: Expr,
14
- tableName: string,
15
- session: Session,
16
- columns: { [name in keyof ExtractModel<K>]: Column<ColumnType>; }) {
17
- this._tableName = tableName;
18
- this._session = session;
19
- this._filter = filter;
20
- this._columns = columns;
21
- }
22
- }
@@ -1,71 +0,0 @@
1
- import { Column } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
3
- import Session from '../../../db/session';
4
- import BuilderError, { BuilderType } from '../../../errors/builderError';
5
- import { DatabaseSelectError } from '../../../errors/dbErrors';
6
- import QueryResponseMapper from '../../../mappers/responseMapper';
7
- import { ExtractModel } from '../../../tables/inferTypes';
8
- import Select from '../../lowLvlBuilders/selects/select';
9
- import Expr from '../../requestBuilders/where/where';
10
- import Join from '../join';
11
- import SelectResponseFourJoins from '../responses/selectResponseFourJoins';
12
- import AbstractJoined from './abstractJoinBuilder';
13
-
14
- export default class SelectTRBWithFourJoins<COLUMN extends
15
- ColumnType, T1, T2, T3, T4, MODEL> extends AbstractJoined<MODEL> {
16
- private _join1: Join<COLUMN, T1>;
17
- private _join2: Join<COLUMN, T2>;
18
- private _join3: Join<COLUMN, T3>;
19
- private _join4: Join<COLUMN, T4>;
20
-
21
- public constructor(tableName: string, session: Session,
22
- filter: Expr, join1: Join<COLUMN, T1>, join2: Join<COLUMN, T2>, join3: Join<COLUMN, T3>,
23
- join4: Join<COLUMN, T4>,
24
- columns: { [name in keyof ExtractModel<MODEL>]: Column<ColumnType>; }) {
25
- super(filter, tableName, session, columns);
26
- this._join1 = join1;
27
- this._join2 = join2;
28
- this._join3 = join3;
29
- this._join4 = join4;
30
- }
31
-
32
- public execute = async (): Promise<SelectResponseFourJoins<MODEL, T1, T2, T3, T4>> => {
33
- const queryBuilder = Select.from(this._tableName, Object.values(this._columns));
34
- if (this._filter) {
35
- queryBuilder.filteredBy(this._filter);
36
- }
37
-
38
- queryBuilder.joined([this._join1, this._join2, this._join3, this._join4]);
39
-
40
- let query = '';
41
- try {
42
- query = queryBuilder.build();
43
- } catch (e) {
44
- throw new BuilderError(BuilderType.TWO_JOINED_SELECT,
45
- this._tableName, Object.values(this._columns), e, this._filter);
46
- }
47
-
48
- const parent:
49
- { [name in keyof ExtractModel<T1>]: Column<ColumnType>; } = this._join1.mappedServiceToDb;
50
- const parentTwo:
51
- { [name in keyof ExtractModel<T2>]: Column<ColumnType>; } = this._join2.mappedServiceToDb;
52
- const parentThree:
53
- { [name in keyof ExtractModel<T3>]: Column<ColumnType>; } = this._join3.mappedServiceToDb;
54
- const parentFour:
55
- { [name in keyof ExtractModel<T4>]: Column<ColumnType>; } = this._join4.mappedServiceToDb;
56
-
57
- const result = await this._session.execute(query);
58
- if (result.isLeft()) {
59
- const { reason } = result.value;
60
- throw new DatabaseSelectError(this._tableName, reason, query);
61
- } else {
62
- const response = QueryResponseMapper.map(this._columns, result.value);
63
- const objects = QueryResponseMapper.map(parent, result.value);
64
- const objectsTwo = QueryResponseMapper.map(parentTwo, result.value);
65
- const objectsThree = QueryResponseMapper.map(parentThree, result.value);
66
- const objectsFour = QueryResponseMapper.map(parentFour, result.value);
67
-
68
- return new SelectResponseFourJoins(response, objects, objectsTwo, objectsThree, objectsFour);
69
- }
70
- };
71
- }
@@ -1,67 +0,0 @@
1
- import { Column } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
3
- import Session from '../../../db/session';
4
- import BuilderError, { BuilderType } from '../../../errors/builderError';
5
- import { DatabaseSelectError } from '../../../errors/dbErrors';
6
- import QueryResponseMapper from '../../../mappers/responseMapper';
7
- import { ExtractModel } from '../../../tables/inferTypes';
8
- import Select from '../../lowLvlBuilders/selects/select';
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
-
15
- export default class SelectTRBWithJoin<COLUMN extends ColumnType, T1, MODEL>
16
- extends AbstractJoined<MODEL> {
17
- private _join: Join<COLUMN, T1>;
18
-
19
- public constructor(tableName: string, session: Session,
20
- filter: Expr,
21
- join: Join<COLUMN, T1>,
22
- columns: { [name in keyof ExtractModel<MODEL>]: Column<ColumnType>; }) {
23
- super(filter, tableName, session, columns);
24
- this._join = join;
25
- }
26
-
27
- public join = <T2>(join: Join<COLUMN, T2>):
28
- SelectTRBWithTwoJoins<COLUMN, T1, T2, MODEL> => new SelectTRBWithTwoJoins(
29
- this._tableName,
30
- this._session,
31
- this._filter,
32
- this._join,
33
- join,
34
- this._columns,
35
- );
36
-
37
- public execute = async (): Promise<SelectResponseJoin<MODEL, T1>> => {
38
- const queryBuilder = Select.from(this._tableName, Object.values(this._columns));
39
- if (this._filter) {
40
- queryBuilder.filteredBy(this._filter);
41
- }
42
-
43
- queryBuilder.joined([this._join]);
44
-
45
- let query = '';
46
- try {
47
- query = queryBuilder.build();
48
- } catch (e) {
49
- throw new BuilderError(BuilderType.JOINED_SELECT,
50
- this._tableName, Object.values(this._columns), e, this._filter);
51
- }
52
-
53
- const parent:
54
- { [name in keyof ExtractModel<T1>]: Column<ColumnType>; } = this._join.mappedServiceToDb;
55
-
56
- const result = await this._session.execute(query);
57
- if (result.isLeft()) {
58
- const { reason } = result.value;
59
- throw new DatabaseSelectError(this._tableName, reason, query);
60
- } else {
61
- const response = QueryResponseMapper.map(this._columns, result.value);
62
- const objects = QueryResponseMapper.map(parent, result.value);
63
-
64
- return new SelectResponseJoin(response, objects);
65
- }
66
- };
67
- }
@@ -1,78 +0,0 @@
1
- import { Column } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
3
- import Session from '../../../db/session';
4
- import BuilderError, { BuilderType } from '../../../errors/builderError';
5
- import { DatabaseSelectError } from '../../../errors/dbErrors';
6
- import QueryResponseMapper from '../../../mappers/responseMapper';
7
- import { ExtractModel } from '../../../tables/inferTypes';
8
- import Select from '../../lowLvlBuilders/selects/select';
9
- import Expr from '../../requestBuilders/where/where';
10
- import Join from '../join';
11
- import SelectResponseThreeJoins from '../responses/selectResponseThreeJoins';
12
- import AbstractJoined from './abstractJoinBuilder';
13
- import SelectTRBWithFourJoins from './selectWithFourJoins';
14
-
15
- export default class SelectTRBWithThreeJoins<COLUMN extends
16
- ColumnType, T1, T2, T3, MODEL> extends AbstractJoined<MODEL> {
17
- private _join1: Join<COLUMN, T1>;
18
- private _join2: Join<COLUMN, T2>;
19
- private _join3: Join<COLUMN, T3>;
20
-
21
- public constructor(tableName: string, session: Session,
22
- filter: Expr, join1: Join<COLUMN, T1>, join2: Join<COLUMN, T2>, join3: Join<COLUMN, T3>,
23
- columns: { [name in keyof ExtractModel<MODEL>]: Column<ColumnType>; }) {
24
- super(filter, tableName, session, columns);
25
- this._join1 = join1;
26
- this._join2 = join2;
27
- this._join3 = join3;
28
- }
29
-
30
- public join = <T4>(join: Join<COLUMN, T4>):
31
- SelectTRBWithFourJoins<COLUMN, T1, T2, T3, T4, MODEL> => new SelectTRBWithFourJoins(
32
- this._tableName,
33
- this._session,
34
- this._filter,
35
- this._join1,
36
- this._join2,
37
- this._join3,
38
- join,
39
- this._columns,
40
- );
41
-
42
- public execute = async (): Promise<SelectResponseThreeJoins<MODEL, T1, T2, T3>> => {
43
- const queryBuilder = Select.from(this._tableName, Object.values(this._columns));
44
- if (this._filter) {
45
- queryBuilder.filteredBy(this._filter);
46
- }
47
-
48
- queryBuilder.joined([this._join1, this._join2, this._join3]);
49
-
50
- let query = '';
51
- try {
52
- query = queryBuilder.build();
53
- } catch (e) {
54
- throw new BuilderError(BuilderType.TWO_JOINED_SELECT,
55
- this._tableName, Object.values(this._columns), e, this._filter);
56
- }
57
-
58
- const parent:
59
- { [name in keyof ExtractModel<T1>]: Column<ColumnType>; } = this._join1.mappedServiceToDb;
60
- const parentTwo:
61
- { [name in keyof ExtractModel<T2>]: Column<ColumnType>; } = this._join2.mappedServiceToDb;
62
- const parentThree:
63
- { [name in keyof ExtractModel<T3>]: Column<ColumnType>; } = this._join3.mappedServiceToDb;
64
-
65
- const result = await this._session.execute(query);
66
- if (result.isLeft()) {
67
- const { reason } = result.value;
68
- throw new DatabaseSelectError(this._tableName, reason, query);
69
- } else {
70
- const response = QueryResponseMapper.map(this._columns, result.value);
71
- const objects = QueryResponseMapper.map(parent, result.value);
72
- const objectsTwo = QueryResponseMapper.map(parentTwo, result.value);
73
- const objectsThree = QueryResponseMapper.map(parentThree, result.value);
74
-
75
- return new SelectResponseThreeJoins(response, objects, objectsTwo, objectsThree);
76
- }
77
- };
78
- }
@@ -1,72 +0,0 @@
1
- import { Column } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
3
- import Session from '../../../db/session';
4
- import BuilderError, { BuilderType } from '../../../errors/builderError';
5
- import { DatabaseSelectError } from '../../../errors/dbErrors';
6
- import QueryResponseMapper from '../../../mappers/responseMapper';
7
- import { ExtractModel } from '../../../tables/inferTypes';
8
- import Select from '../../lowLvlBuilders/selects/select';
9
- import Expr from '../../requestBuilders/where/where';
10
- import Join from '../join';
11
- import SelectResponseTwoJoins from '../responses/selectResponseTwoJoins';
12
- import AbstractJoined from './abstractJoinBuilder';
13
- import SelectTRBWithThreeJoins from './selectWithThreeJoins';
14
-
15
- export default class SelectTRBWithTwoJoins<COLUMN extends
16
- ColumnType, T1, T2, MODEL> extends AbstractJoined<MODEL> {
17
- private _join1: Join<COLUMN, T1>;
18
- private _join2: Join<COLUMN, T2>;
19
-
20
- public constructor(tableName: string, session: Session,
21
- filter: Expr, join1: Join<COLUMN, T1>, join2: Join<COLUMN, T2>,
22
- columns: { [name in keyof ExtractModel<MODEL>]: Column<ColumnType>; }) {
23
- super(filter, tableName, session, columns);
24
- this._join1 = join1;
25
- this._join2 = join2;
26
- }
27
-
28
- public join = <T3>(join: Join<COLUMN, T3>):
29
- SelectTRBWithThreeJoins<COLUMN, T1, T2, T3, MODEL> => new SelectTRBWithThreeJoins(
30
- this._tableName,
31
- this._session,
32
- this._filter,
33
- this._join1,
34
- this._join2,
35
- join,
36
- this._columns,
37
- );
38
-
39
- public execute = async (): Promise<SelectResponseTwoJoins<MODEL, T1, T2>> => {
40
- const queryBuilder = Select.from(this._tableName, Object.values(this._columns));
41
- if (this._filter) {
42
- queryBuilder.filteredBy(this._filter);
43
- }
44
-
45
- queryBuilder.joined([this._join1, this._join2]);
46
-
47
- let query = '';
48
- try {
49
- query = queryBuilder.build();
50
- } catch (e) {
51
- throw new BuilderError(BuilderType.TWO_JOINED_SELECT,
52
- this._tableName, Object.values(this._columns), e, this._filter);
53
- }
54
-
55
- const parent:
56
- { [name in keyof ExtractModel<T1>]: Column<ColumnType>; } = this._join1.mappedServiceToDb;
57
- const parentTwo:
58
- { [name in keyof ExtractModel<T2>]: Column<ColumnType>; } = this._join2.mappedServiceToDb;
59
-
60
- const result = await this._session.execute(query);
61
- if (result.isLeft()) {
62
- const { reason } = result.value;
63
- throw new DatabaseSelectError(this._tableName, reason, query);
64
- } else {
65
- const response = QueryResponseMapper.map(this._columns, result.value);
66
- const objects = QueryResponseMapper.map(parent, result.value);
67
- const objectsTwo = QueryResponseMapper.map(parentTwo, result.value);
68
-
69
- return new SelectResponseTwoJoins(response, objects, objectsTwo);
70
- }
71
- };
72
- }
@@ -1,37 +0,0 @@
1
- import { Column } from '../../columns/column';
2
- import ColumnType from '../../columns/types/columnType';
3
- import { ExtractModel } from '../../tables/inferTypes';
4
-
5
- export default class Join<T extends ColumnType, K> {
6
- public fromColumn: Column<T, boolean, boolean>;
7
- public toColumn: Column<T, boolean, boolean>;
8
- public joinTableName: string;
9
- public mappedServiceToDb: { [name in keyof ExtractModel<K>]: Column<ColumnType>; };
10
- public type: JoinStrategy;
11
-
12
- public constructor(joinTableName: string, fromColumn: Column<T, boolean, boolean>,
13
- toColumn: Column<T, boolean, boolean>,
14
- mappedServiceToDb: { [name in keyof ExtractModel<K>]: Column<ColumnType>; }) {
15
- this.joinTableName = joinTableName;
16
- this.toColumn = toColumn;
17
- this.fromColumn = fromColumn;
18
- this.mappedServiceToDb = mappedServiceToDb;
19
- }
20
-
21
- public joinStrategy = (type: JoinStrategy): Join<T, K> => {
22
- this.type = type;
23
- return this;
24
- };
25
-
26
- public columns = (fromColumn:Column<T>, toColumn:Column<T>): Join<T, K> => {
27
- this.toColumn = toColumn;
28
- this.fromColumn = fromColumn;
29
- return this;
30
- };
31
- }
32
-
33
- export enum JoinStrategy {
34
- INNER_JOIN = 'INNER JOIN',
35
- LEFT_JOIN = 'LEFT JOIN',
36
- RIGHT_JOIN = 'RIGHT JOIN',
37
- }
@@ -1,19 +0,0 @@
1
- import { Column } from '../../columns/column';
2
- import ColumnType from '../../columns/types/columnType';
3
- import { ExtractModel } from '../../tables/inferTypes';
4
- import Join from './join';
5
-
6
- export default class JoinWith<T extends ColumnType, K> {
7
- public joinTableName: string;
8
- public mappedServiceToDb: { [name in keyof ExtractModel<K>]: Column<ColumnType>; };
9
-
10
- public constructor(joinTableName: string,
11
- mappedServiceToDb: { [name in keyof ExtractModel<K>]: Column<ColumnType>; }) {
12
- this.joinTableName = joinTableName;
13
- this.mappedServiceToDb = mappedServiceToDb;
14
- }
15
-
16
- public columns = (fromColumn:Column<T, boolean, boolean>,
17
- toColumn:Column<T, boolean, boolean>): Join<T, K> => new Join(this.joinTableName,
18
- fromColumn, toColumn, this.mappedServiceToDb);
19
- }
@@ -1,33 +0,0 @@
1
- import { ExtractModel } from '../../../tables/inferTypes';
2
-
3
- export default class SelectResponseFourJoins<T1, T2, T3, T4, T5> {
4
- private _t1: ExtractModel<T1>[];
5
- private _t2: ExtractModel<T2>[];
6
- private _t3: ExtractModel<T3>[];
7
- private _t4: ExtractModel<T4>[];
8
- private _t5: ExtractModel<T5>[];
9
-
10
- public constructor(t1: ExtractModel<T1>[],
11
- t2: ExtractModel<T2>[],
12
- t3: ExtractModel<T3>[],
13
- t4: ExtractModel<T4>[],
14
- t5: ExtractModel<T5>[]) {
15
- this._t1 = t1;
16
- this._t2 = t2;
17
- this._t3 = t3;
18
- this._t4 = t4;
19
- this._t5 = t5;
20
- }
21
-
22
- public mapByRow = <M>(imac: (t1: ExtractModel<T1>,
23
- t2:ExtractModel<T2>,
24
- t3: ExtractModel<T3>,
25
- t4: ExtractModel<T4>,
26
- t5: ExtractModel<T5>) => M): Array<M> => {
27
- const objects = new Array<M>();
28
- for (let i = 0; i < this._t1.length; i += 1) {
29
- objects.push(imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i]));
30
- }
31
- return objects;
32
- };
33
- }
@@ -1,29 +0,0 @@
1
- import { ExtractModel } from '../../../tables/inferTypes';
2
-
3
- export default class SelectResponseThreeJoins<T1, T2, T3, T4> {
4
- private _t1: ExtractModel<T1>[];
5
- private _t2: ExtractModel<T2>[];
6
- private _t3: ExtractModel<T3>[];
7
- private _t4: ExtractModel<T4>[];
8
-
9
- public constructor(t1: ExtractModel<T1>[],
10
- t2: ExtractModel<T2>[],
11
- t3: ExtractModel<T3>[],
12
- t4: ExtractModel<T4>[]) {
13
- this._t1 = t1;
14
- this._t2 = t2;
15
- this._t3 = t3;
16
- this._t4 = t4;
17
- }
18
-
19
- public mapByRow = <M>(imac: (t1: ExtractModel<T1>,
20
- t2: ExtractModel<T2>,
21
- t3: ExtractModel<T3>,
22
- t4: ExtractModel<T4>) => M): Array<M> => {
23
- const objects = new Array<M>();
24
- for (let i = 0; i < this._t1.length; i += 1) {
25
- objects.push(imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i]));
26
- }
27
- return objects;
28
- };
29
- }
@@ -1,22 +0,0 @@
1
- import { ExtractModel } from '../../../tables/inferTypes';
2
-
3
- export default class SelectResponseTwoJoins<T1, T2, T3> {
4
- private _t1: ExtractModel<T1>[];
5
- private _t2: ExtractModel<T2>[];
6
- private _t3: ExtractModel<T3>[];
7
-
8
- public constructor(t1: ExtractModel<T1>[], t2: ExtractModel<T2>[], t3: ExtractModel<T3>[]) {
9
- this._t1 = t1;
10
- this._t2 = t2;
11
- this._t3 = t3;
12
- }
13
-
14
- public mapByRow = <M>(imac: (t1: ExtractModel<T1>, t2:
15
- ExtractModel<T2>, t3: ExtractModel<T3>) => M): Array<M> => {
16
- const objects = new Array<M>();
17
- for (let i = 0; i < this._t1.length; i += 1) {
18
- objects.push(imac(this._t1[i], this._t2[i], this._t3[i]));
19
- }
20
- return objects;
21
- };
22
- }
@@ -1,28 +0,0 @@
1
- import { ExtractModel } from '../../../tables/inferTypes';
2
-
3
- export default class SelectResponseJoin<MODEL, T2> {
4
- private _t1: ExtractModel<MODEL>[];
5
- private _t2: ExtractModel<T2>[];
6
-
7
- public constructor(t1: ExtractModel<MODEL>[], t2: ExtractModel<T2>[]) {
8
- this._t1 = t1;
9
- this._t2 = t2;
10
- }
11
-
12
- public mapByRow = <M>(imac: (t1: ExtractModel<MODEL>, t2: ExtractModel<T2>) => M): Array<M> => {
13
- const objects = new Array<M>();
14
- for (let i = 0; i < this._t1.length; i += 1) {
15
- objects.push(imac(this._t1[i], this._t2[i]));
16
- }
17
- return objects;
18
- };
19
-
20
- public mapByResult = <M>(imac: (t1: ExtractModel<MODEL>, t2: ExtractModel<T2>) => M)
21
- : Array<M> => {
22
- const objects = new Array<M>();
23
- for (let i = 0; i < this._t1.length; i += 1) {
24
- objects.push(imac(this._t1[i], this._t2[i]));
25
- }
26
- return objects;
27
- };
28
- }
@@ -1,9 +0,0 @@
1
- import ColumnType from '../../columns/types/columnType';
2
- import AbstractTable from '../../tables/abstractTable';
3
- import JoinWith from './joinWith';
4
-
5
- const to = <COLUMN extends ColumnType, MODEL>(table: AbstractTable<MODEL>):
6
- JoinWith<COLUMN, MODEL> => new JoinWith(table.tableName(), table.mapServiceToDb());
7
-
8
- // eslint-disable-next-line import/prefer-default-export
9
- export default to;