@spinajs/orm-sql 2.0.180 → 2.0.182
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/lib/cjs/builders.d.ts +9 -9
- package/lib/cjs/builders.js +41 -41
- package/lib/cjs/builders.js.map +1 -1
- package/lib/cjs/compilers.d.ts +225 -225
- package/lib/cjs/compilers.js +1006 -1006
- package/lib/cjs/compilers.js.map +1 -1
- package/lib/cjs/converters.d.ts +10 -10
- package/lib/cjs/converters.js +50 -50
- package/lib/cjs/index.d.ts +8 -8
- package/lib/cjs/index.js +80 -80
- package/lib/cjs/statements.d.ts +46 -46
- package/lib/cjs/statements.js +277 -277
- package/lib/cjs/statements.js.map +1 -1
- package/lib/mjs/builders.d.ts +9 -9
- package/lib/mjs/builders.js +38 -38
- package/lib/mjs/builders.js.map +1 -1
- package/lib/mjs/compilers.d.ts +225 -225
- package/lib/mjs/compilers.js +1000 -1000
- package/lib/mjs/compilers.js.map +1 -1
- package/lib/mjs/converters.d.ts +10 -10
- package/lib/mjs/converters.js +45 -45
- package/lib/mjs/index.d.ts +8 -8
- package/lib/mjs/index.js +62 -62
- package/lib/mjs/statements.d.ts +46 -46
- package/lib/mjs/statements.js +273 -273
- package/lib/mjs/statements.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +4 -4
package/lib/mjs/statements.js
CHANGED
|
@@ -1,274 +1,274 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { JoinMethod } from '@spinajs/orm';
|
|
8
|
-
/* eslint-disable prettier/prettier */
|
|
9
|
-
import { SqlWhereCompiler } from './compilers.js';
|
|
10
|
-
import { NewInstance } from '@spinajs/di';
|
|
11
|
-
import { ModelBase, SqlOperator, BetweenStatement, JoinStatement, ColumnStatement, ColumnRawStatement, InStatement, RawQueryStatement, WhereStatement, ExistsQueryStatement, ColumnMethodStatement, WhereQueryStatement, WithRecursiveStatement, GroupByStatement, RawQuery, DateWrapper, DateTimeWrapper, Wrap, extractModelDescriptor } from '@spinajs/orm';
|
|
12
|
-
let SqlRawStatement = class SqlRawStatement extends RawQueryStatement {
|
|
13
|
-
build() {
|
|
14
|
-
return {
|
|
15
|
-
Bindings: this._bindings,
|
|
16
|
-
Statements: [`${this._query}`],
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
SqlRawStatement = __decorate([
|
|
21
|
-
NewInstance()
|
|
22
|
-
], SqlRawStatement);
|
|
23
|
-
export { SqlRawStatement };
|
|
24
|
-
let SqlWithRecursiveStatement = class SqlWithRecursiveStatement extends WithRecursiveStatement {
|
|
25
|
-
build() {
|
|
26
|
-
const initialQuery = this._query.clone().clearJoins().toDB();
|
|
27
|
-
const joinStmt = this.container.resolve(JoinStatement, [this._query, this._query.Model, 'recursive_cte', JoinMethod.RECURSIVE, this._pkName, this._rcKeyName, '$recursive$', '$recursive_cte$']);
|
|
28
|
-
this._query.JoinStatements.push(joinStmt);
|
|
29
|
-
const additionalQuery = this._query.clone().clearWhere().setAlias('$recursive$').toDB();
|
|
30
|
-
const cte_columns = this._query
|
|
31
|
-
.getColumns()
|
|
32
|
-
.map((c) => c.Column)
|
|
33
|
-
.join(',');
|
|
34
|
-
return {
|
|
35
|
-
Bindings: initialQuery.bindings.concat(additionalQuery.bindings),
|
|
36
|
-
Statements: [cte_columns, initialQuery.expression, additionalQuery.expression],
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
SqlWithRecursiveStatement = __decorate([
|
|
41
|
-
NewInstance()
|
|
42
|
-
], SqlWithRecursiveStatement);
|
|
43
|
-
export { SqlWithRecursiveStatement };
|
|
44
|
-
let SqlBetweenStatement = class SqlBetweenStatement extends BetweenStatement {
|
|
45
|
-
build() {
|
|
46
|
-
const exprr = this._not ? 'NOT BETWEEN' : 'BETWEEN';
|
|
47
|
-
return {
|
|
48
|
-
Bindings: this._val,
|
|
49
|
-
Statements: [`${this._column} ${exprr} ? AND ?`],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
SqlBetweenStatement = __decorate([
|
|
54
|
-
NewInstance()
|
|
55
|
-
], SqlBetweenStatement);
|
|
56
|
-
export { SqlBetweenStatement };
|
|
57
|
-
let SqlGroupByStatement = class SqlGroupByStatement extends GroupByStatement {
|
|
58
|
-
build() {
|
|
59
|
-
if (this._expr instanceof RawQuery) {
|
|
60
|
-
return {
|
|
61
|
-
Bindings: this._expr.Bindings ?? [],
|
|
62
|
-
Statements: [`${this._expr.Query}`],
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return {
|
|
67
|
-
Bindings: [],
|
|
68
|
-
Statements: [`\`${this._expr}\``],
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
SqlGroupByStatement = __decorate([
|
|
74
|
-
NewInstance()
|
|
75
|
-
], SqlGroupByStatement);
|
|
76
|
-
export { SqlGroupByStatement };
|
|
77
|
-
let SqlWhereStatement = class SqlWhereStatement extends WhereStatement {
|
|
78
|
-
build() {
|
|
79
|
-
const isNullableQuery = this._operator === SqlOperator.NOT_NULL || this._operator === SqlOperator.NULL;
|
|
80
|
-
const binding = isNullableQuery ? '' : ' ?';
|
|
81
|
-
let column = this._column;
|
|
82
|
-
let val = this._value;
|
|
83
|
-
if (this._model) {
|
|
84
|
-
const desc = extractModelDescriptor(this._model);
|
|
85
|
-
const rel = desc.Relations.get(column);
|
|
86
|
-
if (rel) {
|
|
87
|
-
column = rel.ForeignKey;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (column instanceof Wrap) {
|
|
91
|
-
const wrapper = this._container.resolve(column.Wrapper, [column.Column, this._tableAlias]);
|
|
92
|
-
column = wrapper.wrap();
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
if (this._tableAlias) {
|
|
96
|
-
column = `\`${this._tableAlias}\`.${this._column}`;
|
|
97
|
-
}
|
|
98
|
-
if (val instanceof ModelBase) {
|
|
99
|
-
val = val.PrimaryKeyValue;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
const converters = this._container.get('__orm_db_value_converters__');
|
|
103
|
-
if (converters && this._value && converters.has(this._value.constructor.name)) {
|
|
104
|
-
const converter = this._container.resolve(converters.get(this._value.constructor.name));
|
|
105
|
-
val = converter.toDB(val, null, null);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
Bindings: isNullableQuery ? [] : [val],
|
|
111
|
-
Statements: [`${column} ${this._operator.toUpperCase()}${binding}`],
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
SqlWhereStatement = __decorate([
|
|
116
|
-
NewInstance()
|
|
117
|
-
], SqlWhereStatement);
|
|
118
|
-
export { SqlWhereStatement };
|
|
119
|
-
let SqlJoinStatement = class SqlJoinStatement extends JoinStatement {
|
|
120
|
-
build() {
|
|
121
|
-
const method = this._method === JoinMethod.RECURSIVE ? JoinMethod.INNER : this._method;
|
|
122
|
-
if (this._query) {
|
|
123
|
-
return {
|
|
124
|
-
Bindings: this._query.Bindings ?? [],
|
|
125
|
-
Statements: [`${method} ${this._query.Query}`],
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
let table = `${this._database ? `\`${this._database}\`.` : ''}\`${this._table}\``;
|
|
129
|
-
let primaryKey = this._primaryKey;
|
|
130
|
-
let foreignKey = this._foreignKey;
|
|
131
|
-
if (this._alias) {
|
|
132
|
-
primaryKey = `\`${this._alias}\`.${this._foreignKey}`;
|
|
133
|
-
}
|
|
134
|
-
if (this._tableAlias) {
|
|
135
|
-
table = `${this._database ? `\`${this._database}\`.` : ''}\`${this._table}\` as \`${this._method === JoinMethod.RECURSIVE ? this._alias : this._tableAlias}\``;
|
|
136
|
-
foreignKey = `\`${this._tableAlias}\`.${this._primaryKey}`;
|
|
137
|
-
}
|
|
138
|
-
return {
|
|
139
|
-
Bindings: [],
|
|
140
|
-
Statements: [`${method} ${table} ON ${primaryKey} = ${foreignKey}`],
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
SqlJoinStatement = __decorate([
|
|
145
|
-
NewInstance()
|
|
146
|
-
], SqlJoinStatement);
|
|
147
|
-
export { SqlJoinStatement };
|
|
148
|
-
let SqlInStatement = class SqlInStatement extends InStatement {
|
|
149
|
-
build() {
|
|
150
|
-
const exprr = this._not ? 'NOT IN' : 'IN';
|
|
151
|
-
return {
|
|
152
|
-
Bindings: this._val,
|
|
153
|
-
Statements: [`${this._column} ${exprr} (${this._val.map(() => '?').join(',')})`],
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
SqlInStatement = __decorate([
|
|
158
|
-
NewInstance()
|
|
159
|
-
], SqlInStatement);
|
|
160
|
-
export { SqlInStatement };
|
|
161
|
-
let SqlColumnStatement = class SqlColumnStatement extends ColumnStatement {
|
|
162
|
-
build() {
|
|
163
|
-
let exprr = '';
|
|
164
|
-
if (this.IsWildcard) {
|
|
165
|
-
exprr = '*';
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
exprr = `\`${this._column}\``;
|
|
169
|
-
if (this._alias) {
|
|
170
|
-
exprr += ` as \`${this._alias}\``;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (this._tableAlias) {
|
|
174
|
-
exprr = `\`${this._tableAlias}\`.${exprr}`;
|
|
175
|
-
}
|
|
176
|
-
return {
|
|
177
|
-
Bindings: [],
|
|
178
|
-
Statements: [exprr],
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
SqlColumnStatement = __decorate([
|
|
183
|
-
NewInstance()
|
|
184
|
-
], SqlColumnStatement);
|
|
185
|
-
export { SqlColumnStatement };
|
|
186
|
-
let SqlColumnMethodStatement = class SqlColumnMethodStatement extends ColumnMethodStatement {
|
|
187
|
-
build() {
|
|
188
|
-
let _exprr = '';
|
|
189
|
-
if (this.IsWildcard) {
|
|
190
|
-
_exprr = `${this._method}(${this._column})`;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
_exprr = `${this._method}(\`${this._column}\`)`;
|
|
194
|
-
}
|
|
195
|
-
if (this._alias) {
|
|
196
|
-
_exprr += ` as \`${this._alias}\``;
|
|
197
|
-
}
|
|
198
|
-
return {
|
|
199
|
-
Bindings: [],
|
|
200
|
-
Statements: [_exprr],
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
SqlColumnMethodStatement = __decorate([
|
|
205
|
-
NewInstance()
|
|
206
|
-
], SqlColumnMethodStatement);
|
|
207
|
-
export { SqlColumnMethodStatement };
|
|
208
|
-
let SqlDateWrapper = class SqlDateWrapper extends DateWrapper {
|
|
209
|
-
wrap() {
|
|
210
|
-
if (this._tableAlias) {
|
|
211
|
-
return `DATE(\`${this._tableAlias}\`.\`${this._value}\`)`;
|
|
212
|
-
}
|
|
213
|
-
return `DATE(\`${this._value}\`)`;
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
SqlDateWrapper = __decorate([
|
|
217
|
-
NewInstance()
|
|
218
|
-
], SqlDateWrapper);
|
|
219
|
-
export { SqlDateWrapper };
|
|
220
|
-
export class SqlDateTimeWrapper extends DateTimeWrapper {
|
|
221
|
-
wrap() {
|
|
222
|
-
if (this._tableAlias) {
|
|
223
|
-
return `DATETIME(\`${this._tableAlias}\`.\`${this._value}\`)`;
|
|
224
|
-
}
|
|
225
|
-
return `DATETIME(\`${this._value}\`)`;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
let SqlColumnRawStatement = class SqlColumnRawStatement extends ColumnRawStatement {
|
|
229
|
-
build() {
|
|
230
|
-
return {
|
|
231
|
-
Bindings: this.RawQuery.Bindings,
|
|
232
|
-
Statements: [this.RawQuery.Query],
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
};
|
|
236
|
-
SqlColumnRawStatement = __decorate([
|
|
237
|
-
NewInstance()
|
|
238
|
-
], SqlColumnRawStatement);
|
|
239
|
-
export { SqlColumnRawStatement };
|
|
240
|
-
let SqlWhereQueryStatement = class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
241
|
-
build() {
|
|
242
|
-
const _compiler = new SqlWhereCompiler();
|
|
243
|
-
const _result = _compiler.where(this._builder);
|
|
244
|
-
return {
|
|
245
|
-
Bindings: _result.bindings,
|
|
246
|
-
Statements: _result.expression && _result.expression !== '' ? [`( ${_result.expression} )`] : [],
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
SqlWhereQueryStatement = __decorate([
|
|
251
|
-
NewInstance()
|
|
252
|
-
], SqlWhereQueryStatement);
|
|
253
|
-
export { SqlWhereQueryStatement };
|
|
254
|
-
let SqlExistsQueryStatement = class SqlExistsQueryStatement extends ExistsQueryStatement {
|
|
255
|
-
build() {
|
|
256
|
-
let exprr = '';
|
|
257
|
-
const compiled = this._builder.toDB();
|
|
258
|
-
if (this._not) {
|
|
259
|
-
exprr += `NOT EXISTS ( ${compiled.expression} )`;
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
exprr += `EXISTS ( ${compiled.expression} )`;
|
|
263
|
-
}
|
|
264
|
-
return {
|
|
265
|
-
Bindings: compiled.bindings,
|
|
266
|
-
Statements: [exprr],
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
};
|
|
270
|
-
SqlExistsQueryStatement = __decorate([
|
|
271
|
-
NewInstance()
|
|
272
|
-
], SqlExistsQueryStatement);
|
|
273
|
-
export { SqlExistsQueryStatement };
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { JoinMethod } from '@spinajs/orm';
|
|
8
|
+
/* eslint-disable prettier/prettier */
|
|
9
|
+
import { SqlWhereCompiler } from './compilers.js';
|
|
10
|
+
import { NewInstance } from '@spinajs/di';
|
|
11
|
+
import { ModelBase, SqlOperator, BetweenStatement, JoinStatement, ColumnStatement, ColumnRawStatement, InStatement, RawQueryStatement, WhereStatement, ExistsQueryStatement, ColumnMethodStatement, WhereQueryStatement, WithRecursiveStatement, GroupByStatement, RawQuery, DateWrapper, DateTimeWrapper, Wrap, extractModelDescriptor } from '@spinajs/orm';
|
|
12
|
+
let SqlRawStatement = class SqlRawStatement extends RawQueryStatement {
|
|
13
|
+
build() {
|
|
14
|
+
return {
|
|
15
|
+
Bindings: this._bindings,
|
|
16
|
+
Statements: [`${this._query}`],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
SqlRawStatement = __decorate([
|
|
21
|
+
NewInstance()
|
|
22
|
+
], SqlRawStatement);
|
|
23
|
+
export { SqlRawStatement };
|
|
24
|
+
let SqlWithRecursiveStatement = class SqlWithRecursiveStatement extends WithRecursiveStatement {
|
|
25
|
+
build() {
|
|
26
|
+
const initialQuery = this._query.clone().clearJoins().toDB();
|
|
27
|
+
const joinStmt = this.container.resolve(JoinStatement, [this._query, this._query.Model, 'recursive_cte', JoinMethod.RECURSIVE, this._pkName, this._rcKeyName, '$recursive$', '$recursive_cte$']);
|
|
28
|
+
this._query.JoinStatements.push(joinStmt);
|
|
29
|
+
const additionalQuery = this._query.clone().clearWhere().setAlias('$recursive$').toDB();
|
|
30
|
+
const cte_columns = this._query
|
|
31
|
+
.getColumns()
|
|
32
|
+
.map((c) => c.Column)
|
|
33
|
+
.join(',');
|
|
34
|
+
return {
|
|
35
|
+
Bindings: initialQuery.bindings.concat(additionalQuery.bindings),
|
|
36
|
+
Statements: [cte_columns, initialQuery.expression, additionalQuery.expression],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
SqlWithRecursiveStatement = __decorate([
|
|
41
|
+
NewInstance()
|
|
42
|
+
], SqlWithRecursiveStatement);
|
|
43
|
+
export { SqlWithRecursiveStatement };
|
|
44
|
+
let SqlBetweenStatement = class SqlBetweenStatement extends BetweenStatement {
|
|
45
|
+
build() {
|
|
46
|
+
const exprr = this._not ? 'NOT BETWEEN' : 'BETWEEN';
|
|
47
|
+
return {
|
|
48
|
+
Bindings: this._val,
|
|
49
|
+
Statements: [`${this._column} ${exprr} ? AND ?`],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
SqlBetweenStatement = __decorate([
|
|
54
|
+
NewInstance()
|
|
55
|
+
], SqlBetweenStatement);
|
|
56
|
+
export { SqlBetweenStatement };
|
|
57
|
+
let SqlGroupByStatement = class SqlGroupByStatement extends GroupByStatement {
|
|
58
|
+
build() {
|
|
59
|
+
if (this._expr instanceof RawQuery) {
|
|
60
|
+
return {
|
|
61
|
+
Bindings: this._expr.Bindings ?? [],
|
|
62
|
+
Statements: [`${this._expr.Query}`],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return {
|
|
67
|
+
Bindings: [],
|
|
68
|
+
Statements: [`\`${this._expr}\``],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
SqlGroupByStatement = __decorate([
|
|
74
|
+
NewInstance()
|
|
75
|
+
], SqlGroupByStatement);
|
|
76
|
+
export { SqlGroupByStatement };
|
|
77
|
+
let SqlWhereStatement = class SqlWhereStatement extends WhereStatement {
|
|
78
|
+
build() {
|
|
79
|
+
const isNullableQuery = this._operator === SqlOperator.NOT_NULL || this._operator === SqlOperator.NULL;
|
|
80
|
+
const binding = isNullableQuery ? '' : ' ?';
|
|
81
|
+
let column = this._column;
|
|
82
|
+
let val = this._value;
|
|
83
|
+
if (this._model) {
|
|
84
|
+
const desc = extractModelDescriptor(this._model);
|
|
85
|
+
const rel = desc.Relations.get(column);
|
|
86
|
+
if (rel) {
|
|
87
|
+
column = rel.ForeignKey;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (column instanceof Wrap) {
|
|
91
|
+
const wrapper = this._container.resolve(column.Wrapper, [column.Column, this._tableAlias]);
|
|
92
|
+
column = wrapper.wrap();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
if (this._tableAlias) {
|
|
96
|
+
column = `\`${this._tableAlias}\`.${this._column}`;
|
|
97
|
+
}
|
|
98
|
+
if (val instanceof ModelBase) {
|
|
99
|
+
val = val.PrimaryKeyValue;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const converters = this._container.get('__orm_db_value_converters__');
|
|
103
|
+
if (converters && this._value && converters.has(this._value.constructor.name)) {
|
|
104
|
+
const converter = this._container.resolve(converters.get(this._value.constructor.name));
|
|
105
|
+
val = converter.toDB(val, null, null);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
Bindings: isNullableQuery ? [] : [val],
|
|
111
|
+
Statements: [`${column} ${this._operator.toUpperCase()}${binding}`],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
SqlWhereStatement = __decorate([
|
|
116
|
+
NewInstance()
|
|
117
|
+
], SqlWhereStatement);
|
|
118
|
+
export { SqlWhereStatement };
|
|
119
|
+
let SqlJoinStatement = class SqlJoinStatement extends JoinStatement {
|
|
120
|
+
build() {
|
|
121
|
+
const method = this._method === JoinMethod.RECURSIVE ? JoinMethod.INNER : this._method;
|
|
122
|
+
if (this._query) {
|
|
123
|
+
return {
|
|
124
|
+
Bindings: this._query.Bindings ?? [],
|
|
125
|
+
Statements: [`${method} ${this._query.Query}`],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
let table = `${this._database ? `\`${this._database}\`.` : ''}\`${this._table}\``;
|
|
129
|
+
let primaryKey = this._primaryKey;
|
|
130
|
+
let foreignKey = this._foreignKey;
|
|
131
|
+
if (this._alias) {
|
|
132
|
+
primaryKey = `\`${this._alias}\`.${this._foreignKey}`;
|
|
133
|
+
}
|
|
134
|
+
if (this._tableAlias) {
|
|
135
|
+
table = `${this._database ? `\`${this._database}\`.` : ''}\`${this._table}\` as \`${this._method === JoinMethod.RECURSIVE ? this._alias : this._tableAlias}\``;
|
|
136
|
+
foreignKey = `\`${this._tableAlias}\`.${this._primaryKey}`;
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
Bindings: [],
|
|
140
|
+
Statements: [`${method} ${table} ON ${primaryKey} = ${foreignKey}`],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
SqlJoinStatement = __decorate([
|
|
145
|
+
NewInstance()
|
|
146
|
+
], SqlJoinStatement);
|
|
147
|
+
export { SqlJoinStatement };
|
|
148
|
+
let SqlInStatement = class SqlInStatement extends InStatement {
|
|
149
|
+
build() {
|
|
150
|
+
const exprr = this._not ? 'NOT IN' : 'IN';
|
|
151
|
+
return {
|
|
152
|
+
Bindings: this._val,
|
|
153
|
+
Statements: [`${this._column} ${exprr} (${this._val.map(() => '?').join(',')})`],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
SqlInStatement = __decorate([
|
|
158
|
+
NewInstance()
|
|
159
|
+
], SqlInStatement);
|
|
160
|
+
export { SqlInStatement };
|
|
161
|
+
let SqlColumnStatement = class SqlColumnStatement extends ColumnStatement {
|
|
162
|
+
build() {
|
|
163
|
+
let exprr = '';
|
|
164
|
+
if (this.IsWildcard) {
|
|
165
|
+
exprr = '*';
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
exprr = `\`${this._column}\``;
|
|
169
|
+
if (this._alias) {
|
|
170
|
+
exprr += ` as \`${this._alias}\``;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (this._tableAlias) {
|
|
174
|
+
exprr = `\`${this._tableAlias}\`.${exprr}`;
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
Bindings: [],
|
|
178
|
+
Statements: [exprr],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
SqlColumnStatement = __decorate([
|
|
183
|
+
NewInstance()
|
|
184
|
+
], SqlColumnStatement);
|
|
185
|
+
export { SqlColumnStatement };
|
|
186
|
+
let SqlColumnMethodStatement = class SqlColumnMethodStatement extends ColumnMethodStatement {
|
|
187
|
+
build() {
|
|
188
|
+
let _exprr = '';
|
|
189
|
+
if (this.IsWildcard) {
|
|
190
|
+
_exprr = `${this._method}(${this._column})`;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
_exprr = `${this._method}(\`${this._column}\`)`;
|
|
194
|
+
}
|
|
195
|
+
if (this._alias) {
|
|
196
|
+
_exprr += ` as \`${this._alias}\``;
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
Bindings: [],
|
|
200
|
+
Statements: [_exprr],
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
SqlColumnMethodStatement = __decorate([
|
|
205
|
+
NewInstance()
|
|
206
|
+
], SqlColumnMethodStatement);
|
|
207
|
+
export { SqlColumnMethodStatement };
|
|
208
|
+
let SqlDateWrapper = class SqlDateWrapper extends DateWrapper {
|
|
209
|
+
wrap() {
|
|
210
|
+
if (this._tableAlias) {
|
|
211
|
+
return `DATE(\`${this._tableAlias}\`.\`${this._value}\`)`;
|
|
212
|
+
}
|
|
213
|
+
return `DATE(\`${this._value}\`)`;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
SqlDateWrapper = __decorate([
|
|
217
|
+
NewInstance()
|
|
218
|
+
], SqlDateWrapper);
|
|
219
|
+
export { SqlDateWrapper };
|
|
220
|
+
export class SqlDateTimeWrapper extends DateTimeWrapper {
|
|
221
|
+
wrap() {
|
|
222
|
+
if (this._tableAlias) {
|
|
223
|
+
return `DATETIME(\`${this._tableAlias}\`.\`${this._value}\`)`;
|
|
224
|
+
}
|
|
225
|
+
return `DATETIME(\`${this._value}\`)`;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
let SqlColumnRawStatement = class SqlColumnRawStatement extends ColumnRawStatement {
|
|
229
|
+
build() {
|
|
230
|
+
return {
|
|
231
|
+
Bindings: this.RawQuery.Bindings,
|
|
232
|
+
Statements: [this.RawQuery.Query],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
SqlColumnRawStatement = __decorate([
|
|
237
|
+
NewInstance()
|
|
238
|
+
], SqlColumnRawStatement);
|
|
239
|
+
export { SqlColumnRawStatement };
|
|
240
|
+
let SqlWhereQueryStatement = class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
241
|
+
build() {
|
|
242
|
+
const _compiler = new SqlWhereCompiler();
|
|
243
|
+
const _result = _compiler.where(this._builder);
|
|
244
|
+
return {
|
|
245
|
+
Bindings: _result.bindings,
|
|
246
|
+
Statements: _result.expression && _result.expression !== '' ? [`( ${_result.expression} )`] : [],
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
SqlWhereQueryStatement = __decorate([
|
|
251
|
+
NewInstance()
|
|
252
|
+
], SqlWhereQueryStatement);
|
|
253
|
+
export { SqlWhereQueryStatement };
|
|
254
|
+
let SqlExistsQueryStatement = class SqlExistsQueryStatement extends ExistsQueryStatement {
|
|
255
|
+
build() {
|
|
256
|
+
let exprr = '';
|
|
257
|
+
const compiled = this._builder.toDB();
|
|
258
|
+
if (this._not) {
|
|
259
|
+
exprr += `NOT EXISTS ( ${compiled.expression} )`;
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
exprr += `EXISTS ( ${compiled.expression} )`;
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
Bindings: compiled.bindings,
|
|
266
|
+
Statements: [exprr],
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
SqlExistsQueryStatement = __decorate([
|
|
271
|
+
NewInstance()
|
|
272
|
+
], SqlExistsQueryStatement);
|
|
273
|
+
export { SqlExistsQueryStatement };
|
|
274
274
|
//# sourceMappingURL=statements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,sCAAsC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAyB,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAiC,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG7Y,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,iBAAiB;IAC7C,KAAK;QACV,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;CACF,CAAA;AAPY,eAAe;IAD3B,WAAW,EAAE;GACD,eAAe,CAO3B
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
|