@sqb/builder 4.0.1-beta.43 → 4.0.1-beta.48

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 (70) hide show
  1. package/dist/Serializable.d.ts +2 -36
  2. package/dist/Serializable.js +1 -167
  3. package/dist/SerializeContext.d.ts +47 -0
  4. package/dist/SerializeContext.js +138 -0
  5. package/dist/classes.d.ts +2 -2
  6. package/dist/classes.js +2 -2
  7. package/dist/enums.d.ts +2 -1
  8. package/dist/enums.js +1 -0
  9. package/dist/helpers.d.ts +4 -0
  10. package/dist/helpers.js +31 -0
  11. package/dist/index.d.ts +4 -3
  12. package/dist/index.js +5 -7
  13. package/dist/query/DeleteQuery.d.ts +1 -1
  14. package/dist/query/DeleteQuery.js +1 -2
  15. package/dist/query/InsertQuery.d.ts +1 -1
  16. package/dist/query/InsertQuery.js +5 -5
  17. package/dist/query/Query.js +2 -1
  18. package/dist/query/ReturningQuery.d.ts +1 -1
  19. package/dist/query/ReturningQuery.js +3 -3
  20. package/dist/query/SelectQuery.d.ts +1 -1
  21. package/dist/query/SelectQuery.js +12 -12
  22. package/dist/query/UpdateQuery.d.ts +1 -1
  23. package/dist/query/UpdateQuery.js +6 -5
  24. package/dist/sql-objects/BaseField.d.ts +7 -0
  25. package/dist/sql-objects/{Column.js → BaseField.js} +4 -4
  26. package/dist/sql-objects/CaseStatement.d.ts +1 -1
  27. package/dist/sql-objects/CaseStatement.js +3 -3
  28. package/dist/sql-objects/CountStatement.d.ts +1 -1
  29. package/dist/sql-objects/CountStatement.js +1 -1
  30. package/dist/sql-objects/Expression.d.ts +7 -0
  31. package/dist/sql-objects/Expression.js +7 -0
  32. package/dist/sql-objects/FieldExpression.d.ts +14 -0
  33. package/dist/sql-objects/{SelectColumn.js → FieldExpression.js} +21 -11
  34. package/dist/sql-objects/GroupColumn.d.ts +3 -3
  35. package/dist/sql-objects/GroupColumn.js +4 -5
  36. package/dist/sql-objects/JoinStatement.d.ts +2 -2
  37. package/dist/sql-objects/JoinStatement.js +2 -2
  38. package/dist/sql-objects/OrderColumn.d.ts +3 -3
  39. package/dist/sql-objects/OrderColumn.js +4 -5
  40. package/dist/sql-objects/ParamExpression.d.ts +1 -1
  41. package/dist/sql-objects/ParamExpression.js +1 -1
  42. package/dist/sql-objects/RawStatement.d.ts +1 -1
  43. package/dist/sql-objects/RawStatement.js +1 -1
  44. package/dist/sql-objects/ReturningColumn.d.ts +3 -3
  45. package/dist/sql-objects/ReturningColumn.js +5 -6
  46. package/dist/sql-objects/TableName.d.ts +1 -1
  47. package/dist/sql-objects/TableName.js +1 -1
  48. package/dist/sql-objects/operators/CompOperator.d.ts +5 -4
  49. package/dist/sql-objects/operators/CompOperator.js +54 -34
  50. package/dist/sql-objects/operators/LogicalOperator.d.ts +1 -1
  51. package/dist/sql-objects/operators/LogicalOperator.js +3 -3
  52. package/dist/sql-objects/operators/OpBetween.d.ts +2 -2
  53. package/dist/sql-objects/operators/OpBetween.js +17 -5
  54. package/dist/sql-objects/operators/OpExists.d.ts +2 -1
  55. package/dist/sql-objects/operators/OpExists.js +12 -1
  56. package/dist/sql-objects/operators/OpIn.d.ts +2 -1
  57. package/dist/sql-objects/operators/OpIn.js +3 -3
  58. package/dist/sql-objects/operators/OpLike.d.ts +1 -1
  59. package/dist/sql-objects/operators/OpLike.js +3 -4
  60. package/dist/sql-objects/operators/OpNotBetween.d.ts +0 -2
  61. package/dist/sql-objects/operators/OpNotBetween.js +2 -2
  62. package/dist/sql-objects/operators/OpNotILike.d.ts +2 -2
  63. package/dist/sql-objects/operators/OpNotILike.js +2 -2
  64. package/dist/sqlobject.initializers.d.ts +7 -0
  65. package/dist/sqlobject.initializers.js +8 -1
  66. package/dist/typeguards.d.ts +2 -2
  67. package/dist/types.d.ts +4 -13
  68. package/package.json +1 -1
  69. package/dist/sql-objects/Column.d.ts +0 -7
  70. package/dist/sql-objects/SelectColumn.d.ts +0 -9
@@ -1,6 +1,5 @@
1
- import { DefaultSerializeFunction, SerializeContext } from './types';
2
- import { SerializationType } from './enums';
3
- export declare const ReservedWords: string[];
1
+ import type { SerializationType } from './enums';
2
+ import type { SerializeContext } from './SerializeContext';
4
3
  export declare abstract class Serializable {
5
4
  abstract _type: SerializationType;
6
5
  /**
@@ -8,36 +7,3 @@ export declare abstract class Serializable {
8
7
  */
9
8
  abstract _serialize(ctx: SerializeContext): string;
10
9
  }
11
- /**
12
- * Performs a fallback mechanism, tries hook functions, extension than default function to serialize
13
- */
14
- export declare function serializeFallback(ctx: SerializeContext, type: string, o: any, defFn: DefaultSerializeFunction): string;
15
- /**
16
- * Serializes object
17
- */
18
- export declare function serializeObject(ctx: any, v: any): string;
19
- /**
20
- *
21
- */
22
- export declare function serializeStringValue(val: string): string;
23
- /**
24
- *
25
- */
26
- export declare function serializeBooleanValue(val: any): string;
27
- /**
28
- *
29
- */
30
- export declare function serializeNumberValue(val: any): string;
31
- /**
32
- *
33
- */
34
- export declare function serializeDateValue(date: Date): string;
35
- /**
36
- * Prints array with line feeding
37
- */
38
- export declare function printArray(arr: string[], sep?: string, lfLen?: number): string;
39
- /**
40
- * Check if a string value is a reserved word
41
- */
42
- export declare function isReservedWord(ctx: SerializeContext, s: string | undefined | null): boolean;
43
- export declare function escapeReserved(ctx: SerializeContext, s: string | undefined | null): string;
@@ -1,172 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.escapeReserved = exports.isReservedWord = exports.printArray = exports.serializeDateValue = exports.serializeNumberValue = exports.serializeBooleanValue = exports.serializeStringValue = exports.serializeObject = exports.serializeFallback = exports.Serializable = exports.ReservedWords = void 0;
4
- const enums_1 = require("./enums");
5
- const extensions_1 = require("./extensions");
6
- exports.ReservedWords = [
7
- 'schema', 'table', 'field', 'index', 'foreign', 'key',
8
- 'select', 'insert', 'update', 'delete', 'with', 'merge',
9
- 'join', 'inner', 'outer', 'left', 'right', 'full',
10
- 'from', 'where', 'order', 'by', 'group', 'having',
11
- 'acs', 'ascending', 'dsc', 'descending', 'distinct',
12
- 'and', 'or', 'not', 'between', 'null', 'like', 'ilike',
13
- 'count', 'sum', 'average', 'avg', 'cascade', 'authorization',
14
- 'create', 'add', 'drop', 'alter', 'index', 'private', 'sequence',
15
- 'default', 'constraint', 'references', 'primary', 'foreign',
16
- 'user', 'password'
17
- ];
3
+ exports.Serializable = void 0;
18
4
  class Serializable {
19
5
  }
20
6
  exports.Serializable = Serializable;
21
- /**
22
- * Performs a fallback mechanism, tries hook functions, extension than default function to serialize
23
- */
24
- function serializeFallback(ctx, type, o, defFn) {
25
- if (ctx.serializeHooks) {
26
- for (const hook of ctx.serializeHooks) {
27
- const s = hook(ctx, type, o, defFn);
28
- if (s != null)
29
- return s;
30
- }
31
- }
32
- for (const ext of extensions_1.serializers) {
33
- if (ext.dialect === ctx.dialect && ext.serialize) {
34
- const s = ext.serialize(ctx, type, o, defFn);
35
- if (s != null)
36
- return s;
37
- }
38
- }
39
- return defFn(ctx, o);
40
- }
41
- exports.serializeFallback = serializeFallback;
42
- /**
43
- * Serializes object
44
- */
45
- function serializeObject(ctx, v) {
46
- if (v == null)
47
- return 'null';
48
- if (Array.isArray(v)) {
49
- let s = '';
50
- for (const [i, t] of v.entries()) {
51
- s += (i ? ',' : '') + serializeObject(ctx, t);
52
- }
53
- return '(' + s + ')';
54
- }
55
- if (typeof v === 'object') {
56
- if (v.isSerializable) {
57
- const s = v._serialize(ctx);
58
- return s ? (v.isQuery ? '(' + s + ')' : s) :
59
- /* istanbul ignore next */
60
- 'null';
61
- }
62
- if (v instanceof Date) {
63
- return serializeFallback(ctx, enums_1.SerializationType.DATE_VALUE, v, () => serializeDateValue(v));
64
- }
65
- }
66
- if (typeof v === 'string') {
67
- return serializeFallback(ctx, enums_1.SerializationType.STRING_VALUE, v, () => serializeStringValue(v));
68
- }
69
- if (typeof v === 'boolean') {
70
- return serializeFallback(ctx, enums_1.SerializationType.BOOLEAN_VALUE, v, () => serializeBooleanValue(v));
71
- }
72
- if (typeof v === 'number') {
73
- return serializeFallback(ctx, enums_1.SerializationType.NUMBER_VALUE, v, () => serializeNumberValue(v));
74
- }
75
- if (v instanceof Serializable)
76
- return v._serialize(ctx);
77
- return v;
78
- }
79
- exports.serializeObject = serializeObject;
80
- /**
81
- *
82
- */
83
- function serializeStringValue(val) {
84
- return '\'' + String(val).replace(/'/g, '\'\'') + '\'';
85
- }
86
- exports.serializeStringValue = serializeStringValue;
87
- /**
88
- *
89
- */
90
- function serializeBooleanValue(val) {
91
- return val ? 'true' : 'false';
92
- }
93
- exports.serializeBooleanValue = serializeBooleanValue;
94
- /**
95
- *
96
- */
97
- function serializeNumberValue(val) {
98
- return '' + val;
99
- }
100
- exports.serializeNumberValue = serializeNumberValue;
101
- /**
102
- *
103
- */
104
- function serializeDateValue(date) {
105
- const d = date.getUTCDate();
106
- const m = date.getUTCMonth() + 1;
107
- const y = date.getUTCFullYear();
108
- const h = date.getUTCHours();
109
- const n = date.getUTCMinutes();
110
- const s = date.getUTCSeconds();
111
- let str = y + '-' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
112
- /* istanbul ignore else */
113
- if (h + n + s)
114
- str += ' ' + (h <= 9 ? '0' + h : h) + ':' +
115
- (n <= 9 ? '0' + n : n) + ':' +
116
- (s <= 9 ? '0' + s : s);
117
- return '\'' + str + '\'';
118
- }
119
- exports.serializeDateValue = serializeDateValue;
120
- /**
121
- * Prints array with line feeding
122
- */
123
- function printArray(arr, sep, lfLen) {
124
- let out = '';
125
- let line = '';
126
- let k = 0;
127
- lfLen = lfLen || 60;
128
- sep = sep || ',';
129
- for (const s of arr) {
130
- /* istanbul ignore next */
131
- if (s === undefined)
132
- continue;
133
- line += (k > 0 ? sep : '');
134
- if (line.length > lfLen) {
135
- out += (out ? '\n' : '') + line;
136
- line = '';
137
- }
138
- else
139
- line += line ? ' ' : '';
140
- line += s;
141
- k++;
142
- }
143
- if (line)
144
- out += (out ? '\n' : '') + line;
145
- return out;
146
- }
147
- exports.printArray = printArray;
148
- /**
149
- * Check if a string value is a reserved word
150
- */
151
- function isReservedWord(ctx, s) {
152
- if (!s)
153
- return false;
154
- if (exports.ReservedWords.includes(s.toLowerCase()))
155
- return true;
156
- for (const ext of extensions_1.serializers) {
157
- if (ext.dialect === ctx.dialect && ext.isReservedWord) {
158
- if (ext.isReservedWord(ctx, s))
159
- return true;
160
- }
161
- }
162
- return false;
163
- }
164
- exports.isReservedWord = isReservedWord;
165
- function escapeReserved(ctx, s) {
166
- if (!s)
167
- return '';
168
- if (isReservedWord(ctx, s))
169
- return '"' + s + '"';
170
- return s;
171
- }
172
- exports.escapeReserved = escapeReserved;
@@ -0,0 +1,47 @@
1
+ import { DefaultSerializeFunction, GenerateOptions, ParamOptions } from './types';
2
+ export declare class SerializeContext implements GenerateOptions {
3
+ readonly reservedWords: string[];
4
+ dialect?: string;
5
+ prettyPrint?: boolean;
6
+ params?: Record<string, any>;
7
+ dialectVersion?: string;
8
+ strictParams?: boolean;
9
+ serializeHooks?: Function[];
10
+ paramOptions?: Record<string, ParamOptions> | ParamOptions[];
11
+ preparedParams?: Record<string, any> | any[];
12
+ returningFields?: {
13
+ field: string;
14
+ alias?: string;
15
+ }[];
16
+ strictParamGenId?: number;
17
+ constructor(opts?: GenerateOptions);
18
+ /**
19
+ * Performs a fallback mechanism, tries hook functions, extensions than default function to serialize
20
+ */
21
+ serialize(type: string, o: any, fallback: DefaultSerializeFunction): string;
22
+ /**
23
+ * Serializes object
24
+ */
25
+ anyToSQL(v: any): string;
26
+ /**
27
+ *
28
+ */
29
+ stringToSQL(val: string): string;
30
+ /**
31
+ *
32
+ */
33
+ booleanToSQL(val: any): string;
34
+ /**
35
+ *
36
+ */
37
+ numberToSQL(val: any): string;
38
+ /**
39
+ *
40
+ */
41
+ dateToSQL(date: Date): string;
42
+ /**
43
+ * Check if a string value is a reserved word
44
+ */
45
+ isReservedWord(s: string | undefined | null): boolean;
46
+ escapeReserved(s: string | undefined | null): string;
47
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializeContext = void 0;
4
+ const enums_1 = require("./enums");
5
+ const Serializable_1 = require("./Serializable");
6
+ const extensions_1 = require("./extensions");
7
+ class SerializeContext {
8
+ constructor(opts) {
9
+ this.reservedWords = [
10
+ 'schema', 'table', 'field', 'index', 'foreign', 'key',
11
+ 'select', 'insert', 'update', 'delete', 'with', 'merge',
12
+ 'join', 'inner', 'outer', 'left', 'right', 'full',
13
+ 'from', 'where', 'order', 'by', 'group', 'having',
14
+ 'acs', 'ascending', 'dsc', 'descending', 'distinct',
15
+ 'and', 'or', 'not', 'between', 'null', 'like', 'ilike',
16
+ 'count', 'sum', 'average', 'avg', 'cascade', 'authorization',
17
+ 'create', 'add', 'drop', 'alter', 'index', 'private', 'sequence',
18
+ 'default', 'constraint', 'references', 'primary', 'foreign',
19
+ 'user', 'password'
20
+ ];
21
+ if (opts)
22
+ Object.assign(this, opts);
23
+ }
24
+ /**
25
+ * Performs a fallback mechanism, tries hook functions, extensions than default function to serialize
26
+ */
27
+ serialize(type, o, fallback) {
28
+ if (this.serializeHooks) {
29
+ for (const hook of this.serializeHooks) {
30
+ const s = hook(this, type, o, fallback);
31
+ if (s != null)
32
+ return s;
33
+ }
34
+ }
35
+ for (const ext of extensions_1.serializers) {
36
+ if (ext.dialect === this.dialect && ext.serialize) {
37
+ const s = ext.serialize(this, type, o, fallback);
38
+ if (s != null)
39
+ return s;
40
+ }
41
+ }
42
+ return fallback(this, o);
43
+ }
44
+ /**
45
+ * Serializes object
46
+ */
47
+ anyToSQL(v) {
48
+ if (v == null)
49
+ return 'null';
50
+ if (Array.isArray(v)) {
51
+ const vv = v.map(x => this.anyToSQL(x));
52
+ return this.serialize(enums_1.SerializationType.ARRAY, vv, () => '(' + v.join(',')) + ')';
53
+ }
54
+ if (typeof v === 'object') {
55
+ if (v.isSerializable) {
56
+ const s = v._serialize(this);
57
+ return s ? (v.isQuery ? '(' + s + ')' : s) :
58
+ /* istanbul ignore next */
59
+ 'null';
60
+ }
61
+ if (v instanceof Date) {
62
+ return this.serialize(enums_1.SerializationType.DATE_VALUE, v, () => this.dateToSQL(v));
63
+ }
64
+ }
65
+ if (typeof v === 'string') {
66
+ return this.serialize(enums_1.SerializationType.STRING_VALUE, v, () => this.stringToSQL(v));
67
+ }
68
+ if (typeof v === 'boolean') {
69
+ return this.serialize(enums_1.SerializationType.BOOLEAN_VALUE, v, () => this.booleanToSQL(v));
70
+ }
71
+ if (typeof v === 'number') {
72
+ return this.serialize(enums_1.SerializationType.NUMBER_VALUE, v, () => this.numberToSQL(v));
73
+ }
74
+ if (v instanceof Serializable_1.Serializable)
75
+ return v._serialize(this);
76
+ return v;
77
+ }
78
+ /**
79
+ *
80
+ */
81
+ stringToSQL(val) {
82
+ return '\'' + String(val).replace(/'/g, '\'\'') + '\'';
83
+ }
84
+ /**
85
+ *
86
+ */
87
+ booleanToSQL(val) {
88
+ return val ? 'true' : 'false';
89
+ }
90
+ /**
91
+ *
92
+ */
93
+ numberToSQL(val) {
94
+ return '' + val;
95
+ }
96
+ /**
97
+ *
98
+ */
99
+ dateToSQL(date) {
100
+ const d = date.getUTCDate();
101
+ const m = date.getUTCMonth() + 1;
102
+ const y = date.getUTCFullYear();
103
+ const h = date.getUTCHours();
104
+ const n = date.getUTCMinutes();
105
+ const s = date.getUTCSeconds();
106
+ let str = y + '-' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
107
+ /* istanbul ignore else */
108
+ if (h + n + s)
109
+ str += ' ' + (h <= 9 ? '0' + h : h) + ':' +
110
+ (n <= 9 ? '0' + n : n) + ':' +
111
+ (s <= 9 ? '0' + s : s);
112
+ return '\'' + str + '\'';
113
+ }
114
+ /**
115
+ * Check if a string value is a reserved word
116
+ */
117
+ isReservedWord(s) {
118
+ if (!s)
119
+ return false;
120
+ if (this.reservedWords.includes(s.toLowerCase()))
121
+ return true;
122
+ for (const ext of extensions_1.serializers) {
123
+ if (ext.dialect === this.dialect && ext.isReservedWord) {
124
+ if (ext.isReservedWord(this, s))
125
+ return true;
126
+ }
127
+ }
128
+ return false;
129
+ }
130
+ escapeReserved(s) {
131
+ if (!s)
132
+ return '';
133
+ if (this.isReservedWord(s))
134
+ return '"' + s + '"';
135
+ return s;
136
+ }
137
+ }
138
+ exports.SerializeContext = SerializeContext;
package/dist/classes.d.ts CHANGED
@@ -4,11 +4,11 @@ export * from './query/SelectQuery';
4
4
  export * from './query/InsertQuery';
5
5
  export * from './query/UpdateQuery';
6
6
  export * from './query/DeleteQuery';
7
- export * from './sql-objects/SelectColumn';
7
+ export * from './sql-objects/FieldExpression';
8
8
  export * from './sql-objects/TableName';
9
9
  export * from './sql-objects/OrderColumn';
10
10
  export * from './sql-objects/GroupColumn';
11
- export * from './sql-objects/Column';
11
+ export * from './sql-objects/BaseField';
12
12
  export * from './sql-objects/Operator';
13
13
  export * from './sql-objects/CaseStatement';
14
14
  export * from './sql-objects/JoinStatement';
package/dist/classes.js CHANGED
@@ -16,11 +16,11 @@ __exportStar(require("./query/SelectQuery"), exports);
16
16
  __exportStar(require("./query/InsertQuery"), exports);
17
17
  __exportStar(require("./query/UpdateQuery"), exports);
18
18
  __exportStar(require("./query/DeleteQuery"), exports);
19
- __exportStar(require("./sql-objects/SelectColumn"), exports);
19
+ __exportStar(require("./sql-objects/FieldExpression"), exports);
20
20
  __exportStar(require("./sql-objects/TableName"), exports);
21
21
  __exportStar(require("./sql-objects/OrderColumn"), exports);
22
22
  __exportStar(require("./sql-objects/GroupColumn"), exports);
23
- __exportStar(require("./sql-objects/Column"), exports);
23
+ __exportStar(require("./sql-objects/BaseField"), exports);
24
24
  __exportStar(require("./sql-objects/Operator"), exports);
25
25
  __exportStar(require("./sql-objects/CaseStatement"), exports);
26
26
  __exportStar(require("./sql-objects/JoinStatement"), exports);
package/dist/enums.d.ts CHANGED
@@ -38,7 +38,8 @@ export declare enum SerializationType {
38
38
  STRING_VALUE = "string_value",
39
39
  BOOLEAN_VALUE = "boolean_value",
40
40
  NUMBER_VALUE = "number_value",
41
- EXTERNAL_PARAMETER = "external_parameter"
41
+ EXTERNAL_PARAMETER = "external_parameter",
42
+ ARRAY = "array"
42
43
  }
43
44
  export declare enum OperatorType {
44
45
  and = "and",
package/dist/enums.js CHANGED
@@ -44,6 +44,7 @@ var SerializationType;
44
44
  SerializationType["BOOLEAN_VALUE"] = "boolean_value";
45
45
  SerializationType["NUMBER_VALUE"] = "number_value";
46
46
  SerializationType["EXTERNAL_PARAMETER"] = "external_parameter";
47
+ SerializationType["ARRAY"] = "array";
47
48
  })(SerializationType = exports.SerializationType || (exports.SerializationType = {}));
48
49
  var OperatorType;
49
50
  (function (OperatorType) {
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Prints array with line feeding
3
+ */
4
+ export declare function printArray(arr: string[], sep?: string, lfLen?: number): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printArray = void 0;
4
+ /**
5
+ * Prints array with line feeding
6
+ */
7
+ function printArray(arr, sep, lfLen) {
8
+ let out = '';
9
+ let line = '';
10
+ let k = 0;
11
+ lfLen = lfLen || 60;
12
+ sep = sep || ',';
13
+ for (const s of arr) {
14
+ /* istanbul ignore next */
15
+ if (s === undefined)
16
+ continue;
17
+ line += (k > 0 ? sep : '');
18
+ if (line.length > lfLen) {
19
+ out += (out ? '\n' : '') + line;
20
+ line = '';
21
+ }
22
+ else
23
+ line += line ? ' ' : '';
24
+ line += s;
25
+ k++;
26
+ }
27
+ if (line)
28
+ out += (out ? '\n' : '') + line;
29
+ return out;
30
+ }
31
+ exports.printArray = printArray;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { registerSerializer, unRegisterSerializer } from './extensions';
2
- export { escapeReserved, isReservedWord, printArray } from './Serializable';
2
+ export * from './helpers';
3
3
  export * from './Serializable';
4
+ export * from './SerializeContext';
4
5
  export * from './query/Query';
5
6
  export * from './query/SelectQuery';
6
7
  export * from './query/InsertQuery';
@@ -10,10 +11,10 @@ export * from './sql-objects/Operator';
10
11
  export * from './sql-objects/operators/LogicalOperator';
11
12
  export * from './sql-objects/operators/CompOperator';
12
13
  export * from './sql-objects/JoinStatement';
13
- export * as classes from './classes';
14
14
  export * from './types';
15
15
  export * from './enums';
16
16
  export * from './sqlobject.initializers';
17
17
  export * from './op.initializers';
18
- export { op } from './op.initializers';
19
18
  export * from './typeguards';
19
+ export { op } from './op.initializers';
20
+ export * as classes from './classes';
package/dist/index.js CHANGED
@@ -22,15 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  return result;
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.op = exports.classes = exports.printArray = exports.isReservedWord = exports.escapeReserved = exports.unRegisterSerializer = exports.registerSerializer = void 0;
25
+ exports.classes = exports.op = exports.unRegisterSerializer = exports.registerSerializer = void 0;
26
26
  var extensions_1 = require("./extensions");
27
27
  Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return extensions_1.registerSerializer; } });
28
28
  Object.defineProperty(exports, "unRegisterSerializer", { enumerable: true, get: function () { return extensions_1.unRegisterSerializer; } });
29
- var Serializable_1 = require("./Serializable");
30
- Object.defineProperty(exports, "escapeReserved", { enumerable: true, get: function () { return Serializable_1.escapeReserved; } });
31
- Object.defineProperty(exports, "isReservedWord", { enumerable: true, get: function () { return Serializable_1.isReservedWord; } });
32
- Object.defineProperty(exports, "printArray", { enumerable: true, get: function () { return Serializable_1.printArray; } });
29
+ __exportStar(require("./helpers"), exports);
33
30
  __exportStar(require("./Serializable"), exports);
31
+ __exportStar(require("./SerializeContext"), exports);
34
32
  __exportStar(require("./query/Query"), exports);
35
33
  __exportStar(require("./query/SelectQuery"), exports);
36
34
  __exportStar(require("./query/InsertQuery"), exports);
@@ -40,11 +38,11 @@ __exportStar(require("./sql-objects/Operator"), exports);
40
38
  __exportStar(require("./sql-objects/operators/LogicalOperator"), exports);
41
39
  __exportStar(require("./sql-objects/operators/CompOperator"), exports);
42
40
  __exportStar(require("./sql-objects/JoinStatement"), exports);
43
- exports.classes = __importStar(require("./classes"));
44
41
  __exportStar(require("./types"), exports);
45
42
  __exportStar(require("./enums"), exports);
46
43
  __exportStar(require("./sqlobject.initializers"), exports);
47
44
  __exportStar(require("./op.initializers"), exports);
45
+ __exportStar(require("./typeguards"), exports);
48
46
  var op_initializers_1 = require("./op.initializers");
49
47
  Object.defineProperty(exports, "op", { enumerable: true, get: function () { return op_initializers_1.op; } });
50
- __exportStar(require("./typeguards"), exports);
48
+ exports.classes = __importStar(require("./classes"));
@@ -3,7 +3,7 @@ import { RawStatement } from '../sql-objects/RawStatement';
3
3
  import { SerializationType } from '../enums';
4
4
  import { TableName } from '../sql-objects/TableName';
5
5
  import { LogicalOperator } from '../sql-objects/operators/LogicalOperator';
6
- import { SerializeContext } from '../types';
6
+ import { SerializeContext } from '../SerializeContext';
7
7
  export declare class DeleteQuery extends Query {
8
8
  _table: TableName | RawStatement;
9
9
  _where?: LogicalOperator;
@@ -5,7 +5,6 @@ const Query_1 = require("./Query");
5
5
  const enums_1 = require("../enums");
6
6
  const TableName_1 = require("../sql-objects/TableName");
7
7
  const OpAnd_1 = require("../sql-objects/operators/OpAnd");
8
- const Serializable_1 = require("../Serializable");
9
8
  const typeguards_1 = require("../typeguards");
10
9
  class DeleteQuery extends Query_1.Query {
11
10
  constructor(tableName) {
@@ -45,7 +44,7 @@ class DeleteQuery extends Query_1.Query {
45
44
  if (!this._where)
46
45
  return '';
47
46
  const s = this._where._serialize(ctx);
48
- return (0, Serializable_1.serializeFallback)(ctx, enums_1.SerializationType.CONDITIONS_BLOCK, s, () => {
47
+ return ctx.serialize(enums_1.SerializationType.CONDITIONS_BLOCK, s, () => {
49
48
  /* istanbul ignore next */
50
49
  return s ? 'where ' + s : '';
51
50
  });
@@ -2,7 +2,7 @@ import { ReturningQuery } from './ReturningQuery';
2
2
  import { SerializationType } from '../enums';
3
3
  import { TableName } from '../sql-objects/TableName';
4
4
  import type { RawStatement } from '../sql-objects/RawStatement';
5
- import type { SerializeContext } from '../types';
5
+ import { SerializeContext } from '../SerializeContext';
6
6
  export declare class InsertQuery extends ReturningQuery {
7
7
  _table: TableName | RawStatement;
8
8
  _input: any;
@@ -4,8 +4,8 @@ exports.InsertQuery = void 0;
4
4
  const ReturningQuery_1 = require("./ReturningQuery");
5
5
  const enums_1 = require("../enums");
6
6
  const TableName_1 = require("../sql-objects/TableName");
7
- const Serializable_1 = require("../Serializable");
8
7
  const typeguards_1 = require("../typeguards");
8
+ const helpers_1 = require("../helpers");
9
9
  class InsertQuery extends ReturningQuery_1.ReturningQuery {
10
10
  constructor(tableName, input) {
11
11
  super();
@@ -55,7 +55,7 @@ class InsertQuery extends ReturningQuery_1.ReturningQuery {
55
55
  }
56
56
  else
57
57
  arr = Object.keys(this._input);
58
- return (0, Serializable_1.serializeFallback)(ctx, enums_1.SerializationType.INSERT_QUERY_COLUMNS, arr, () => (0, Serializable_1.printArray)(arr));
58
+ return ctx.serialize(enums_1.SerializationType.INSERT_QUERY_COLUMNS, arr, () => (0, helpers_1.printArray)(arr));
59
59
  }
60
60
  /**
61
61
  *
@@ -66,11 +66,11 @@ class InsertQuery extends ReturningQuery_1.ReturningQuery {
66
66
  const arr = [];
67
67
  const allValues = this._input;
68
68
  for (const n of Object.keys(allValues)) {
69
- const s = (0, Serializable_1.serializeObject)(ctx, allValues[n]);
69
+ const s = ctx.anyToSQL(allValues[n]);
70
70
  if (s)
71
- arr.push(s);
71
+ arr.push((0, typeguards_1.isSelectQuery)(allValues[n]) ? '(' + s + ')' : s);
72
72
  }
73
- return (0, Serializable_1.serializeFallback)(ctx, enums_1.SerializationType.INSERT_QUERY_VALUES, arr, () => (0, Serializable_1.printArray)(arr));
73
+ return ctx.serialize(enums_1.SerializationType.INSERT_QUERY_VALUES, arr, () => (0, helpers_1.printArray)(arr));
74
74
  }
75
75
  }
76
76
  exports.InsertQuery = InsertQuery;
@@ -8,6 +8,7 @@ const events_1 = require("events");
8
8
  const putil_merge_1 = __importDefault(require("putil-merge"));
9
9
  const putil_flattentext_1 = __importDefault(require("putil-flattentext"));
10
10
  const Serializable_1 = require("../Serializable");
11
+ const SerializeContext_1 = require("../SerializeContext");
11
12
  class Query extends Serializable_1.Serializable {
12
13
  constructor() {
13
14
  super();
@@ -17,7 +18,7 @@ class Query extends Serializable_1.Serializable {
17
18
  * Generates Sql script
18
19
  */
19
20
  generate(options) {
20
- const ctx = { ...options };
21
+ const ctx = new SerializeContext_1.SerializeContext(options);
21
22
  if (this._params)
22
23
  ctx.params = { ...ctx.params, ...this._params };
23
24
  ctx.serializeHooks = this.listeners('serialize');
@@ -1,6 +1,6 @@
1
1
  import { Query } from './Query';
2
- import { SerializeContext } from '../types';
3
2
  import { ReturningColumn } from '../sql-objects/ReturningColumn';
3
+ import { SerializeContext } from '../SerializeContext';
4
4
  export declare abstract class ReturningQuery extends Query {
5
5
  _returningColumns?: ReturningColumn[];
6
6
  /**