@sqb/builder 4.0.9 → 4.0.10

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 (105) hide show
  1. package/dist/Serializable.d.ts +9 -0
  2. package/dist/Serializable.js +6 -0
  3. package/dist/SerializeContext.d.ts +47 -0
  4. package/dist/SerializeContext.js +138 -0
  5. package/dist/classes.d.ts +38 -0
  6. package/dist/classes.js +41 -0
  7. package/dist/enums.d.ts +84 -0
  8. package/dist/enums.js +91 -0
  9. package/dist/extensions.d.ts +4 -0
  10. package/dist/extensions.js +16 -0
  11. package/dist/helpers.d.ts +4 -0
  12. package/dist/helpers.js +31 -0
  13. package/dist/index.d.ts +20 -0
  14. package/dist/index.js +27 -0
  15. package/dist/op.initializers.d.ts +86 -0
  16. package/dist/op.initializers.js +158 -0
  17. package/dist/query/DeleteQuery.d.ts +24 -0
  18. package/dist/query/DeleteQuery.js +53 -0
  19. package/dist/query/InsertQuery.d.ts +23 -0
  20. package/dist/query/InsertQuery.js +76 -0
  21. package/dist/query/Query.d.ts +15 -0
  22. package/dist/query/Query.js +40 -0
  23. package/dist/query/ReturningQuery.d.ts +14 -0
  24. package/dist/query/ReturningQuery.js +44 -0
  25. package/dist/query/SelectQuery.d.ts +90 -0
  26. package/dist/query/SelectQuery.js +283 -0
  27. package/dist/query/UpdateQuery.d.ts +29 -0
  28. package/dist/query/UpdateQuery.js +80 -0
  29. package/dist/sql-objects/BaseField.d.ts +7 -0
  30. package/dist/sql-objects/BaseField.js +11 -0
  31. package/dist/sql-objects/CaseStatement.d.ts +42 -0
  32. package/dist/sql-objects/CaseStatement.js +85 -0
  33. package/dist/sql-objects/CountStatement.d.ts +20 -0
  34. package/dist/sql-objects/CountStatement.js +34 -0
  35. package/dist/sql-objects/Expression.d.ts +7 -0
  36. package/dist/sql-objects/Expression.js +7 -0
  37. package/dist/sql-objects/FieldExpression.d.ts +14 -0
  38. package/dist/sql-objects/FieldExpression.js +53 -0
  39. package/dist/sql-objects/GroupColumn.d.ts +8 -0
  40. package/dist/sql-objects/GroupColumn.js +38 -0
  41. package/dist/sql-objects/JoinStatement.d.ts +17 -0
  42. package/dist/sql-objects/JoinStatement.js +81 -0
  43. package/dist/sql-objects/Operator.d.ts +5 -0
  44. package/dist/sql-objects/Operator.js +7 -0
  45. package/dist/sql-objects/OrderColumn.d.ts +9 -0
  46. package/dist/sql-objects/OrderColumn.js +42 -0
  47. package/dist/sql-objects/ParamExpression.d.ts +23 -0
  48. package/dist/sql-objects/ParamExpression.js +53 -0
  49. package/dist/sql-objects/RawStatement.d.ts +9 -0
  50. package/dist/sql-objects/RawStatement.js +18 -0
  51. package/dist/sql-objects/ReturningColumn.d.ts +9 -0
  52. package/dist/sql-objects/ReturningColumn.js +32 -0
  53. package/dist/sql-objects/TableName.d.ts +11 -0
  54. package/dist/sql-objects/TableName.js +31 -0
  55. package/dist/sql-objects/operators/CompOperator.d.ts +16 -0
  56. package/dist/sql-objects/operators/CompOperator.js +87 -0
  57. package/dist/sql-objects/operators/LogicalOperator.d.ts +16 -0
  58. package/dist/sql-objects/operators/LogicalOperator.js +83 -0
  59. package/dist/sql-objects/operators/OpAnd.d.ts +5 -0
  60. package/dist/sql-objects/operators/OpAnd.js +12 -0
  61. package/dist/sql-objects/operators/OpBetween.d.ts +11 -0
  62. package/dist/sql-objects/operators/OpBetween.js +35 -0
  63. package/dist/sql-objects/operators/OpEq.d.ts +8 -0
  64. package/dist/sql-objects/operators/OpEq.js +13 -0
  65. package/dist/sql-objects/operators/OpExists.d.ts +11 -0
  66. package/dist/sql-objects/operators/OpExists.js +30 -0
  67. package/dist/sql-objects/operators/OpGt.d.ts +8 -0
  68. package/dist/sql-objects/operators/OpGt.js +13 -0
  69. package/dist/sql-objects/operators/OpGte.d.ts +8 -0
  70. package/dist/sql-objects/operators/OpGte.js +13 -0
  71. package/dist/sql-objects/operators/OpILike.d.ts +6 -0
  72. package/dist/sql-objects/operators/OpILike.js +13 -0
  73. package/dist/sql-objects/operators/OpIn.d.ts +9 -0
  74. package/dist/sql-objects/operators/OpIn.js +19 -0
  75. package/dist/sql-objects/operators/OpIs.d.ts +8 -0
  76. package/dist/sql-objects/operators/OpIs.js +13 -0
  77. package/dist/sql-objects/operators/OpIsNot.d.ts +8 -0
  78. package/dist/sql-objects/operators/OpIsNot.js +13 -0
  79. package/dist/sql-objects/operators/OpLike.d.ts +10 -0
  80. package/dist/sql-objects/operators/OpLike.js +22 -0
  81. package/dist/sql-objects/operators/OpLt.d.ts +8 -0
  82. package/dist/sql-objects/operators/OpLt.js +13 -0
  83. package/dist/sql-objects/operators/OpLte.d.ts +8 -0
  84. package/dist/sql-objects/operators/OpLte.js +13 -0
  85. package/dist/sql-objects/operators/OpNe.d.ts +8 -0
  86. package/dist/sql-objects/operators/OpNe.js +13 -0
  87. package/dist/sql-objects/operators/OpNotBetween.d.ts +6 -0
  88. package/dist/sql-objects/operators/OpNotBetween.js +13 -0
  89. package/dist/sql-objects/operators/OpNotExists.d.ts +6 -0
  90. package/dist/sql-objects/operators/OpNotExists.js +13 -0
  91. package/dist/sql-objects/operators/OpNotILike.d.ts +6 -0
  92. package/dist/sql-objects/operators/OpNotILike.js +13 -0
  93. package/dist/sql-objects/operators/OpNotIn.d.ts +6 -0
  94. package/dist/sql-objects/operators/OpNotIn.js +13 -0
  95. package/dist/sql-objects/operators/OpNotLike.d.ts +6 -0
  96. package/dist/sql-objects/operators/OpNotLike.js +13 -0
  97. package/dist/sql-objects/operators/OpOr.d.ts +5 -0
  98. package/dist/sql-objects/operators/OpOr.js +12 -0
  99. package/dist/sqlobject.initializers.d.ts +39 -0
  100. package/dist/sqlobject.initializers.js +90 -0
  101. package/dist/typeguards.d.ts +34 -0
  102. package/dist/typeguards.js +73 -0
  103. package/dist/types.d.ts +33 -0
  104. package/dist/types.js +2 -0
  105. package/package.json +2 -2
@@ -0,0 +1,9 @@
1
+ import type { SerializationType } from './enums';
2
+ import type { SerializeContext } from './SerializeContext';
3
+ export declare abstract class Serializable {
4
+ abstract _type: SerializationType;
5
+ /**
6
+ * Performs serialization
7
+ */
8
+ abstract _serialize(ctx: SerializeContext): string;
9
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Serializable = void 0;
4
+ class Serializable {
5
+ }
6
+ exports.Serializable = Serializable;
@@ -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;
@@ -0,0 +1,38 @@
1
+ export * from './query/Query';
2
+ export * from './query/ReturningQuery';
3
+ export * from './query/SelectQuery';
4
+ export * from './query/InsertQuery';
5
+ export * from './query/UpdateQuery';
6
+ export * from './query/DeleteQuery';
7
+ export * from './sql-objects/FieldExpression';
8
+ export * from './sql-objects/TableName';
9
+ export * from './sql-objects/OrderColumn';
10
+ export * from './sql-objects/GroupColumn';
11
+ export * from './sql-objects/BaseField';
12
+ export * from './sql-objects/Operator';
13
+ export * from './sql-objects/CaseStatement';
14
+ export * from './sql-objects/JoinStatement';
15
+ export * from './sql-objects/RawStatement';
16
+ export * from './sql-objects/CountStatement';
17
+ export * from './sql-objects/operators/LogicalOperator';
18
+ export * from './sql-objects/operators/OpAnd';
19
+ export * from './sql-objects/operators/OpNotExists';
20
+ export * from './sql-objects/operators/OpExists';
21
+ export * from './sql-objects/operators/OpNotILike';
22
+ export * from './sql-objects/operators/OpNotLike';
23
+ export * from './sql-objects/operators/OpNotIn';
24
+ export * from './sql-objects/operators/OpNotBetween';
25
+ export * from './sql-objects/operators/OpNe';
26
+ export * from './sql-objects/operators/OpILike';
27
+ export * from './sql-objects/operators/OpLike';
28
+ export * from './sql-objects/operators/OpIsNot';
29
+ export * from './sql-objects/operators/OpIs';
30
+ export * from './sql-objects/operators/OpIn';
31
+ export * from './sql-objects/operators/OpBetween';
32
+ export * from './sql-objects/operators/OpLte';
33
+ export * from './sql-objects/operators/OpLt';
34
+ export * from './sql-objects/operators/OpGte';
35
+ export * from './sql-objects/operators/OpGt';
36
+ export * from './sql-objects/operators/OpEq';
37
+ export * from './sql-objects/operators/OpOr';
38
+ export * from './sql-objects/operators/CompOperator';
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./query/Query"), exports);
5
+ tslib_1.__exportStar(require("./query/ReturningQuery"), exports);
6
+ tslib_1.__exportStar(require("./query/SelectQuery"), exports);
7
+ tslib_1.__exportStar(require("./query/InsertQuery"), exports);
8
+ tslib_1.__exportStar(require("./query/UpdateQuery"), exports);
9
+ tslib_1.__exportStar(require("./query/DeleteQuery"), exports);
10
+ tslib_1.__exportStar(require("./sql-objects/FieldExpression"), exports);
11
+ tslib_1.__exportStar(require("./sql-objects/TableName"), exports);
12
+ tslib_1.__exportStar(require("./sql-objects/OrderColumn"), exports);
13
+ tslib_1.__exportStar(require("./sql-objects/GroupColumn"), exports);
14
+ tslib_1.__exportStar(require("./sql-objects/BaseField"), exports);
15
+ tslib_1.__exportStar(require("./sql-objects/Operator"), exports);
16
+ tslib_1.__exportStar(require("./sql-objects/CaseStatement"), exports);
17
+ tslib_1.__exportStar(require("./sql-objects/JoinStatement"), exports);
18
+ tslib_1.__exportStar(require("./sql-objects/RawStatement"), exports);
19
+ tslib_1.__exportStar(require("./sql-objects/CountStatement"), exports);
20
+ tslib_1.__exportStar(require("./sql-objects/operators/LogicalOperator"), exports);
21
+ tslib_1.__exportStar(require("./sql-objects/operators/OpAnd"), exports);
22
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNotExists"), exports);
23
+ tslib_1.__exportStar(require("./sql-objects/operators/OpExists"), exports);
24
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNotILike"), exports);
25
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNotLike"), exports);
26
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNotIn"), exports);
27
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNotBetween"), exports);
28
+ tslib_1.__exportStar(require("./sql-objects/operators/OpNe"), exports);
29
+ tslib_1.__exportStar(require("./sql-objects/operators/OpILike"), exports);
30
+ tslib_1.__exportStar(require("./sql-objects/operators/OpLike"), exports);
31
+ tslib_1.__exportStar(require("./sql-objects/operators/OpIsNot"), exports);
32
+ tslib_1.__exportStar(require("./sql-objects/operators/OpIs"), exports);
33
+ tslib_1.__exportStar(require("./sql-objects/operators/OpIn"), exports);
34
+ tslib_1.__exportStar(require("./sql-objects/operators/OpBetween"), exports);
35
+ tslib_1.__exportStar(require("./sql-objects/operators/OpLte"), exports);
36
+ tslib_1.__exportStar(require("./sql-objects/operators/OpLt"), exports);
37
+ tslib_1.__exportStar(require("./sql-objects/operators/OpGte"), exports);
38
+ tslib_1.__exportStar(require("./sql-objects/operators/OpGt"), exports);
39
+ tslib_1.__exportStar(require("./sql-objects/operators/OpEq"), exports);
40
+ tslib_1.__exportStar(require("./sql-objects/operators/OpOr"), exports);
41
+ tslib_1.__exportStar(require("./sql-objects/operators/CompOperator"), exports);
@@ -0,0 +1,84 @@
1
+ export declare enum JoinType {
2
+ INNER = "inner",
3
+ LEFT = "left",
4
+ LEFT_OUTER = "left outer",
5
+ RIGHT = "right",
6
+ RIGHT_OUTER = "right outer",
7
+ OUTER = "outer",
8
+ FULL_OUTER = "full outer"
9
+ }
10
+ export declare enum SerializationType {
11
+ SELECT_QUERY = "select_query",
12
+ SELECT_QUERY_COLUMNS = "select_query.columns",
13
+ SELECT_QUERY_FROM = "select_query.from",
14
+ SELECT_QUERY_JOIN = "select_query.join",
15
+ SELECT_QUERY_GROUPBY = "select_query.groupby",
16
+ SELECT_QUERY_ORDERBY = "select_query.orderby",
17
+ INSERT_QUERY = "insert_query",
18
+ INSERT_QUERY_COLUMNS = "insert_query.columns",
19
+ INSERT_QUERY_VALUES = "insert_query.values",
20
+ UPDATE_QUERY = "update_query",
21
+ UPDATE_QUERY_VALUES = "update_query.values",
22
+ DELETE_QUERY = "delete_query",
23
+ SELECT_COLUMN = "select_column",
24
+ GROUP_COLUMN = "group_column",
25
+ ORDER_COLUMN = "order_column",
26
+ RETURNING_COLUMN = "returning_column",
27
+ TABLE_NAME = "table_name",
28
+ JOIN = "join",
29
+ JOIN_CONDITIONS = "join_conditions",
30
+ RAW = "raw",
31
+ CASE_STATEMENT = "case_expression",
32
+ COUNT_STATEMENT = "count_expression",
33
+ CONDITIONS_BLOCK = "conditions_block",
34
+ COMPARISON_EXPRESSION = "comparison_expression",
35
+ LOGICAL_EXPRESSION = "logical_expression",
36
+ RETURNING_BLOCK = "returning_block",
37
+ DATE_VALUE = "date_value",
38
+ STRING_VALUE = "string_value",
39
+ BOOLEAN_VALUE = "boolean_value",
40
+ NUMBER_VALUE = "number_value",
41
+ EXTERNAL_PARAMETER = "external_parameter",
42
+ ARRAY = "array"
43
+ }
44
+ export declare enum OperatorType {
45
+ and = "and",
46
+ or = "or",
47
+ eq = "eq",
48
+ ne = "ne",
49
+ gt = "gt",
50
+ gte = "gte",
51
+ lt = "lt",
52
+ lte = "lte",
53
+ between = "between",
54
+ notBetween = "notBetween",
55
+ in = "in",
56
+ notIn = "notIn",
57
+ like = "like",
58
+ notLike = "nlike",
59
+ iLike = "iLike",
60
+ notILike = "nIlike",
61
+ is = "is",
62
+ isNot = "isNot",
63
+ exists = "exists",
64
+ notExists = "notExists"
65
+ }
66
+ export declare enum DataType {
67
+ BOOL = "BOOL",
68
+ CHAR = "CHAR",
69
+ VARCHAR = "VARCHAR",
70
+ SMALLINT = "SMALLINT",
71
+ INTEGER = "INTEGER",
72
+ BIGINT = "BIGINT",
73
+ FLOAT = "FLOAT",
74
+ DOUBLE = "DOUBLE",
75
+ NUMBER = "NUMBER",
76
+ DATE = "DATE",
77
+ TIMESTAMP = "TIMESTAMP",
78
+ TIMESTAMPTZ = "TIMESTAMPTZ",
79
+ TIME = "TIME",
80
+ BINARY = "BINARY",
81
+ TEXT = "TEXT",
82
+ GUID = "GUID",
83
+ JSON = "JSON"
84
+ }
package/dist/enums.js ADDED
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataType = exports.OperatorType = exports.SerializationType = exports.JoinType = void 0;
4
+ var JoinType;
5
+ (function (JoinType) {
6
+ JoinType["INNER"] = "inner";
7
+ JoinType["LEFT"] = "left";
8
+ JoinType["LEFT_OUTER"] = "left outer";
9
+ JoinType["RIGHT"] = "right";
10
+ JoinType["RIGHT_OUTER"] = "right outer";
11
+ JoinType["OUTER"] = "outer";
12
+ JoinType["FULL_OUTER"] = "full outer";
13
+ })(JoinType = exports.JoinType || (exports.JoinType = {}));
14
+ var SerializationType;
15
+ (function (SerializationType) {
16
+ SerializationType["SELECT_QUERY"] = "select_query";
17
+ SerializationType["SELECT_QUERY_COLUMNS"] = "select_query.columns";
18
+ SerializationType["SELECT_QUERY_FROM"] = "select_query.from";
19
+ SerializationType["SELECT_QUERY_JOIN"] = "select_query.join";
20
+ SerializationType["SELECT_QUERY_GROUPBY"] = "select_query.groupby";
21
+ SerializationType["SELECT_QUERY_ORDERBY"] = "select_query.orderby";
22
+ SerializationType["INSERT_QUERY"] = "insert_query";
23
+ SerializationType["INSERT_QUERY_COLUMNS"] = "insert_query.columns";
24
+ SerializationType["INSERT_QUERY_VALUES"] = "insert_query.values";
25
+ SerializationType["UPDATE_QUERY"] = "update_query";
26
+ SerializationType["UPDATE_QUERY_VALUES"] = "update_query.values";
27
+ SerializationType["DELETE_QUERY"] = "delete_query";
28
+ SerializationType["SELECT_COLUMN"] = "select_column";
29
+ SerializationType["GROUP_COLUMN"] = "group_column";
30
+ SerializationType["ORDER_COLUMN"] = "order_column";
31
+ SerializationType["RETURNING_COLUMN"] = "returning_column";
32
+ SerializationType["TABLE_NAME"] = "table_name";
33
+ SerializationType["JOIN"] = "join";
34
+ SerializationType["JOIN_CONDITIONS"] = "join_conditions";
35
+ SerializationType["RAW"] = "raw";
36
+ SerializationType["CASE_STATEMENT"] = "case_expression";
37
+ SerializationType["COUNT_STATEMENT"] = "count_expression";
38
+ SerializationType["CONDITIONS_BLOCK"] = "conditions_block";
39
+ SerializationType["COMPARISON_EXPRESSION"] = "comparison_expression";
40
+ SerializationType["LOGICAL_EXPRESSION"] = "logical_expression";
41
+ SerializationType["RETURNING_BLOCK"] = "returning_block";
42
+ SerializationType["DATE_VALUE"] = "date_value";
43
+ SerializationType["STRING_VALUE"] = "string_value";
44
+ SerializationType["BOOLEAN_VALUE"] = "boolean_value";
45
+ SerializationType["NUMBER_VALUE"] = "number_value";
46
+ SerializationType["EXTERNAL_PARAMETER"] = "external_parameter";
47
+ SerializationType["ARRAY"] = "array";
48
+ })(SerializationType = exports.SerializationType || (exports.SerializationType = {}));
49
+ var OperatorType;
50
+ (function (OperatorType) {
51
+ OperatorType["and"] = "and";
52
+ OperatorType["or"] = "or";
53
+ OperatorType["eq"] = "eq";
54
+ OperatorType["ne"] = "ne";
55
+ OperatorType["gt"] = "gt";
56
+ OperatorType["gte"] = "gte";
57
+ OperatorType["lt"] = "lt";
58
+ OperatorType["lte"] = "lte";
59
+ OperatorType["between"] = "between";
60
+ OperatorType["notBetween"] = "notBetween";
61
+ OperatorType["in"] = "in";
62
+ OperatorType["notIn"] = "notIn";
63
+ OperatorType["like"] = "like";
64
+ OperatorType["notLike"] = "nlike";
65
+ OperatorType["iLike"] = "iLike";
66
+ OperatorType["notILike"] = "nIlike";
67
+ OperatorType["is"] = "is";
68
+ OperatorType["isNot"] = "isNot";
69
+ OperatorType["exists"] = "exists";
70
+ OperatorType["notExists"] = "notExists";
71
+ })(OperatorType = exports.OperatorType || (exports.OperatorType = {}));
72
+ var DataType;
73
+ (function (DataType) {
74
+ DataType["BOOL"] = "BOOL";
75
+ DataType["CHAR"] = "CHAR";
76
+ DataType["VARCHAR"] = "VARCHAR";
77
+ DataType["SMALLINT"] = "SMALLINT";
78
+ DataType["INTEGER"] = "INTEGER";
79
+ DataType["BIGINT"] = "BIGINT";
80
+ DataType["FLOAT"] = "FLOAT";
81
+ DataType["DOUBLE"] = "DOUBLE";
82
+ DataType["NUMBER"] = "NUMBER";
83
+ DataType["DATE"] = "DATE";
84
+ DataType["TIMESTAMP"] = "TIMESTAMP";
85
+ DataType["TIMESTAMPTZ"] = "TIMESTAMPTZ";
86
+ DataType["TIME"] = "TIME";
87
+ DataType["BINARY"] = "BINARY";
88
+ DataType["TEXT"] = "TEXT";
89
+ DataType["GUID"] = "GUID";
90
+ DataType["JSON"] = "JSON";
91
+ })(DataType = exports.DataType || (exports.DataType = {}));
@@ -0,0 +1,4 @@
1
+ import { SerializerExtension } from './types';
2
+ export declare let serializers: SerializerExtension[];
3
+ export declare function registerSerializer(...extension: SerializerExtension[]): void;
4
+ export declare function unRegisterSerializer(...extension: SerializerExtension[]): void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unRegisterSerializer = exports.registerSerializer = exports.serializers = void 0;
4
+ exports.serializers = [];
5
+ function registerSerializer(...extension) {
6
+ for (const ext of extension) {
7
+ if (!ext.dialect)
8
+ throw new TypeError('A SerializerExtension must contain "dialect" property');
9
+ exports.serializers.push(ext);
10
+ }
11
+ }
12
+ exports.registerSerializer = registerSerializer;
13
+ function unRegisterSerializer(...extension) {
14
+ exports.serializers = exports.serializers.filter(x => !extension.includes(x));
15
+ }
16
+ exports.unRegisterSerializer = unRegisterSerializer;
@@ -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;
@@ -0,0 +1,20 @@
1
+ export { registerSerializer, unRegisterSerializer } from './extensions';
2
+ export * from './helpers';
3
+ export * from './Serializable';
4
+ export * from './SerializeContext';
5
+ export * from './query/Query';
6
+ export * from './query/SelectQuery';
7
+ export * from './query/InsertQuery';
8
+ export * from './query/UpdateQuery';
9
+ export * from './query/DeleteQuery';
10
+ export * from './sql-objects/Operator';
11
+ export * from './sql-objects/operators/LogicalOperator';
12
+ export * from './sql-objects/operators/CompOperator';
13
+ export * from './sql-objects/JoinStatement';
14
+ export * from './types';
15
+ export * from './enums';
16
+ export * from './sqlobject.initializers';
17
+ export * from './op.initializers';
18
+ export * from './typeguards';
19
+ export { op } from './op.initializers';
20
+ export * as classes from './classes';
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classes = exports.op = exports.unRegisterSerializer = exports.registerSerializer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var extensions_1 = require("./extensions");
6
+ Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return extensions_1.registerSerializer; } });
7
+ Object.defineProperty(exports, "unRegisterSerializer", { enumerable: true, get: function () { return extensions_1.unRegisterSerializer; } });
8
+ tslib_1.__exportStar(require("./helpers"), exports);
9
+ tslib_1.__exportStar(require("./Serializable"), exports);
10
+ tslib_1.__exportStar(require("./SerializeContext"), exports);
11
+ tslib_1.__exportStar(require("./query/Query"), exports);
12
+ tslib_1.__exportStar(require("./query/SelectQuery"), exports);
13
+ tslib_1.__exportStar(require("./query/InsertQuery"), exports);
14
+ tslib_1.__exportStar(require("./query/UpdateQuery"), exports);
15
+ tslib_1.__exportStar(require("./query/DeleteQuery"), exports);
16
+ tslib_1.__exportStar(require("./sql-objects/Operator"), exports);
17
+ tslib_1.__exportStar(require("./sql-objects/operators/LogicalOperator"), exports);
18
+ tslib_1.__exportStar(require("./sql-objects/operators/CompOperator"), exports);
19
+ tslib_1.__exportStar(require("./sql-objects/JoinStatement"), exports);
20
+ tslib_1.__exportStar(require("./types"), exports);
21
+ tslib_1.__exportStar(require("./enums"), exports);
22
+ tslib_1.__exportStar(require("./sqlobject.initializers"), exports);
23
+ tslib_1.__exportStar(require("./op.initializers"), exports);
24
+ tslib_1.__exportStar(require("./typeguards"), exports);
25
+ var op_initializers_1 = require("./op.initializers");
26
+ Object.defineProperty(exports, "op", { enumerable: true, get: function () { return op_initializers_1.op; } });
27
+ exports.classes = tslib_1.__importStar(require("./classes"));
@@ -0,0 +1,86 @@
1
+ import { OpAnd } from './sql-objects/operators/OpAnd';
2
+ import { OpOr } from './sql-objects/operators/OpOr';
3
+ import { OpEq } from './sql-objects/operators/OpEq';
4
+ import { OpGt } from './sql-objects/operators/OpGt';
5
+ import { OpGte } from './sql-objects/operators/OpGte';
6
+ import { OpLt } from './sql-objects/operators/OpLt';
7
+ import { OpLte } from './sql-objects/operators/OpLte';
8
+ import { OpIn } from './sql-objects/operators/OpIn';
9
+ import { OpIs } from './sql-objects/operators/OpIs';
10
+ import { OpIsNot } from './sql-objects/operators/OpIsNot';
11
+ import { OpLike } from './sql-objects/operators/OpLike';
12
+ import { OpILike } from './sql-objects/operators/OpILike';
13
+ import { OpNe } from './sql-objects/operators/OpNe';
14
+ import { OpNotIn } from './sql-objects/operators/OpNotIn';
15
+ import { OpNotLike } from './sql-objects/operators/OpNotLike';
16
+ import { OpNotILike } from './sql-objects/operators/OpNotILike';
17
+ import { OpExists } from './sql-objects/operators/OpExists';
18
+ import { OpNotExists } from './sql-objects/operators/OpNotExists';
19
+ import { Operator } from './sql-objects/Operator';
20
+ import { RawStatement } from './sql-objects/RawStatement';
21
+ import { Serializable } from './Serializable';
22
+ import { SelectQuery } from './query/SelectQuery';
23
+ declare function And(...args: (Operator | RawStatement)[]): OpAnd;
24
+ declare function Or(...args: (Operator | RawStatement)[]): OpOr;
25
+ declare function Eq(expression: string | Serializable, value: any): OpEq;
26
+ declare function Ne(expression: string | Serializable, value: any): OpNe;
27
+ declare function Gt(expression: string | Serializable, value: any): OpGt;
28
+ declare function Gte(expression: string | Serializable, value: any): OpGte;
29
+ declare function Lt(expression: string | Serializable, value: any): OpLt;
30
+ declare function Lte(expression: string | Serializable, value: any): OpLte;
31
+ declare function Between(expression: string | Serializable, values: any[]): any;
32
+ declare function Between(expression: string | Serializable, value1: any, value2: any): any;
33
+ declare function NotBetween(expression: string | Serializable, values: any[]): any;
34
+ declare function NotBetween(expression: string | Serializable, value1: any, value2: any): any;
35
+ declare function In(expression: string | Serializable, value: any): OpIn;
36
+ declare function NotIn(expression: string | Serializable, value: any): OpNotIn;
37
+ declare function Like(expression: string | Serializable, value: any): OpLike;
38
+ declare function NotLike(expression: string | Serializable, value: any): OpNotLike;
39
+ declare function Ilike(expression: string | Serializable, value: any): OpILike;
40
+ declare function NotILike(expression: string | Serializable, value: any): OpNotILike;
41
+ declare function Is(expression: string | Serializable, value: any): OpIs;
42
+ declare function IsNot(expression: string | Serializable, value: any): OpIsNot;
43
+ declare function Exists(expression: SelectQuery): OpExists;
44
+ declare function NotExists(expression: SelectQuery): OpNotExists;
45
+ declare const op: {
46
+ and: typeof And;
47
+ or: typeof Or;
48
+ eq: typeof Eq;
49
+ '=': typeof Eq;
50
+ ne: typeof Ne;
51
+ '!=': typeof Ne;
52
+ gt: typeof Gt;
53
+ '>': typeof Gt;
54
+ gte: typeof Gte;
55
+ '>=': typeof Gte;
56
+ lt: typeof Lt;
57
+ '<': typeof Lt;
58
+ lte: typeof Lte;
59
+ '<=': typeof Lte;
60
+ between: typeof Between;
61
+ btw: typeof Between;
62
+ notBetween: typeof NotBetween;
63
+ nbtw: typeof NotBetween;
64
+ '!between': typeof NotBetween;
65
+ '!btw': typeof NotBetween;
66
+ in: typeof In;
67
+ notIn: typeof NotIn;
68
+ nin: typeof NotIn;
69
+ '!in': typeof NotIn;
70
+ like: typeof Like;
71
+ notLike: typeof NotLike;
72
+ nlike: typeof NotLike;
73
+ '!like': typeof NotLike;
74
+ ilike: typeof Ilike;
75
+ notILike: typeof NotILike;
76
+ nilike: typeof NotILike;
77
+ '!ilike': typeof NotILike;
78
+ is: typeof Is;
79
+ isNot: typeof IsNot;
80
+ '!is': typeof IsNot;
81
+ exists: typeof Exists;
82
+ notExists: typeof NotExists;
83
+ '!exists': typeof NotExists;
84
+ };
85
+ export { op };
86
+ export { And, Or, Eq, Eq as Equal, Ne, Ne as NotEqual, Gt, Gt as GreaterThan, Gte, Gte as GreaterAnEqualTo, Lt, Lt as LowerThan, Lte, Lte as LowerAndEqualTo, Between, NotBetween, In, NotIn, NotIn as Nin, Like, NotLike, NotLike as NLike, Ilike, NotILike, NotILike as Nilike, Is, IsNot, Exists, NotExists };