@sqb/builder 4.0.9 → 4.0.13
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.
- package/dist/Serializable.d.ts +9 -0
- package/dist/Serializable.js +6 -0
- package/dist/SerializeContext.d.ts +47 -0
- package/dist/SerializeContext.js +138 -0
- package/dist/classes.d.ts +38 -0
- package/dist/classes.js +41 -0
- package/dist/enums.d.ts +84 -0
- package/dist/enums.js +91 -0
- package/dist/extensions.d.ts +4 -0
- package/dist/extensions.js +16 -0
- package/dist/helpers.d.ts +4 -0
- package/dist/helpers.js +31 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +27 -0
- package/dist/op.initializers.d.ts +86 -0
- package/dist/op.initializers.js +158 -0
- package/dist/query/DeleteQuery.d.ts +24 -0
- package/dist/query/DeleteQuery.js +53 -0
- package/dist/query/InsertQuery.d.ts +23 -0
- package/dist/query/InsertQuery.js +76 -0
- package/dist/query/Query.d.ts +15 -0
- package/dist/query/Query.js +40 -0
- package/dist/query/ReturningQuery.d.ts +14 -0
- package/dist/query/ReturningQuery.js +44 -0
- package/dist/query/SelectQuery.d.ts +90 -0
- package/dist/query/SelectQuery.js +283 -0
- package/dist/query/UpdateQuery.d.ts +29 -0
- package/dist/query/UpdateQuery.js +80 -0
- package/dist/sql-objects/BaseField.d.ts +7 -0
- package/dist/sql-objects/BaseField.js +11 -0
- package/dist/sql-objects/CaseStatement.d.ts +42 -0
- package/dist/sql-objects/CaseStatement.js +85 -0
- package/dist/sql-objects/CountStatement.d.ts +20 -0
- package/dist/sql-objects/CountStatement.js +34 -0
- package/dist/sql-objects/Expression.d.ts +7 -0
- package/dist/sql-objects/Expression.js +7 -0
- package/dist/sql-objects/FieldExpression.d.ts +14 -0
- package/dist/sql-objects/FieldExpression.js +53 -0
- package/dist/sql-objects/GroupColumn.d.ts +8 -0
- package/dist/sql-objects/GroupColumn.js +38 -0
- package/dist/sql-objects/JoinStatement.d.ts +17 -0
- package/dist/sql-objects/JoinStatement.js +81 -0
- package/dist/sql-objects/Operator.d.ts +5 -0
- package/dist/sql-objects/Operator.js +7 -0
- package/dist/sql-objects/OrderColumn.d.ts +9 -0
- package/dist/sql-objects/OrderColumn.js +42 -0
- package/dist/sql-objects/ParamExpression.d.ts +23 -0
- package/dist/sql-objects/ParamExpression.js +53 -0
- package/dist/sql-objects/RawStatement.d.ts +9 -0
- package/dist/sql-objects/RawStatement.js +18 -0
- package/dist/sql-objects/ReturningColumn.d.ts +9 -0
- package/dist/sql-objects/ReturningColumn.js +32 -0
- package/dist/sql-objects/TableName.d.ts +11 -0
- package/dist/sql-objects/TableName.js +31 -0
- package/dist/sql-objects/operators/CompOperator.d.ts +16 -0
- package/dist/sql-objects/operators/CompOperator.js +87 -0
- package/dist/sql-objects/operators/LogicalOperator.d.ts +16 -0
- package/dist/sql-objects/operators/LogicalOperator.js +83 -0
- package/dist/sql-objects/operators/OpAnd.d.ts +5 -0
- package/dist/sql-objects/operators/OpAnd.js +12 -0
- package/dist/sql-objects/operators/OpBetween.d.ts +11 -0
- package/dist/sql-objects/operators/OpBetween.js +35 -0
- package/dist/sql-objects/operators/OpEq.d.ts +8 -0
- package/dist/sql-objects/operators/OpEq.js +13 -0
- package/dist/sql-objects/operators/OpExists.d.ts +11 -0
- package/dist/sql-objects/operators/OpExists.js +30 -0
- package/dist/sql-objects/operators/OpGt.d.ts +8 -0
- package/dist/sql-objects/operators/OpGt.js +13 -0
- package/dist/sql-objects/operators/OpGte.d.ts +8 -0
- package/dist/sql-objects/operators/OpGte.js +13 -0
- package/dist/sql-objects/operators/OpILike.d.ts +6 -0
- package/dist/sql-objects/operators/OpILike.js +13 -0
- package/dist/sql-objects/operators/OpIn.d.ts +9 -0
- package/dist/sql-objects/operators/OpIn.js +19 -0
- package/dist/sql-objects/operators/OpIs.d.ts +8 -0
- package/dist/sql-objects/operators/OpIs.js +13 -0
- package/dist/sql-objects/operators/OpIsNot.d.ts +8 -0
- package/dist/sql-objects/operators/OpIsNot.js +13 -0
- package/dist/sql-objects/operators/OpLike.d.ts +10 -0
- package/dist/sql-objects/operators/OpLike.js +22 -0
- package/dist/sql-objects/operators/OpLt.d.ts +8 -0
- package/dist/sql-objects/operators/OpLt.js +13 -0
- package/dist/sql-objects/operators/OpLte.d.ts +8 -0
- package/dist/sql-objects/operators/OpLte.js +13 -0
- package/dist/sql-objects/operators/OpNe.d.ts +8 -0
- package/dist/sql-objects/operators/OpNe.js +13 -0
- package/dist/sql-objects/operators/OpNotBetween.d.ts +6 -0
- package/dist/sql-objects/operators/OpNotBetween.js +13 -0
- package/dist/sql-objects/operators/OpNotExists.d.ts +6 -0
- package/dist/sql-objects/operators/OpNotExists.js +13 -0
- package/dist/sql-objects/operators/OpNotILike.d.ts +6 -0
- package/dist/sql-objects/operators/OpNotILike.js +13 -0
- package/dist/sql-objects/operators/OpNotIn.d.ts +6 -0
- package/dist/sql-objects/operators/OpNotIn.js +13 -0
- package/dist/sql-objects/operators/OpNotLike.d.ts +6 -0
- package/dist/sql-objects/operators/OpNotLike.js +13 -0
- package/dist/sql-objects/operators/OpOr.d.ts +5 -0
- package/dist/sql-objects/operators/OpOr.js +12 -0
- package/dist/sqlobject.initializers.d.ts +39 -0
- package/dist/sqlobject.initializers.js +90 -0
- package/dist/typeguards.d.ts +34 -0
- package/dist/typeguards.js +73 -0
- package/dist/types.d.ts +33 -0
- package/dist/types.js +2 -0
- 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,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';
|
package/dist/classes.js
ADDED
|
@@ -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);
|
package/dist/enums.d.ts
ADDED
|
@@ -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;
|
package/dist/helpers.js
ADDED
|
@@ -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
ADDED
|
@@ -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 };
|