drizzle-orm 0.9.1 → 0.9.2

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 (133) hide show
  1. package/builders/aggregators/abstractAggregator.d.ts +3 -4
  2. package/builders/aggregators/abstractAggregator.js +5 -8
  3. package/builders/aggregators/deleteAggregator.d.ts +2 -1
  4. package/builders/aggregators/deleteAggregator.js +10 -4
  5. package/builders/aggregators/insertAggregator.d.ts +4 -6
  6. package/builders/aggregators/insertAggregator.js +37 -44
  7. package/builders/aggregators/selectAggregator.d.ts +8 -5
  8. package/builders/aggregators/selectAggregator.js +50 -31
  9. package/builders/aggregators/updateAggregator.d.ts +2 -1
  10. package/builders/aggregators/updateAggregator.js +6 -4
  11. package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +4 -3
  12. package/builders/highLvlBuilders/abstractRequestBuilder.js +2 -2
  13. package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +5 -4
  14. package/builders/highLvlBuilders/deleteRequestBuilder.js +8 -9
  15. package/builders/highLvlBuilders/insertRequestBuilder.d.ts +2 -4
  16. package/builders/highLvlBuilders/insertRequestBuilder.js +17 -24
  17. package/builders/highLvlBuilders/selectRequestBuilder.d.ts +5 -4
  18. package/builders/highLvlBuilders/selectRequestBuilder.js +29 -32
  19. package/builders/highLvlBuilders/updateRequestBuilder.d.ts +5 -4
  20. package/builders/highLvlBuilders/updateRequestBuilder.js +9 -9
  21. package/builders/index.d.ts +1 -1
  22. package/builders/index.js +2 -1
  23. package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +18 -9
  24. package/builders/joinBuilders/builders/abstractJoinBuilder.js +34 -4
  25. package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +23 -0
  26. package/builders/joinBuilders/builders/selectWithFiveJoins.js +33 -0
  27. package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +23 -6
  28. package/builders/joinBuilders/builders/selectWithFourJoins.js +52 -36
  29. package/builders/joinBuilders/builders/selectWithJoin.d.ts +9 -6
  30. package/builders/joinBuilders/builders/selectWithJoin.js +15 -35
  31. package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +9 -6
  32. package/builders/joinBuilders/builders/selectWithThreeJoins.js +19 -39
  33. package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +9 -6
  34. package/builders/joinBuilders/builders/selectWithTwoJoins.js +17 -38
  35. package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +19 -0
  36. package/builders/joinBuilders/responses/selectResponseFiveJoins.js +35 -0
  37. package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +8 -0
  38. package/builders/joinBuilders/responses/selectResponseFourJoins.js +15 -4
  39. package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +8 -0
  40. package/builders/joinBuilders/responses/selectResponseThreeJoins.js +15 -0
  41. package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +8 -0
  42. package/builders/joinBuilders/responses/selectResponseTwoJoins.js +15 -0
  43. package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +8 -0
  44. package/builders/joinBuilders/responses/selectResponseWithJoin.js +15 -0
  45. package/builders/lowLvlBuilders/create.js +1 -1
  46. package/builders/lowLvlBuilders/delets/delete.d.ts +2 -1
  47. package/builders/lowLvlBuilders/delets/delete.js +3 -3
  48. package/builders/lowLvlBuilders/inserts/insert.d.ts +2 -3
  49. package/builders/lowLvlBuilders/inserts/insert.js +3 -3
  50. package/builders/lowLvlBuilders/inserts/insertInto.d.ts +2 -4
  51. package/builders/lowLvlBuilders/inserts/insertInto.js +2 -1
  52. package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +3 -5
  53. package/builders/lowLvlBuilders/inserts/valuesInsert.js +3 -3
  54. package/builders/lowLvlBuilders/selects/select.d.ts +2 -3
  55. package/builders/lowLvlBuilders/selects/select.js +3 -3
  56. package/builders/lowLvlBuilders/selects/selectFrom.d.ts +5 -4
  57. package/builders/lowLvlBuilders/selects/selectFrom.js +6 -0
  58. package/builders/lowLvlBuilders/selects/selectJoined.d.ts +5 -5
  59. package/builders/lowLvlBuilders/selects/whereSelect.d.ts +4 -4
  60. package/builders/lowLvlBuilders/updates/update.d.ts +2 -1
  61. package/builders/lowLvlBuilders/updates/update.js +3 -3
  62. package/builders/lowLvlBuilders/updates/updateIn.d.ts +1 -3
  63. package/builders/lowLvlBuilders/updates/updateIn.js +1 -4
  64. package/builders/requestBuilders/where/const.js +1 -1
  65. package/builders/requestBuilders/where/constArray.js +1 -1
  66. package/builders/requestBuilders/where/isNull.d.ts +6 -0
  67. package/builders/requestBuilders/where/isNull.js +11 -0
  68. package/builders/requestBuilders/where/notEqWhere.d.ts +7 -0
  69. package/builders/requestBuilders/where/notEqWhere.js +12 -0
  70. package/builders/requestBuilders/where/rawWhere.d.ts +6 -0
  71. package/builders/requestBuilders/where/rawWhere.js +11 -0
  72. package/builders/requestBuilders/where/static.d.ts +3 -0
  73. package/builders/requestBuilders/where/static.js +10 -1
  74. package/builders/requestBuilders/where/var.js +1 -1
  75. package/db/session.js +2 -2
  76. package/{manual.d.ts → docs/cases/simple_delete.d.ts} +0 -0
  77. package/docs/cases/simple_delete.js +30 -0
  78. package/{tests/cases/commentsTable.test.d.ts → docs/cases/simple_insert.d.ts} +0 -0
  79. package/docs/cases/simple_insert.js +51 -0
  80. package/docs/cases/simple_join.d.ts +1 -0
  81. package/docs/cases/simple_join.js +95 -0
  82. package/docs/cases/simple_select.d.ts +1 -0
  83. package/docs/cases/simple_select.js +39 -0
  84. package/docs/cases/simple_update.d.ts +1 -0
  85. package/docs/cases/simple_update.js +33 -0
  86. package/docs/tables/citiesTable.d.ts +14 -0
  87. package/{examples/tables/authOtpTable.js → docs/tables/citiesTable.js} +6 -9
  88. package/docs/tables/citiesToUsers.d.ts +7 -0
  89. package/docs/tables/citiesToUsers.js +18 -0
  90. package/docs/tables/userGroupsTable.d.ts +7 -0
  91. package/docs/tables/userGroupsTable.js +15 -0
  92. package/{examples → docs}/tables/usersTable.d.ts +7 -4
  93. package/{examples → docs}/tables/usersTable.js +11 -6
  94. package/docs/tables/usersToUserGroups.d.ts +7 -0
  95. package/docs/tables/usersToUserGroups.js +18 -0
  96. package/{examples → docs}/types/rolesType.d.ts +0 -0
  97. package/{examples → docs}/types/rolesType.js +1 -1
  98. package/indexes/tableIndex.d.ts +3 -1
  99. package/indexes/tableIndex.js +3 -1
  100. package/package.json +1 -1
  101. package/serializer/serializer.d.ts +39 -0
  102. package/serializer/serializer.js +73 -0
  103. package/tables/abstractTable.d.ts +4 -2
  104. package/tables/abstractTable.js +10 -10
  105. package/test.d.ts +1 -0
  106. package/test.js +38 -25
  107. package/examples/tables/authOtpTable.d.ts +0 -12
  108. package/examples/tables/cityTable.d.ts +0 -8
  109. package/examples/tables/cityTable.js +0 -17
  110. package/examples/testEnum.d.ts +0 -6
  111. package/examples/testEnum.js +0 -10
  112. package/manual.js +0 -27
  113. package/tests/cases/commentsTable.test.js +0 -66
  114. package/tests/cases/messagesTable.test1.d.ts +0 -0
  115. package/tests/cases/messagesTable.test1.js +0 -1
  116. package/tests/cases/postsTable.test1.d.ts +0 -0
  117. package/tests/cases/postsTable.test1.js +0 -1
  118. package/tests/cases/usersTable.test1.d.ts +0 -0
  119. package/tests/cases/usersTable.test1.js +0 -1
  120. package/tests/tables/citiesTable.d.ts +0 -6
  121. package/tests/tables/citiesTable.js +0 -14
  122. package/tests/tables/commentsTable.d.ts +0 -0
  123. package/tests/tables/commentsTable.js +0 -1
  124. package/tests/tables/likesTable.d.ts +0 -0
  125. package/tests/tables/likesTable.js +0 -1
  126. package/tests/tables/messagesTable.d.ts +0 -0
  127. package/tests/tables/messagesTable.js +0 -1
  128. package/tests/tables/postsTable.d.ts +0 -0
  129. package/tests/tables/postsTable.js +0 -1
  130. package/tests/tables/userFollowers.d.ts +0 -0
  131. package/tests/tables/userFollowers.js +0 -1
  132. package/tests/tables/usersTable.d.ts +0 -8
  133. package/tests/tables/usersTable.js +0 -20
@@ -1,43 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const builderError_1 = require("../../../errors/builderError");
4
- const dbErrors_1 = require("../../../errors/dbErrors");
5
3
  const responseMapper_1 = require("../../../mappers/responseMapper");
6
- const select_1 = require("../../lowLvlBuilders/selects/select");
7
4
  const join_1 = require("../join");
8
5
  const joinWith_1 = require("../joinWith");
9
6
  const selectResponseWithJoin_1 = require("../responses/selectResponseWithJoin");
10
7
  const abstractJoinBuilder_1 = require("./abstractJoinBuilder");
11
8
  const selectWithTwoJoins_1 = require("./selectWithTwoJoins");
12
9
  class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
13
- constructor(tableName, session, filter, join, columns, table) {
14
- super(filter, tableName, session, columns, table);
15
- this.execute = async () => {
16
- const queryBuilder = select_1.default.from(this._tableName, Object.values(this._columns));
17
- if (this._filter) {
18
- queryBuilder.filteredBy(this._filter);
19
- }
20
- queryBuilder.joined([this._join]);
21
- let query = '';
22
- try {
23
- query = queryBuilder.build();
24
- }
25
- catch (e) {
26
- throw new builderError_1.default(builderError_1.BuilderType.JOINED_SELECT, this._tableName, Object.values(this._columns), e, this._filter);
27
- }
28
- console.log(query);
29
- const parent = this._join.mappedServiceToDb;
30
- const result = await this._session.execute(query);
31
- if (result.isLeft()) {
32
- const { reason } = result.value;
33
- throw new dbErrors_1.DatabaseSelectError(this._tableName, reason, query);
34
- }
35
- else {
36
- const response = responseMapper_1.default.map(this._columns, result.value);
37
- const objects = responseMapper_1.default.map(parent, result.value);
38
- return new selectResponseWithJoin_1.default(response, objects);
39
- }
40
- };
10
+ constructor(table, session, filter, join, props, orderBy, order, distinct) {
11
+ super(table, filter, session, props, orderBy, order, distinct);
41
12
  this._join = join;
42
13
  }
43
14
  innerJoin(table, from, to) {
@@ -46,7 +17,7 @@ class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
46
17
  const toColumn = to(toTable);
47
18
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
48
19
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.INNER_JOIN);
49
- return new selectWithTwoJoins_1.default(this._tableName, this._session, this._filter, this._join, join, this._columns, this._table);
20
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct);
50
21
  }
51
22
  leftJoin(table, from, to) {
52
23
  const toTable = this._table.db.create(table);
@@ -54,7 +25,7 @@ class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
54
25
  const toColumn = to(toTable);
55
26
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
56
27
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.LEFT_JOIN);
57
- return new selectWithTwoJoins_1.default(this._tableName, this._session, this._filter, this._join, join, this._columns, this._table);
28
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct);
58
29
  }
59
30
  rightJoin(table, from, to) {
60
31
  const toTable = this._table.db.create(table);
@@ -62,7 +33,7 @@ class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
62
33
  const toColumn = to(toTable);
63
34
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
64
35
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.RIGHT_JOIN);
65
- return new selectWithTwoJoins_1.default(this._tableName, this._session, this._filter, this._join, join, this._columns, this._table);
36
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct);
66
37
  }
67
38
  fullJoin(table, from, to) {
68
39
  const toTable = this._table.db.create(table);
@@ -70,7 +41,16 @@ class SelectTRBWithJoin extends abstractJoinBuilder_1.default {
70
41
  const toColumn = to(toTable);
71
42
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
72
43
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.FULL_JOIN);
73
- return new selectWithTwoJoins_1.default(this._tableName, this._session, this._filter, this._join, join, this._columns, this._table);
44
+ return new selectWithTwoJoins_1.default(this._table, this._session, this._filter, this._join, join, this._props, this._orderBy, this._order, this._distinct);
45
+ }
46
+ joins() {
47
+ return [this._join];
48
+ }
49
+ mapResponse(result) {
50
+ const parent = this._join.mappedServiceToDb;
51
+ const response = responseMapper_1.default.map(this._table.mapServiceToDb(), result);
52
+ const objects = responseMapper_1.default.map(parent, result);
53
+ return new selectResponseWithJoin_1.default(response, objects);
74
54
  }
75
55
  }
76
56
  exports.default = SelectTRBWithJoin;
@@ -1,21 +1,23 @@
1
+ import { QueryResult } from 'pg';
1
2
  import { AbstractColumn } from '../../../columns/column';
2
3
  import ColumnType from '../../../columns/types/columnType';
3
4
  import DB from '../../../db/db';
4
5
  import Session from '../../../db/session';
5
6
  import AbstractTable from '../../../tables/abstractTable';
6
- import { ExtractModel } from '../../../tables/inferTypes';
7
+ import Order from '../../highLvlBuilders/order';
7
8
  import Expr from '../../requestBuilders/where/where';
8
9
  import Join from '../join';
9
10
  import SelectResponseThreeJoins from '../responses/selectResponseThreeJoins';
10
11
  import AbstractJoined from './abstractJoinBuilder';
11
12
  import SelectTRBWithFourJoins from './selectWithFourJoins';
12
- export default class SelectTRBWithThreeJoins<TTable extends AbstractTable<TTable>, TTable1, TTable2, TTable3> extends AbstractJoined<TTable> {
13
+ export default class SelectTRBWithThreeJoins<TTable extends AbstractTable<TTable>, TTable1, TTable2, TTable3> extends AbstractJoined<TTable, SelectResponseThreeJoins<TTable, TTable1, TTable2, TTable3>> {
13
14
  private _join1;
14
15
  private _join2;
15
16
  private _join3;
16
- constructor(tableName: string, session: Session, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, join3: Join<TTable3>, columns: {
17
- [name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>;
18
- }, table: TTable);
17
+ constructor(table: TTable, session: Session, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, join3: Join<TTable3>, props: {
18
+ limit?: number;
19
+ offset?: number;
20
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>);
19
21
  innerJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>>(table: {
20
22
  new (db: DB): IToTable;
21
23
  }, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<TColumn, boolean, boolean>): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable>;
@@ -28,5 +30,6 @@ export default class SelectTRBWithThreeJoins<TTable extends AbstractTable<TTable
28
30
  fullJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>>(table: {
29
31
  new (db: DB): IToTable;
30
32
  }, from: (table: TTable) => AbstractColumn<TColumn>, to: (table: IToTable) => AbstractColumn<TColumn>): SelectTRBWithFourJoins<TTable, TTable1, TTable2, TTable3, IToTable>;
31
- execute: () => Promise<SelectResponseThreeJoins<TTable, TTable1, TTable2, TTable3>>;
33
+ protected mapResponse(result: QueryResult<any>): SelectResponseThreeJoins<TTable, TTable1, TTable2, TTable3>;
34
+ protected joins(): Join<any>[];
32
35
  }
@@ -1,47 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const builderError_1 = require("../../../errors/builderError");
4
- const dbErrors_1 = require("../../../errors/dbErrors");
5
3
  const responseMapper_1 = require("../../../mappers/responseMapper");
6
- const select_1 = require("../../lowLvlBuilders/selects/select");
7
4
  const join_1 = require("../join");
8
5
  const joinWith_1 = require("../joinWith");
9
6
  const selectResponseThreeJoins_1 = require("../responses/selectResponseThreeJoins");
10
7
  const abstractJoinBuilder_1 = require("./abstractJoinBuilder");
11
8
  const selectWithFourJoins_1 = require("./selectWithFourJoins");
12
9
  class SelectTRBWithThreeJoins extends abstractJoinBuilder_1.default {
13
- constructor(tableName, session, filter, join1, join2, join3, columns, table) {
14
- super(filter, tableName, session, columns, table);
15
- // eslint-disable-next-line max-len
16
- this.execute = async () => {
17
- const queryBuilder = select_1.default.from(this._tableName, Object.values(this._columns));
18
- if (this._filter) {
19
- queryBuilder.filteredBy(this._filter);
20
- }
21
- queryBuilder.joined([this._join1, this._join2, this._join3]);
22
- let query = '';
23
- try {
24
- query = queryBuilder.build();
25
- }
26
- catch (e) {
27
- throw new builderError_1.default(builderError_1.BuilderType.TWO_JOINED_SELECT, this._tableName, Object.values(this._columns), e, this._filter);
28
- }
29
- const parent = this._join1.mappedServiceToDb;
30
- const parentTwo = this._join2.mappedServiceToDb;
31
- const parentThree = this._join3.mappedServiceToDb;
32
- const result = await this._session.execute(query);
33
- if (result.isLeft()) {
34
- const { reason } = result.value;
35
- throw new dbErrors_1.DatabaseSelectError(this._tableName, reason, query);
36
- }
37
- else {
38
- const response = responseMapper_1.default.map(this._columns, result.value);
39
- const objects = responseMapper_1.default.map(parent, result.value);
40
- const objectsTwo = responseMapper_1.default.map(parentTwo, result.value);
41
- const objectsThree = responseMapper_1.default.map(parentThree, result.value);
42
- return new selectResponseThreeJoins_1.default(response, objects, objectsTwo, objectsThree);
43
- }
44
- };
10
+ constructor(table, session, filter, join1, join2, join3, props, orderBy, order, distinct) {
11
+ super(table, filter, session, props, orderBy, order, distinct);
45
12
  this._join1 = join1;
46
13
  this._join2 = join2;
47
14
  this._join3 = join3;
@@ -52,7 +19,7 @@ class SelectTRBWithThreeJoins extends abstractJoinBuilder_1.default {
52
19
  const toColumn = to(toTable);
53
20
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
54
21
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.INNER_JOIN);
55
- return new selectWithFourJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, this._join3, join, this._columns, this._table);
22
+ return new selectWithFourJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, join, this._props, this._orderBy, this._order, this._distinct);
56
23
  }
57
24
  leftJoin(table, from, to) {
58
25
  const toTable = this._table.db.create(table);
@@ -60,7 +27,7 @@ class SelectTRBWithThreeJoins extends abstractJoinBuilder_1.default {
60
27
  const toColumn = to(toTable);
61
28
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
62
29
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.LEFT_JOIN);
63
- return new selectWithFourJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, this._join3, join, this._columns, this._table);
30
+ return new selectWithFourJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, join, this._props, this._orderBy, this._order, this._distinct);
64
31
  }
65
32
  rightJoin(table, from, to) {
66
33
  const toTable = this._table.db.create(table);
@@ -68,7 +35,7 @@ class SelectTRBWithThreeJoins extends abstractJoinBuilder_1.default {
68
35
  const toColumn = to(toTable);
69
36
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
70
37
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.RIGHT_JOIN);
71
- return new selectWithFourJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, this._join3, join, this._columns, this._table);
38
+ return new selectWithFourJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, join, this._props, this._orderBy, this._order, this._distinct);
72
39
  }
73
40
  fullJoin(table, from, to) {
74
41
  const toTable = this._table.db.create(table);
@@ -76,7 +43,20 @@ class SelectTRBWithThreeJoins extends abstractJoinBuilder_1.default {
76
43
  const toColumn = to(toTable);
77
44
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
78
45
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.FULL_JOIN);
79
- return new selectWithFourJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, this._join3, join, this._columns, this._table);
46
+ return new selectWithFourJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, this._join3, join, this._props, this._orderBy, this._order, this._distinct);
47
+ }
48
+ mapResponse(result) {
49
+ const parent = this._join1.mappedServiceToDb;
50
+ const parentTwo = this._join2.mappedServiceToDb;
51
+ const parentThree = this._join3.mappedServiceToDb;
52
+ const response = responseMapper_1.default.map(this._table.mapServiceToDb(), result);
53
+ const objects = responseMapper_1.default.map(parent, result);
54
+ const objectsTwo = responseMapper_1.default.map(parentTwo, result);
55
+ const objectsThree = responseMapper_1.default.map(parentThree, result);
56
+ return new selectResponseThreeJoins_1.default(response, objects, objectsTwo, objectsThree);
57
+ }
58
+ joins() {
59
+ return [this._join1, this._join2, this._join3];
80
60
  }
81
61
  }
82
62
  exports.default = SelectTRBWithThreeJoins;
@@ -1,20 +1,22 @@
1
+ import { QueryResult } from 'pg';
1
2
  import { AbstractColumn } from '../../../columns/column';
2
3
  import ColumnType from '../../../columns/types/columnType';
3
4
  import DB from '../../../db/db';
4
5
  import Session from '../../../db/session';
5
6
  import AbstractTable from '../../../tables/abstractTable';
6
- import { ExtractModel } from '../../../tables/inferTypes';
7
+ import Order from '../../highLvlBuilders/order';
7
8
  import Expr from '../../requestBuilders/where/where';
8
9
  import Join from '../join';
9
10
  import SelectResponseTwoJoins from '../responses/selectResponseTwoJoins';
10
11
  import AbstractJoined from './abstractJoinBuilder';
11
12
  import SelectTRBWithThreeJoins from './selectWithThreeJoins';
12
- export default class SelectTRBWithTwoJoins<TTable extends AbstractTable<TTable>, TTable1, TTable2> extends AbstractJoined<TTable> {
13
+ export default class SelectTRBWithTwoJoins<TTable extends AbstractTable<TTable>, TTable1, TTable2> extends AbstractJoined<TTable, SelectResponseTwoJoins<TTable, TTable1, TTable2>> {
13
14
  private _join1;
14
15
  private _join2;
15
- constructor(tableName: string, session: Session, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, columns: {
16
- [name in keyof ExtractModel<TTable>]: AbstractColumn<ColumnType>;
17
- }, table: TTable);
16
+ constructor(table: TTable, session: Session, filter: Expr, join1: Join<TTable1>, join2: Join<TTable2>, props: {
17
+ limit?: number;
18
+ offset?: number;
19
+ }, orderBy?: AbstractColumn<ColumnType, boolean, boolean>, order?: Order, distinct?: AbstractColumn<ColumnType, boolean, boolean>);
18
20
  innerJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>>(table: {
19
21
  new (db: DB): IToTable;
20
22
  }, from: (table: TTable) => AbstractColumn<TColumn, boolean, boolean>, to: (table: IToTable) => AbstractColumn<TColumn, boolean, boolean>): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable>;
@@ -27,5 +29,6 @@ export default class SelectTRBWithTwoJoins<TTable extends AbstractTable<TTable>,
27
29
  fullJoin<TColumn extends ColumnType, IToTable extends AbstractTable<IToTable>>(table: {
28
30
  new (db: DB): IToTable;
29
31
  }, from: (table: TTable) => AbstractColumn<TColumn>, to: (table: IToTable) => AbstractColumn<TColumn>): SelectTRBWithThreeJoins<TTable, TTable1, TTable2, IToTable>;
30
- execute: () => Promise<SelectResponseTwoJoins<TTable, TTable1, TTable2>>;
32
+ protected mapResponse(result: QueryResult<any>): SelectResponseTwoJoins<TTable, TTable1, TTable2>;
33
+ protected joins(): Join<any>[];
31
34
  }
@@ -1,46 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const builderError_1 = require("../../../errors/builderError");
4
- const dbErrors_1 = require("../../../errors/dbErrors");
5
3
  const responseMapper_1 = require("../../../mappers/responseMapper");
6
- const select_1 = require("../../lowLvlBuilders/selects/select");
7
4
  const join_1 = require("../join");
8
5
  const joinWith_1 = require("../joinWith");
9
6
  const selectResponseTwoJoins_1 = require("../responses/selectResponseTwoJoins");
10
7
  const abstractJoinBuilder_1 = require("./abstractJoinBuilder");
11
8
  const selectWithThreeJoins_1 = require("./selectWithThreeJoins");
12
- // import SelectTRBWithThreeJoins from './selectWithThreeJoins';
13
- // eslint-disable-next-line max-len
14
9
  class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
15
- constructor(tableName, session, filter, join1, join2, columns, table) {
16
- super(filter, tableName, session, columns, table);
17
- this.execute = async () => {
18
- const queryBuilder = select_1.default.from(this._tableName, Object.values(this._columns));
19
- if (this._filter) {
20
- queryBuilder.filteredBy(this._filter);
21
- }
22
- queryBuilder.joined([this._join1, this._join2]);
23
- let query = '';
24
- try {
25
- query = queryBuilder.build();
26
- }
27
- catch (e) {
28
- throw new builderError_1.default(builderError_1.BuilderType.TWO_JOINED_SELECT, this._tableName, Object.values(this._columns), e, this._filter);
29
- }
30
- const parent = this._join1.mappedServiceToDb;
31
- const parentTwo = this._join2.mappedServiceToDb;
32
- const result = await this._session.execute(query);
33
- if (result.isLeft()) {
34
- const { reason } = result.value;
35
- throw new dbErrors_1.DatabaseSelectError(this._tableName, reason, query);
36
- }
37
- else {
38
- const response = responseMapper_1.default.map(this._columns, result.value);
39
- const objects = responseMapper_1.default.map(parent, result.value);
40
- const objectsTwo = responseMapper_1.default.map(parentTwo, result.value);
41
- return new selectResponseTwoJoins_1.default(response, objects, objectsTwo);
42
- }
43
- };
10
+ constructor(table, session, filter, join1, join2, props, orderBy, order, distinct) {
11
+ super(table, filter, session, props, orderBy, order, distinct);
44
12
  this._join1 = join1;
45
13
  this._join2 = join2;
46
14
  }
@@ -50,7 +18,7 @@ class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
50
18
  const toColumn = to(toTable);
51
19
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
52
20
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.INNER_JOIN);
53
- return new selectWithThreeJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, join, this._columns, this._table);
21
+ return new selectWithThreeJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, join, this._props, this._orderBy, this._order, this._distinct);
54
22
  }
55
23
  leftJoin(table, from, to) {
56
24
  const toTable = this._table.db.create(table);
@@ -58,7 +26,7 @@ class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
58
26
  const toColumn = to(toTable);
59
27
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
60
28
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.LEFT_JOIN);
61
- return new selectWithThreeJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, join, this._columns, this._table);
29
+ return new selectWithThreeJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, join, this._props, this._orderBy, this._order, this._distinct);
62
30
  }
63
31
  rightJoin(table, from, to) {
64
32
  const toTable = this._table.db.create(table);
@@ -66,7 +34,7 @@ class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
66
34
  const toColumn = to(toTable);
67
35
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
68
36
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.RIGHT_JOIN);
69
- return new selectWithThreeJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, join, this._columns, this._table);
37
+ return new selectWithThreeJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, join, this._props, this._orderBy, this._order, this._distinct);
70
38
  }
71
39
  fullJoin(table, from, to) {
72
40
  const toTable = this._table.db.create(table);
@@ -74,7 +42,18 @@ class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
74
42
  const toColumn = to(toTable);
75
43
  const join = new joinWith_1.default(toTable.tableName(), toTable.mapServiceToDb())
76
44
  .columns(fromColumn, toColumn).joinStrategy(join_1.JoinStrategy.FULL_JOIN);
77
- return new selectWithThreeJoins_1.default(this._tableName, this._session, this._filter, this._join1, this._join2, join, this._columns, this._table);
45
+ return new selectWithThreeJoins_1.default(this._table, this._session, this._filter, this._join1, this._join2, join, this._props, this._orderBy, this._order, this._distinct);
46
+ }
47
+ mapResponse(result) {
48
+ const parent = this._join1.mappedServiceToDb;
49
+ const parentTwo = this._join2.mappedServiceToDb;
50
+ const response = responseMapper_1.default.map(this._table.mapServiceToDb(), result);
51
+ const objects = responseMapper_1.default.map(parent, result);
52
+ const objectsTwo = responseMapper_1.default.map(parentTwo, result);
53
+ return new selectResponseTwoJoins_1.default(response, objects, objectsTwo);
54
+ }
55
+ joins() {
56
+ return [this._join1, this._join2];
78
57
  }
79
58
  }
80
59
  exports.default = SelectTRBWithTwoJoins;
@@ -0,0 +1,19 @@
1
+ import { ExtractModel } from '../../../tables/inferTypes';
2
+ export default class SelectResponseFiveJoins<T1, T2, T3, T4, T5, T6> {
3
+ _t1: Array<ExtractModel<T1> | undefined>;
4
+ _t2: Array<ExtractModel<T2> | undefined>;
5
+ _t3: Array<ExtractModel<T3> | undefined>;
6
+ _t4: Array<ExtractModel<T4> | undefined>;
7
+ _t5: Array<ExtractModel<T5> | undefined>;
8
+ _t6: Array<ExtractModel<T6> | undefined>;
9
+ constructor(t1: Array<ExtractModel<T1> | undefined>, t2: Array<ExtractModel<T2> | undefined>, t3: Array<ExtractModel<T3> | undefined>, t4: Array<ExtractModel<T4> | undefined>, t5: Array<ExtractModel<T5> | undefined>, t6: Array<ExtractModel<T6> | undefined>);
10
+ map: <M>(imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined, t6: ExtractModel<T6> | undefined) => M) => M[];
11
+ foreach: (imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined, t6: ExtractModel<T6> | undefined) => void) => void;
12
+ group: <TOne, TMany>({ one, many, }: {
13
+ one: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined, t6: ExtractModel<T6> | undefined) => TOne;
14
+ many: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined, t6: ExtractModel<T6> | undefined) => TMany;
15
+ }) => {
16
+ one: TOne;
17
+ many: TMany[];
18
+ };
19
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class SelectResponseFiveJoins {
4
+ constructor(t1, t2, t3, t4, t5, t6) {
5
+ this.map = (imac) => {
6
+ const objects = new Array();
7
+ for (let i = 0; i < this._t1.length; i += 1) {
8
+ objects.push(imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i], this._t6[i]));
9
+ }
10
+ return objects;
11
+ };
12
+ this.foreach = (imac) => {
13
+ for (let i = 0; i < this._t1.length; i += 1) {
14
+ imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i], this._t6[i]);
15
+ }
16
+ };
17
+ this.group = ({ one, many, }) => {
18
+ const objects = new Array();
19
+ for (let i = 0; i < this._t1.length; i += 1) {
20
+ objects.push(many(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i], this._t6[i]));
21
+ }
22
+ return {
23
+ one: one(this._t1[0], this._t2[0], this._t3[0], this._t4[0], this._t5[0], this._t6[0]),
24
+ many: objects,
25
+ };
26
+ };
27
+ this._t1 = t1;
28
+ this._t2 = t2;
29
+ this._t3 = t3;
30
+ this._t4 = t4;
31
+ this._t5 = t5;
32
+ this._t6 = t6;
33
+ }
34
+ }
35
+ exports.default = SelectResponseFiveJoins;
@@ -7,4 +7,12 @@ export default class SelectResponseFourJoins<T1, T2, T3, T4, T5> {
7
7
  _t5: Array<ExtractModel<T5> | undefined>;
8
8
  constructor(t1: Array<ExtractModel<T1> | undefined>, t2: Array<ExtractModel<T2> | undefined>, t3: Array<ExtractModel<T3> | undefined>, t4: Array<ExtractModel<T4> | undefined>, t5: Array<ExtractModel<T5> | undefined>);
9
9
  map: <M>(imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined) => M) => M[];
10
+ foreach: (imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined) => void) => void;
11
+ group: <TOne, TMany>({ one, many, }: {
12
+ one: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined) => TOne;
13
+ many: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined, t5: ExtractModel<T5> | undefined) => TMany;
14
+ }) => {
15
+ one: TOne;
16
+ many: TMany[];
17
+ };
10
18
  }
@@ -2,10 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class SelectResponseFourJoins {
4
4
  constructor(t1, t2, t3, t4, t5) {
5
- // public groupBy = (key: keyof ExtractModel<T1>) => {
6
- // const objects = this.map((u, c, c1) => ({ u, c, c1 }));
7
- // return this._groupBy(objects, (item) => key[item]);
8
- // };
9
5
  this.map = (imac) => {
10
6
  const objects = new Array();
11
7
  for (let i = 0; i < this._t1.length; i += 1) {
@@ -13,6 +9,21 @@ class SelectResponseFourJoins {
13
9
  }
14
10
  return objects;
15
11
  };
12
+ this.foreach = (imac) => {
13
+ for (let i = 0; i < this._t1.length; i += 1) {
14
+ imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i]);
15
+ }
16
+ };
17
+ this.group = ({ one, many, }) => {
18
+ const objects = new Array();
19
+ for (let i = 0; i < this._t1.length; i += 1) {
20
+ objects.push(many(this._t1[i], this._t2[i], this._t3[i], this._t4[i], this._t5[i]));
21
+ }
22
+ return {
23
+ one: one(this._t1[0], this._t2[0], this._t3[0], this._t4[0], this._t5[0]),
24
+ many: objects,
25
+ };
26
+ };
16
27
  this._t1 = t1;
17
28
  this._t2 = t2;
18
29
  this._t3 = t3;
@@ -6,4 +6,12 @@ export default class SelectResponseThreeJoins<T1, T2, T3, T4> {
6
6
  private _t4;
7
7
  constructor(t1: Array<ExtractModel<T1> | undefined>, t2: Array<ExtractModel<T2> | undefined>, t3: Array<ExtractModel<T3> | undefined>, t4: Array<ExtractModel<T4> | undefined>);
8
8
  map: <M>(imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined) => M) => M[];
9
+ foreach: (imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined) => void) => void;
10
+ group: <TOne, TMany>({ one, many, }: {
11
+ one: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined) => TOne;
12
+ many: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined, t4: ExtractModel<T4> | undefined) => TMany;
13
+ }) => {
14
+ one: TOne;
15
+ many: TMany[];
16
+ };
9
17
  }
@@ -9,6 +9,21 @@ class SelectResponseThreeJoins {
9
9
  }
10
10
  return objects;
11
11
  };
12
+ this.foreach = (imac) => {
13
+ for (let i = 0; i < this._t1.length; i += 1) {
14
+ imac(this._t1[i], this._t2[i], this._t3[i], this._t4[i]);
15
+ }
16
+ };
17
+ this.group = ({ one, many, }) => {
18
+ const objects = new Array();
19
+ for (let i = 0; i < this._t1.length; i += 1) {
20
+ objects.push(many(this._t1[i], this._t2[i], this._t3[i], this._t4[i]));
21
+ }
22
+ return {
23
+ one: one(this._t1[0], this._t2[0], this._t3[0], this._t4[0]),
24
+ many: objects,
25
+ };
26
+ };
12
27
  this._t1 = t1;
13
28
  this._t2 = t2;
14
29
  this._t3 = t3;
@@ -5,4 +5,12 @@ export default class SelectResponseTwoJoins<T1, T2, T3> {
5
5
  private _t3;
6
6
  constructor(t1: Array<ExtractModel<T1> | undefined>, t2: Array<ExtractModel<T2> | undefined>, t3: Array<ExtractModel<T3> | undefined>);
7
7
  map: <M>(imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined) => M) => M[];
8
+ foreach: (imac: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined) => void) => void;
9
+ group: <TOne, TMany>({ one, many, }: {
10
+ one: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined) => TOne;
11
+ many: (t1: ExtractModel<T1> | undefined, t2: ExtractModel<T2> | undefined, t3: ExtractModel<T3> | undefined) => TMany;
12
+ }) => {
13
+ one: TOne;
14
+ many: TMany[];
15
+ };
8
16
  }
@@ -9,6 +9,21 @@ class SelectResponseTwoJoins {
9
9
  }
10
10
  return objects;
11
11
  };
12
+ this.foreach = (imac) => {
13
+ for (let i = 0; i < this._t1.length; i += 1) {
14
+ imac(this._t1[i], this._t2[i], this._t3[i]);
15
+ }
16
+ };
17
+ this.group = ({ one, many, }) => {
18
+ const objects = new Array();
19
+ for (let i = 0; i < this._t1.length; i += 1) {
20
+ objects.push(many(this._t1[i], this._t2[i], this._t3[i]));
21
+ }
22
+ return {
23
+ one: one(this._t1[0], this._t2[0], this._t3[0]),
24
+ many: objects,
25
+ };
26
+ };
12
27
  this._t1 = t1;
13
28
  this._t2 = t2;
14
29
  this._t3 = t3;
@@ -4,4 +4,12 @@ export default class SelectResponseJoin<TTable1, TTable2> {
4
4
  private _t2;
5
5
  constructor(t1: Array<ExtractModel<TTable1> | undefined>, t2: Array<ExtractModel<TTable2> | undefined>);
6
6
  map: <M>(imac: (t1: ExtractModel<TTable1> | undefined, t2: ExtractModel<TTable2> | undefined) => M) => M[];
7
+ foreach: (imac: (t1: ExtractModel<TTable1> | undefined, t2: ExtractModel<TTable2> | undefined) => void) => void;
8
+ group: <TOne, TMany>({ one, many, }: {
9
+ one: (t1: ExtractModel<TTable1> | undefined, t2: ExtractModel<TTable2> | undefined) => TOne;
10
+ many: (t1: ExtractModel<TTable1> | undefined, t2: ExtractModel<TTable2> | undefined) => TMany;
11
+ }) => {
12
+ one: TOne;
13
+ many: TMany[];
14
+ };
7
15
  }
@@ -9,6 +9,21 @@ class SelectResponseJoin {
9
9
  }
10
10
  return objects;
11
11
  };
12
+ this.foreach = (imac) => {
13
+ for (let i = 0; i < this._t1.length; i += 1) {
14
+ imac(this._t1[i], this._t2[i]);
15
+ }
16
+ };
17
+ this.group = ({ one, many, }) => {
18
+ const objects = new Array();
19
+ for (let i = 0; i < this._t1.length; i += 1) {
20
+ objects.push(many(this._t1[i], this._t2[i]));
21
+ }
22
+ return {
23
+ one: one(this._t1[0], this._t2[0]),
24
+ many: objects,
25
+ };
26
+ };
12
27
  this._t1 = t1;
13
28
  this._t2 = t2;
14
29
  }
@@ -36,7 +36,7 @@ class Create {
36
36
  WHEN duplicate_object THEN null;
37
37
  END $$;`);
38
38
  }
39
- this.columnsBuilder.push((0, ecranate_1.ecranate)(column.getColumnName()));
39
+ this.columnsBuilder.push(ecranate_1.ecranate(column.getColumnName()));
40
40
  this.columnsBuilder.push(' ');
41
41
  this.columnsBuilder.push(column.isAutoIncrement() ? 'SERIAL' : column.getColumnType().getDbName());
42
42
  this.columnsBuilder.push(' ');
@@ -1,4 +1,5 @@
1
+ import { AbstractTable } from '../../../tables';
1
2
  import DeleteFrom from './deleteFrom';
2
3
  export default class Delete {
3
- static from: (tableName: string) => DeleteFrom;
4
+ static from: <TTable extends AbstractTable<TTable>>(table: AbstractTable<TTable>) => DeleteFrom;
4
5
  }
@@ -5,8 +5,8 @@ const deleteFrom_1 = require("./deleteFrom");
5
5
  class Delete {
6
6
  }
7
7
  exports.default = Delete;
8
- Delete.from = (tableName) => {
9
- const aggregator = new deleteAggregator_1.default(tableName);
10
- aggregator.appendFrom(tableName);
8
+ Delete.from = (table) => {
9
+ const aggregator = new deleteAggregator_1.default(table);
10
+ aggregator.appendFrom(table.tableName());
11
11
  return new deleteFrom_1.default(aggregator);
12
12
  };
@@ -1,6 +1,5 @@
1
- import { AbstractColumn } from '../../../columns/column';
2
- import ColumnType from '../../../columns/types/columnType';
1
+ import { AbstractTable } from '../../../tables';
3
2
  import InsertInto from './insertInto';
4
3
  export default class Insert {
5
- static into: (tableName: string, columns: AbstractColumn<ColumnType>[]) => InsertInto;
4
+ static into: <TTable extends AbstractTable<TTable>>(table: AbstractTable<TTable>) => InsertInto;
6
5
  }
@@ -5,8 +5,8 @@ const insertInto_1 = require("./insertInto");
5
5
  class Insert {
6
6
  }
7
7
  exports.default = Insert;
8
- Insert.into = (tableName, columns) => {
9
- const aggregator = new insertAggregator_1.default(tableName);
10
- aggregator.appendFrom(tableName).appendFields(columns);
8
+ Insert.into = (table) => {
9
+ const aggregator = new insertAggregator_1.default(table);
10
+ // aggregator.appendFrom(table.tableName());
11
11
  return new insertInto_1.default(aggregator);
12
12
  };