drizzle-orm 0.10.2 → 0.10.6

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 (100) hide show
  1. package/README.md +12 -2
  2. package/builders/aggregators/deleteAggregator.d.ts +5 -1
  3. package/builders/aggregators/deleteAggregator.js +5 -2
  4. package/builders/aggregators/insertAggregator.d.ts +5 -1
  5. package/builders/aggregators/insertAggregator.js +18 -9
  6. package/builders/aggregators/selectAggregator.d.ts +6 -1
  7. package/builders/aggregators/selectAggregator.js +10 -6
  8. package/builders/aggregators/updateAggregator.d.ts +5 -1
  9. package/builders/aggregators/updateAggregator.js +9 -3
  10. package/builders/highLvlBuilders/deleteRequestBuilder.js +5 -2
  11. package/builders/highLvlBuilders/insertRequestBuilder.js +5 -2
  12. package/builders/highLvlBuilders/selectRequestBuilder.js +7 -2
  13. package/builders/highLvlBuilders/updateRequestBuilder.js +6 -2
  14. package/builders/joinBuilders/builders/abstractJoinBuilder.js +7 -3
  15. package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +4 -1
  16. package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +4 -1
  17. package/builders/lowLvlBuilders/inserts/insertInto.d.ts +4 -1
  18. package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +4 -1
  19. package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +4 -1
  20. package/builders/lowLvlBuilders/selects/selectFrom.d.ts +4 -1
  21. package/builders/lowLvlBuilders/selects/selectJoined.d.ts +4 -1
  22. package/builders/lowLvlBuilders/selects/whereSelect.d.ts +4 -1
  23. package/builders/lowLvlBuilders/updates/updateIn.d.ts +4 -1
  24. package/builders/lowLvlBuilders/updates/whereSelect.d.ts +4 -1
  25. package/builders/lowLvlBuilders/updates/whereSet.d.ts +4 -1
  26. package/builders/requestBuilders/updates/combine.d.ts +4 -1
  27. package/builders/requestBuilders/updates/combine.js +8 -3
  28. package/builders/requestBuilders/updates/increment.d.ts +4 -1
  29. package/builders/requestBuilders/updates/increment.js +4 -1
  30. package/builders/requestBuilders/updates/setObjects.d.ts +4 -1
  31. package/builders/requestBuilders/updates/setObjects.js +5 -1
  32. package/builders/requestBuilders/updates/updates.d.ts +4 -1
  33. package/builders/requestBuilders/where/and.d.ts +6 -1
  34. package/builders/requestBuilders/where/and.js +9 -3
  35. package/builders/requestBuilders/where/const.d.ts +4 -1
  36. package/builders/requestBuilders/where/const.js +6 -4
  37. package/builders/requestBuilders/where/constArray.d.ts +4 -1
  38. package/builders/requestBuilders/where/constArray.js +11 -5
  39. package/builders/requestBuilders/where/eqWhere.d.ts +6 -1
  40. package/builders/requestBuilders/where/eqWhere.js +6 -1
  41. package/builders/requestBuilders/where/greater.d.ts +6 -1
  42. package/builders/requestBuilders/where/greater.js +6 -1
  43. package/builders/requestBuilders/where/greaterEq.d.ts +6 -1
  44. package/builders/requestBuilders/where/greaterEq.js +6 -1
  45. package/builders/requestBuilders/where/in.d.ts +6 -1
  46. package/builders/requestBuilders/where/in.js +6 -1
  47. package/builders/requestBuilders/where/isNull.d.ts +6 -1
  48. package/builders/requestBuilders/where/isNull.js +5 -1
  49. package/builders/requestBuilders/where/less.d.ts +6 -1
  50. package/builders/requestBuilders/where/less.js +6 -1
  51. package/builders/requestBuilders/where/lessEq.d.ts +6 -1
  52. package/builders/requestBuilders/where/lessEq.js +6 -1
  53. package/builders/requestBuilders/where/like.d.ts +6 -1
  54. package/builders/requestBuilders/where/like.js +6 -1
  55. package/builders/requestBuilders/where/notEqWhere.d.ts +6 -1
  56. package/builders/requestBuilders/where/notEqWhere.js +6 -1
  57. package/builders/requestBuilders/where/or.d.ts +6 -1
  58. package/builders/requestBuilders/where/or.js +9 -3
  59. package/builders/requestBuilders/where/rawWhere.d.ts +4 -1
  60. package/builders/requestBuilders/where/rawWhere.js +2 -1
  61. package/builders/requestBuilders/where/var.d.ts +6 -1
  62. package/builders/requestBuilders/where/var.js +4 -1
  63. package/builders/requestBuilders/where/where.d.ts +6 -1
  64. package/builders/requestBuilders/where/where.js +1 -0
  65. package/columns/types/pgEnum.js +1 -1
  66. package/columns/types/pgInteger.d.ts +1 -1
  67. package/columns/types/pgInteger.js +1 -1
  68. package/columns/types/pgJsonb.js +3 -1
  69. package/columns/types/pgSerial.d.ts +1 -1
  70. package/columns/types/pgSerial.js +1 -1
  71. package/columns/types/pgSmallInt.d.ts +1 -1
  72. package/columns/types/pgSmallInt.js +1 -1
  73. package/columns/types/pgText.js +1 -1
  74. package/columns/types/pgTimestamp.js +1 -1
  75. package/columns/types/pgTimestamptz.js +1 -1
  76. package/columns/types/pgVarChar.js +1 -1
  77. package/data/tables/citiesTable.d.ts +14 -0
  78. package/data/tables/citiesTable.js +17 -0
  79. package/data/tables/userGroupsTable.d.ts +7 -0
  80. package/data/tables/userGroupsTable.js +15 -0
  81. package/data/tables/usersTable.d.ts +16 -0
  82. package/data/tables/usersTable.js +31 -0
  83. package/data/tables/usersToUserGroups.d.ts +7 -0
  84. package/data/tables/usersToUserGroups.js +17 -0
  85. package/data/types/rolesType.d.ts +1 -0
  86. package/data/types/rolesType.js +6 -0
  87. package/db/session.d.ts +2 -2
  88. package/db/session.js +2 -2
  89. package/docs/cases/simple_delete.js +5 -3
  90. package/docs/cases/simple_insert.js +7 -9
  91. package/docs/cases/simple_join.js +9 -7
  92. package/docs/cases/simple_select.js +4 -2
  93. package/docs/cases/simple_update.js +5 -2
  94. package/docs/tables/usersTable.d.ts +11 -10
  95. package/docs/tables/usersTable.js +5 -4
  96. package/mappers/responseMapper.js +2 -2
  97. package/migrator/migrator.js +10 -2
  98. package/package.json +1 -1
  99. package/tables/abstractTable.d.ts +2 -1
  100. package/test.js +104 -9
@@ -1,20 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class And extends where_1.default {
5
6
  constructor(expressions) {
6
7
  super();
7
- this.toQuery = () => {
8
+ this.toQuery = (position, tableCache) => {
9
+ let nextPosition = position || 1;
8
10
  const result = ['('];
11
+ const valuesResult = [];
9
12
  for (let i = 0; i < this.expressions.length; i += 1) {
10
13
  const expression = this.expressions[i];
11
- result.push(expression.toQuery());
14
+ const expressionResult = expression.toQuery(nextPosition, tableCache);
15
+ valuesResult.push(...expressionResult.values);
16
+ result.push(expressionResult.query);
17
+ nextPosition += expressionResult.values.length;
12
18
  if (i < this.expressions.length - 1) {
13
19
  result.push(' and ');
14
20
  }
15
21
  }
16
22
  result.push(')');
17
- return result.join('');
23
+ return { query: result.join(''), values: valuesResult };
18
24
  };
19
25
  this.expressions = expressions;
20
26
  }
@@ -2,5 +2,8 @@ import Expr from './where';
2
2
  export default class Const extends Expr {
3
3
  private value;
4
4
  constructor(value: any);
5
- toQuery: () => string;
5
+ toQuery: (position?: number | undefined) => {
6
+ query: string;
7
+ values: Array<any>;
8
+ };
6
9
  }
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable no-return-assign */
3
4
  const ecranate_1 = require("../../../utils/ecranate");
4
5
  const where_1 = require("./where");
5
6
  class Const extends where_1.default {
6
7
  constructor(value) {
7
8
  super();
8
- this.toQuery = () => {
9
+ this.toQuery = (position) => {
10
+ const nextPosition = position || 1;
9
11
  if (this.value instanceof Date) {
10
- return `'${this.value.toISOString()}'`;
12
+ return { query: `$${nextPosition}`, values: [`${this.value.toISOString()}`] };
11
13
  }
12
14
  if (ecranate_1.shouldEcranate(this.value)) {
13
- return `'${this.value.toString()}'`;
15
+ return { query: `$${nextPosition}`, values: [`${this.value.toString()}`] };
14
16
  }
15
- return this.value.toString();
17
+ return { query: `$${nextPosition}`, values: [this.value] };
16
18
  };
17
19
  this.value = value;
18
20
  }
@@ -2,5 +2,8 @@ import Expr from './where';
2
2
  export default class ConstArray extends Expr {
3
3
  private values;
4
4
  constructor(values: Array<any>);
5
- toQuery: () => string;
5
+ toQuery: (position?: number | undefined) => {
6
+ query: string;
7
+ values: Array<any>;
8
+ };
6
9
  }
@@ -5,24 +5,30 @@ const where_1 = require("./where");
5
5
  class ConstArray extends where_1.default {
6
6
  constructor(values) {
7
7
  super();
8
- this.toQuery = () => {
8
+ this.toQuery = (position) => {
9
+ let nextPosition = position || 1;
9
10
  const finalArray = [];
11
+ const finalValues = [];
10
12
  for (let i = 0; i < this.values.length; i += 1) {
11
13
  const value = this.values[i];
12
14
  if (value instanceof Date) {
13
- return `'${value.toISOString()}'`;
15
+ finalArray.push(`$${nextPosition}`);
16
+ finalValues.push(`${value.toISOString()}`);
14
17
  }
15
18
  if (ecranate_1.shouldEcranate(value)) {
16
- finalArray.push(`'${value.toString()}'`);
19
+ finalArray.push(`$${nextPosition}`);
20
+ finalValues.push(`${value.toString()}`);
17
21
  }
18
22
  else {
19
- finalArray.push(value.toString());
23
+ finalArray.push(`$${nextPosition}`);
24
+ finalValues.push(value);
20
25
  }
21
26
  if (i < this.values.length - 1) {
22
27
  finalArray.push(',');
23
28
  }
29
+ nextPosition += 1;
24
30
  }
25
- return finalArray.join('');
31
+ return { query: finalArray.join(','), values: finalValues };
26
32
  };
27
33
  this.values = values;
28
34
  }
@@ -3,5 +3,10 @@ export default class EqWhere extends Expr {
3
3
  private left;
4
4
  private right;
5
5
  constructor(left: Expr, right: Expr);
6
- toQuery: () => string;
6
+ toQuery: (position?: number | undefined, tableCache?: {
7
+ [tableName: string]: string;
8
+ } | undefined) => {
9
+ query: string;
10
+ values: Array<any>;
11
+ };
7
12
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class EqWhere extends where_1.default {
5
6
  constructor(left, right) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()}=${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query}=${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -6,5 +6,10 @@ export default class Greater extends Expr {
6
6
  left: Expr;
7
7
  right: Expr;
8
8
  });
9
- toQuery: () => string;
9
+ toQuery: (position: number, tableCache?: {
10
+ [tableName: string]: string;
11
+ } | undefined) => {
12
+ query: string;
13
+ values: Array<any>;
14
+ };
10
15
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class Greater extends where_1.default {
5
6
  constructor({ left, right }) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} > ${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} > ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -6,5 +6,10 @@ export default class GreaterEq extends Expr {
6
6
  left: Expr;
7
7
  right: Expr;
8
8
  });
9
- toQuery: () => string;
9
+ toQuery: (position: number, tableCache?: {
10
+ [tableName: string]: string;
11
+ } | undefined) => {
12
+ query: string;
13
+ values: Array<any>;
14
+ };
10
15
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class GreaterEq extends where_1.default {
5
6
  constructor({ left, right }) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} >= ${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} >= ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -3,5 +3,10 @@ export default class In extends Expr {
3
3
  private left;
4
4
  private right;
5
5
  constructor(left: Expr, right: Expr);
6
- toQuery: () => string;
6
+ toQuery: (position?: number | undefined, tableCache?: {
7
+ [tableName: string]: string;
8
+ } | undefined) => {
9
+ query: string;
10
+ values: Array<any>;
11
+ };
7
12
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class In extends where_1.default {
5
6
  constructor(left, right) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} in (${this.right.toQuery()})`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} in (${rightPreparedValues.query})`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -2,5 +2,10 @@ import Expr from './where';
2
2
  export default class IsNull extends Expr {
3
3
  private left;
4
4
  constructor(left: Expr);
5
- toQuery: () => string;
5
+ toQuery: (position?: number | undefined, tableCache?: {
6
+ [tableName: string]: string;
7
+ } | undefined) => {
8
+ query: string;
9
+ values: Array<any>;
10
+ };
6
11
  }
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class IsNull extends where_1.default {
5
6
  constructor(left) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} is null`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
10
+ return { query: `${leftPreparedValues.query} is null`, values: leftPreparedValues.values };
11
+ };
8
12
  this.left = left;
9
13
  }
10
14
  }
@@ -6,5 +6,10 @@ export default class Less extends Expr {
6
6
  left: Expr;
7
7
  right: Expr;
8
8
  });
9
- toQuery: () => string;
9
+ toQuery: (position?: number | undefined, tableCache?: {
10
+ [tableName: string]: string;
11
+ } | undefined) => {
12
+ query: string;
13
+ values: Array<any>;
14
+ };
10
15
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class Less extends where_1.default {
5
6
  constructor({ left, right }) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} < ${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} < ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -6,5 +6,10 @@ export default class LessEq extends Expr {
6
6
  left: Expr;
7
7
  right: Expr;
8
8
  });
9
- toQuery: () => string;
9
+ toQuery: (position?: number | undefined, tableCache?: {
10
+ [tableName: string]: string;
11
+ } | undefined) => {
12
+ query: string;
13
+ values: Array<any>;
14
+ };
10
15
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class LessEq extends where_1.default {
5
6
  constructor({ left, right }) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} <= ${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} <= ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -3,5 +3,10 @@ export default class Like extends Expr {
3
3
  private left;
4
4
  private right;
5
5
  constructor(left: Expr, right: Expr);
6
- toQuery: () => string;
6
+ toQuery: (position?: number | undefined, tableCache?: {
7
+ [tableName: string]: string;
8
+ } | undefined) => {
9
+ query: string;
10
+ values: Array<any>;
11
+ };
7
12
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class Like extends where_1.default {
5
6
  constructor(left, right) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()} like ${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query} like ${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -3,5 +3,10 @@ export default class NotEqWhere extends Expr {
3
3
  private left;
4
4
  private right;
5
5
  constructor(left: Expr, right: Expr);
6
- toQuery: () => string;
6
+ toQuery: (position?: number | undefined, tableCache?: {
7
+ [tableName: string]: string;
8
+ } | undefined) => {
9
+ query: string;
10
+ values: Array<any>;
11
+ };
7
12
  }
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class NotEqWhere extends where_1.default {
5
6
  constructor(left, right) {
6
7
  super();
7
- this.toQuery = () => `${this.left.toQuery()}!=${this.right.toQuery()}`;
8
+ this.toQuery = (position, tableCache) => {
9
+ const rightPreparedValues = this.right.toQuery(position, tableCache);
10
+ const leftPreparedValues = this.left.toQuery(position, tableCache);
11
+ return { query: `${leftPreparedValues.query}!=${rightPreparedValues.query}`, values: [...leftPreparedValues.values, ...rightPreparedValues.values] };
12
+ };
8
13
  this.left = left;
9
14
  this.right = right;
10
15
  }
@@ -2,5 +2,10 @@ import Expr from './where';
2
2
  export default class Or extends Expr {
3
3
  private expressions;
4
4
  constructor(expressions: Expr[]);
5
- toQuery: () => string;
5
+ toQuery: (position?: number | undefined, tableCache?: {
6
+ [tableName: string]: string;
7
+ } | undefined) => {
8
+ query: string;
9
+ values: Array<any>;
10
+ };
6
11
  }
@@ -1,20 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class Or extends where_1.default {
5
6
  constructor(expressions) {
6
7
  super();
7
- this.toQuery = () => {
8
+ this.toQuery = (position, tableCache) => {
9
+ let nextPosition = position || 1;
8
10
  const result = ['('];
11
+ const valuesResult = [];
9
12
  for (let i = 0; i < this.expressions.length; i += 1) {
10
13
  const expression = this.expressions[i];
11
- result.push(expression.toQuery());
14
+ const expressionResult = expression.toQuery(nextPosition, tableCache);
15
+ valuesResult.push(...expressionResult.values);
16
+ result.push(expressionResult.query);
17
+ nextPosition += expressionResult.values.length;
12
18
  if (i < this.expressions.length - 1) {
13
19
  result.push(' or ');
14
20
  }
15
21
  }
16
22
  result.push(')');
17
- return result.join('');
23
+ return { query: result.join(''), values: valuesResult };
18
24
  };
19
25
  this.expressions = expressions;
20
26
  }
@@ -2,5 +2,8 @@ import Expr from './where';
2
2
  export default class RawWhere extends Expr {
3
3
  private custom;
4
4
  constructor(custom: string);
5
- toQuery: () => string;
5
+ toQuery: () => {
6
+ query: string;
7
+ values: Array<any>;
8
+ };
6
9
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const where_1 = require("./where");
4
5
  class RawWhere extends where_1.default {
5
6
  constructor(custom) {
6
7
  super();
7
8
  this.custom = custom;
8
- this.toQuery = () => this.custom;
9
+ this.toQuery = () => ({ query: this.custom, values: [] });
9
10
  }
10
11
  }
11
12
  exports.default = RawWhere;
@@ -4,5 +4,10 @@ import Expr from './where';
4
4
  export default class Var<T extends AbstractColumn<ColumnType<any>, boolean, boolean>> extends Expr {
5
5
  private column;
6
6
  constructor(column: T);
7
- toQuery: () => string;
7
+ toQuery: (postition?: number | undefined, tableCache?: {
8
+ [tableName: string]: string;
9
+ } | undefined) => {
10
+ query: string;
11
+ values: Array<any>;
12
+ };
8
13
  }
@@ -5,7 +5,10 @@ const where_1 = require("./where");
5
5
  class Var extends where_1.default {
6
6
  constructor(column) {
7
7
  super();
8
- this.toQuery = () => `${this.column.getParentName()}.${ecranate_1.ecranate(this.column.getColumnName())}`;
8
+ this.toQuery = (postition, tableCache) => {
9
+ const tableName = tableCache && tableCache[this.column.getParentName()] ? tableCache[this.column.getParentName()] : this.column.getParentName();
10
+ return { query: `${tableName}.${ecranate_1.ecranate(this.column.getColumnName())}`, values: [] };
11
+ };
9
12
  this.column = column;
10
13
  }
11
14
  }
@@ -1,3 +1,8 @@
1
1
  export default abstract class Expr {
2
- abstract toQuery(): string;
2
+ abstract toQuery(position?: number, tableCache?: {
3
+ [tableName: string]: string;
4
+ }): {
5
+ query: string;
6
+ values: Array<any>;
7
+ };
3
8
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-classes-per-file */
3
4
  class Expr {
4
5
  }
5
6
  exports.default = Expr;
@@ -5,7 +5,7 @@ class PgEnum extends columnType_1.default {
5
5
  constructor(dbName) {
6
6
  super();
7
7
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${value}'`;
8
+ this.insertStrategy = (value) => `${value}`;
9
9
  this.dbName = dbName;
10
10
  }
11
11
  selectStrategy(value) {
@@ -4,5 +4,5 @@ export default class PgInteger extends ColumnType<number> {
4
4
  constructor();
5
5
  getDbName: () => string;
6
6
  insertStrategy: (value: number) => string;
7
- selectStrategy(value: string): number | undefined;
7
+ selectStrategy(value: number): number | undefined;
8
8
  }
@@ -9,7 +9,7 @@ class PgInteger extends columnType_1.default {
9
9
  this.dbName = 'INT';
10
10
  }
11
11
  selectStrategy(value) {
12
- return value ? parseInt(value, 10) : undefined;
12
+ return value;
13
13
  }
14
14
  }
15
15
  exports.default = PgInteger;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-len */
3
4
  const columnType_1 = require("./columnType");
4
5
  class PgJsonb extends columnType_1.default {
5
6
  constructor() {
6
7
  super();
7
8
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${JSON.stringify(value).replace(/'/g, "''")}'::jsonb`;
9
+ // public insertStrategy = (value: TCodeType): string => `'${JSON.stringify(value).replace(/'/g, "''")}'::jsonb`;
10
+ this.insertStrategy = (value) => `${JSON.stringify(value).replace(/'/g, "''")}`;
9
11
  this.dbName = 'JSONB';
10
12
  }
11
13
  selectStrategy(value) {
@@ -4,5 +4,5 @@ export default class PgSerial extends ColumnType<number> {
4
4
  constructor();
5
5
  getDbName: () => string;
6
6
  insertStrategy: (value: number) => string;
7
- selectStrategy(value: string): number | undefined;
7
+ selectStrategy(value: number): number | undefined;
8
8
  }
@@ -9,7 +9,7 @@ class PgSerial extends columnType_1.default {
9
9
  this.dbName = 'SERIAL';
10
10
  }
11
11
  selectStrategy(value) {
12
- return value ? parseInt(value, 10) : undefined;
12
+ return value;
13
13
  }
14
14
  }
15
15
  exports.default = PgSerial;
@@ -4,5 +4,5 @@ export default class PgSmallInt extends ColumnType<number> {
4
4
  constructor();
5
5
  getDbName: () => string;
6
6
  insertStrategy: (value: number) => string;
7
- selectStrategy(value: string): number | undefined;
7
+ selectStrategy(value: number): number | undefined;
8
8
  }
@@ -9,7 +9,7 @@ class PgSmallInt extends columnType_1.default {
9
9
  this.dbName = 'SMALLINT';
10
10
  }
11
11
  selectStrategy(value) {
12
- return value ? parseInt(value, 10) : undefined;
12
+ return value;
13
13
  }
14
14
  }
15
15
  exports.default = PgSmallInt;
@@ -5,7 +5,7 @@ class PgText extends columnType_1.default {
5
5
  constructor() {
6
6
  super();
7
7
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${value.replace(/'/g, "''")}'`;
8
+ this.insertStrategy = (value) => `${value.replace(/'/g, "''")}`;
9
9
  this.dbName = 'TEXT';
10
10
  }
11
11
  selectStrategy(value) {
@@ -5,7 +5,7 @@ class PgTimestamp extends columnType_1.default {
5
5
  constructor() {
6
6
  super();
7
7
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${value.toISOString()}'`;
8
+ this.insertStrategy = (value) => `${value.toISOString()}`;
9
9
  this.dbName = 'timestamp without time zone';
10
10
  }
11
11
  selectStrategy(value) {
@@ -5,7 +5,7 @@ class PgTimestamptz extends columnType_1.default {
5
5
  constructor() {
6
6
  super();
7
7
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${value.toISOString()}'`;
8
+ this.insertStrategy = (value) => `${value.toISOString()}`;
9
9
  this.dbName = 'timestamp with time zone';
10
10
  }
11
11
  selectStrategy(value) {
@@ -5,7 +5,7 @@ class PgVarChar extends columnType_1.default {
5
5
  constructor(size) {
6
6
  super();
7
7
  this.getDbName = () => this.dbName;
8
- this.insertStrategy = (value) => `'${value.replace(/'/g, "''")}'`;
8
+ this.insertStrategy = (value) => `${value.replace(/'/g, "''")}`;
9
9
  this.size = size;
10
10
  if (size) {
11
11
  this.dbName = `character varying(${size})`;