@spinajs/orm 2.0.45 → 2.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/lib/builders.d.ts +9 -8
- package/lib/builders.d.ts.map +1 -0
- package/lib/builders.js +277 -310
- package/lib/builders.js.map +1 -1
- package/lib/converters.d.ts +10 -3
- package/lib/converters.d.ts.map +1 -0
- package/lib/converters.js +32 -10
- package/lib/converters.js.map +1 -1
- package/lib/decorators.d.ts +4 -3
- package/lib/decorators.d.ts.map +1 -0
- package/lib/decorators.js +71 -99
- package/lib/decorators.js.map +1 -1
- package/lib/dehydrators.d.ts +2 -1
- package/lib/dehydrators.d.ts.map +1 -0
- package/lib/dehydrators.js +9 -16
- package/lib/dehydrators.js.map +1 -1
- package/lib/driver.d.ts +6 -5
- package/lib/driver.d.ts.map +1 -0
- package/lib/driver.js +21 -20
- package/lib/driver.js.map +1 -1
- package/lib/enums.d.ts +2 -1
- package/lib/enums.d.ts.map +1 -0
- package/lib/enums.js +14 -17
- package/lib/enums.js.map +1 -1
- package/lib/exceptions.d.ts +2 -1
- package/lib/exceptions.d.ts.map +1 -0
- package/lib/exceptions.js +2 -6
- package/lib/exceptions.js.map +1 -1
- package/lib/hydrators.d.ts +2 -1
- package/lib/hydrators.d.ts.map +1 -0
- package/lib/hydrators.js +23 -28
- package/lib/hydrators.js.map +1 -1
- package/lib/index.d.ts +16 -15
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +15 -31
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +16 -9
- package/lib/interfaces.d.ts.map +1 -0
- package/lib/interfaces.js +78 -85
- package/lib/interfaces.js.map +1 -1
- package/lib/model.d.ts +12 -7
- package/lib/model.d.ts.map +1 -0
- package/lib/model.js +119 -172
- package/lib/model.js.map +1 -1
- package/lib/orm.d.ts +5 -3
- package/lib/orm.d.ts.map +1 -0
- package/lib/orm.js +51 -75
- package/lib/orm.js.map +1 -1
- package/lib/relations.d.ts +6 -11
- package/lib/relations.d.ts.map +1 -0
- package/lib/relations.js +56 -90
- package/lib/relations.js.map +1 -1
- package/lib/statements.d.ts +6 -7
- package/lib/statements.d.ts.map +1 -0
- package/lib/statements.js +55 -86
- package/lib/statements.js.map +1 -1
- package/lib/types.d.ts +15 -14
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -2
- package/lib/wrappers.d.ts +2 -1
- package/lib/wrappers.d.ts.map +1 -0
- package/lib/wrappers.js +4 -7
- package/lib/wrappers.js.map +1 -1
- package/package.json +63 -61
package/lib/builders.js
CHANGED
|
@@ -1,66 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
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;
|
|
22
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
6
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
9
|
};
|
|
34
|
-
var RawQuery_1, WhereBuilder_1;
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.SchemaQueryBuilder = exports.ScheduleQueryBuilder = exports.DropEventQueryBuilder = exports.EventQueryBuilder = exports.EventIntervalDesc = exports.CloneTableQueryBuilder = exports.TruncateTableQueryBuilder = exports.TableQueryBuilder = exports.AlterTableQueryBuilder = exports.DropTableQueryBuilder = exports.TableExistsQueryBuilder = exports.AlterColumnQueryBuilder = exports.ColumnQueryBuilder = exports.ForeignKeyBuilder = exports.IndexQueryBuilder = exports.InsertQueryBuilder = exports.UpdateQueryBuilder = exports.OnDuplicateQueryBuilder = exports.DeleteQueryBuilder = exports.SelectQueryBuilderC = exports.SelectQueryBuilder = exports.WhereBuilder = exports.WithRecursiveBuilder = exports.JoinBuilder = exports.GroupByBuilder = exports.RawQuery = exports.ColumnsBuilder = exports.OrderByBuilder = exports.LimitBuilder = exports.QueryBuilder = exports.Builder = void 0;
|
|
10
|
+
var RawQuery_1, WhereBuilder_1, SelectQueryBuilder_1;
|
|
37
11
|
/* eslint-disable prettier/prettier */
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
12
|
+
import { Container, Inject, NewInstance, DI, Injectable } from '@spinajs/di';
|
|
13
|
+
import { InvalidArgument, MethodNotImplemented, InvalidOperation } from '../../exceptions/lib/index.js';
|
|
14
|
+
import { OrmException } from './exceptions.js';
|
|
15
|
+
import _ from 'lodash';
|
|
16
|
+
import { use } from 'typescript-mix';
|
|
17
|
+
import { ColumnMethods, ColumnType, QueryMethod, SordOrder, WhereBoolean, SqlOperator, JoinMethod } from './enums.js';
|
|
18
|
+
import { DeleteQueryCompiler, InsertQueryCompiler, SelectQueryCompiler, TruncateTableQueryCompiler, TableQueryCompiler, AlterTableQueryCompiler, UpdateQueryCompiler, QueryContext, IndexQueryCompiler, RelationType, ReferentialAction, DefaultValueBuilder, ColumnAlterationType, TableExistsCompiler, DropTableCompiler, TableCloneQueryCompiler, QueryMiddleware, DropEventQueryCompiler, EventQueryCompiler } from './interfaces.js';
|
|
19
|
+
import { BetweenStatement, ColumnMethodStatement, ColumnStatement, ExistsQueryStatement, InSetStatement, InStatement, RawQueryStatement, WhereQueryStatement, WhereStatement, ColumnRawStatement, JoinStatement, WithRecursiveStatement, GroupByStatement, Wrap } from './statements.js';
|
|
20
|
+
import { OrmDriver } from './driver.js';
|
|
21
|
+
import { extractModelDescriptor } from './model.js';
|
|
22
|
+
import { BelongsToRelation, OneToManyRelation, ManyToManyRelation, BelongsToRecursiveRelation } from './relations.js';
|
|
23
|
+
import { Orm } from './orm.js';
|
|
50
24
|
function isWhereOperator(val) {
|
|
51
|
-
return _.isString(val) && Object.values(
|
|
25
|
+
return _.isString(val) && Object.values(SqlOperator).includes(val.toLowerCase());
|
|
52
26
|
}
|
|
53
27
|
let Builder = class Builder {
|
|
54
|
-
constructor(container, driver, model) {
|
|
55
|
-
this._middlewares = [];
|
|
56
|
-
this._queryMiddlewares = [];
|
|
57
|
-
this._driver = driver;
|
|
58
|
-
this._container = container;
|
|
59
|
-
this._model = model;
|
|
60
|
-
this._nonSelect = true;
|
|
61
|
-
this._asRaw = false;
|
|
62
|
-
this._queryMiddlewares = di_1.DI.resolve(Array.ofType(interfaces_1.QueryMiddleware));
|
|
63
|
-
}
|
|
64
28
|
get Driver() {
|
|
65
29
|
return this._driver;
|
|
66
30
|
}
|
|
@@ -70,6 +34,16 @@ let Builder = class Builder {
|
|
|
70
34
|
get Model() {
|
|
71
35
|
return this._model;
|
|
72
36
|
}
|
|
37
|
+
constructor(container, driver, model) {
|
|
38
|
+
this._middlewares = [];
|
|
39
|
+
this._queryMiddlewares = [];
|
|
40
|
+
this._driver = driver;
|
|
41
|
+
this._container = container;
|
|
42
|
+
this._model = model;
|
|
43
|
+
this._nonSelect = true;
|
|
44
|
+
this._asRaw = false;
|
|
45
|
+
this._queryMiddlewares = DI.resolve(Array.ofType(QueryMiddleware));
|
|
46
|
+
}
|
|
73
47
|
then(onfulfilled, onrejected) {
|
|
74
48
|
const execute = (compiled) => {
|
|
75
49
|
return this._driver
|
|
@@ -144,15 +118,15 @@ let Builder = class Builder {
|
|
|
144
118
|
* Builds query that is ready to use in DB
|
|
145
119
|
*/
|
|
146
120
|
toDB() {
|
|
147
|
-
throw new
|
|
121
|
+
throw new MethodNotImplemented();
|
|
148
122
|
}
|
|
149
123
|
};
|
|
150
124
|
Builder = __decorate([
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
__metadata("design:paramtypes", [Object,
|
|
125
|
+
NewInstance(),
|
|
126
|
+
Inject(Container),
|
|
127
|
+
__metadata("design:paramtypes", [Object, OrmDriver, Object])
|
|
154
128
|
], Builder);
|
|
155
|
-
|
|
129
|
+
export { Builder };
|
|
156
130
|
/**
|
|
157
131
|
* Base class for queires. Implements basic query functionality
|
|
158
132
|
*
|
|
@@ -192,7 +166,7 @@ let QueryBuilder = class QueryBuilder extends Builder {
|
|
|
192
166
|
*/
|
|
193
167
|
database(database) {
|
|
194
168
|
if (!database) {
|
|
195
|
-
throw new
|
|
169
|
+
throw new InvalidArgument(`schema argument cannot be null or empty`);
|
|
196
170
|
}
|
|
197
171
|
this._database = database;
|
|
198
172
|
return this;
|
|
@@ -210,7 +184,7 @@ let QueryBuilder = class QueryBuilder extends Builder {
|
|
|
210
184
|
*/
|
|
211
185
|
setTable(table, alias) {
|
|
212
186
|
if (!table.trim()) {
|
|
213
|
-
throw new
|
|
187
|
+
throw new InvalidArgument('table name is empty');
|
|
214
188
|
}
|
|
215
189
|
this._table = table;
|
|
216
190
|
this.setAlias(alias);
|
|
@@ -230,11 +204,11 @@ let QueryBuilder = class QueryBuilder extends Builder {
|
|
|
230
204
|
}
|
|
231
205
|
};
|
|
232
206
|
QueryBuilder = __decorate([
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
__metadata("design:paramtypes", [Object,
|
|
207
|
+
NewInstance(),
|
|
208
|
+
Inject(Container),
|
|
209
|
+
__metadata("design:paramtypes", [Object, OrmDriver, Object])
|
|
236
210
|
], QueryBuilder);
|
|
237
|
-
|
|
211
|
+
export { QueryBuilder };
|
|
238
212
|
let LimitBuilder = class LimitBuilder {
|
|
239
213
|
constructor() {
|
|
240
214
|
this._first = false;
|
|
@@ -245,14 +219,14 @@ let LimitBuilder = class LimitBuilder {
|
|
|
245
219
|
}
|
|
246
220
|
take(count) {
|
|
247
221
|
if (count <= 0) {
|
|
248
|
-
throw new
|
|
222
|
+
throw new InvalidArgument(`take count cannot be negative number`);
|
|
249
223
|
}
|
|
250
224
|
this._limit.limit = count;
|
|
251
225
|
return this;
|
|
252
226
|
}
|
|
253
227
|
skip(count) {
|
|
254
228
|
if (count < 0) {
|
|
255
|
-
throw new
|
|
229
|
+
throw new InvalidArgument(`skip count cannot be negative number`);
|
|
256
230
|
}
|
|
257
231
|
this._limit.offset = count;
|
|
258
232
|
return this;
|
|
@@ -263,7 +237,7 @@ let LimitBuilder = class LimitBuilder {
|
|
|
263
237
|
return (await this);
|
|
264
238
|
}
|
|
265
239
|
async firstOrFail() {
|
|
266
|
-
return this.firstOrThrow(new
|
|
240
|
+
return this.firstOrThrow(new OrmException('not found'));
|
|
267
241
|
}
|
|
268
242
|
async orThrow(error) {
|
|
269
243
|
const result = (await this);
|
|
@@ -284,15 +258,15 @@ let LimitBuilder = class LimitBuilder {
|
|
|
284
258
|
}
|
|
285
259
|
};
|
|
286
260
|
LimitBuilder = __decorate([
|
|
287
|
-
|
|
261
|
+
NewInstance(),
|
|
288
262
|
__metadata("design:paramtypes", [])
|
|
289
263
|
], LimitBuilder);
|
|
290
|
-
|
|
264
|
+
export { LimitBuilder };
|
|
291
265
|
let OrderByBuilder = class OrderByBuilder {
|
|
292
266
|
constructor() {
|
|
293
267
|
this._sort = {
|
|
294
268
|
column: '',
|
|
295
|
-
order:
|
|
269
|
+
order: SordOrder.ASC,
|
|
296
270
|
};
|
|
297
271
|
}
|
|
298
272
|
order(column, direction) {
|
|
@@ -305,14 +279,14 @@ let OrderByBuilder = class OrderByBuilder {
|
|
|
305
279
|
orderBy(column) {
|
|
306
280
|
this._sort = {
|
|
307
281
|
column,
|
|
308
|
-
order:
|
|
282
|
+
order: SordOrder.ASC,
|
|
309
283
|
};
|
|
310
284
|
return this;
|
|
311
285
|
}
|
|
312
286
|
orderByDescending(column) {
|
|
313
287
|
this._sort = {
|
|
314
288
|
column,
|
|
315
|
-
order:
|
|
289
|
+
order: SordOrder.DESC,
|
|
316
290
|
};
|
|
317
291
|
return this;
|
|
318
292
|
}
|
|
@@ -321,10 +295,10 @@ let OrderByBuilder = class OrderByBuilder {
|
|
|
321
295
|
}
|
|
322
296
|
};
|
|
323
297
|
OrderByBuilder = __decorate([
|
|
324
|
-
|
|
298
|
+
NewInstance(),
|
|
325
299
|
__metadata("design:paramtypes", [])
|
|
326
300
|
], OrderByBuilder);
|
|
327
|
-
|
|
301
|
+
export { OrderByBuilder };
|
|
328
302
|
let ColumnsBuilder = class ColumnsBuilder {
|
|
329
303
|
constructor() {
|
|
330
304
|
this._columns = [];
|
|
@@ -342,24 +316,24 @@ let ColumnsBuilder = class ColumnsBuilder {
|
|
|
342
316
|
return this;
|
|
343
317
|
}
|
|
344
318
|
columns(names) {
|
|
345
|
-
const descriptor =
|
|
319
|
+
const descriptor = extractModelDescriptor(this._model);
|
|
346
320
|
this._columns = names.map((n) => {
|
|
347
|
-
return this._container.resolve(
|
|
321
|
+
return this._container.resolve(ColumnStatement, [n, null, this._tableAlias, descriptor?.Columns.find((c) => c.Name === n)]);
|
|
348
322
|
});
|
|
349
323
|
return this;
|
|
350
324
|
}
|
|
351
325
|
select(column, alias) {
|
|
352
|
-
const descriptor =
|
|
326
|
+
const descriptor = extractModelDescriptor(this._model);
|
|
353
327
|
if (column instanceof Map) {
|
|
354
328
|
column.forEach((alias, colName) => {
|
|
355
|
-
this._columns.push(this._container.resolve(
|
|
329
|
+
this._columns.push(this._container.resolve(ColumnStatement, [colName, alias, this._tableAlias, descriptor?.Columns.find((c) => c.Name === colName)]));
|
|
356
330
|
});
|
|
357
331
|
}
|
|
358
332
|
if (column instanceof RawQuery) {
|
|
359
|
-
this._columns.push(this._container.resolve(
|
|
333
|
+
this._columns.push(this._container.resolve(ColumnRawStatement, [column, null, this._tableAlias]));
|
|
360
334
|
}
|
|
361
335
|
else {
|
|
362
|
-
this._columns.push(this._container.resolve(
|
|
336
|
+
this._columns.push(this._container.resolve(ColumnStatement, [column, alias, this._tableAlias, descriptor?.Columns.find((c) => c.Name === column)]));
|
|
363
337
|
}
|
|
364
338
|
return this;
|
|
365
339
|
}
|
|
@@ -368,17 +342,11 @@ let ColumnsBuilder = class ColumnsBuilder {
|
|
|
368
342
|
}
|
|
369
343
|
};
|
|
370
344
|
ColumnsBuilder = __decorate([
|
|
371
|
-
|
|
345
|
+
NewInstance(),
|
|
372
346
|
__metadata("design:paramtypes", [])
|
|
373
347
|
], ColumnsBuilder);
|
|
374
|
-
|
|
348
|
+
export { ColumnsBuilder };
|
|
375
349
|
let RawQuery = RawQuery_1 = class RawQuery {
|
|
376
|
-
constructor(query, bindings) {
|
|
377
|
-
this._query = '';
|
|
378
|
-
this._bindings = [];
|
|
379
|
-
this._query = query;
|
|
380
|
-
this._bindings = bindings;
|
|
381
|
-
}
|
|
382
350
|
get Query() {
|
|
383
351
|
return this._query;
|
|
384
352
|
}
|
|
@@ -388,13 +356,19 @@ let RawQuery = RawQuery_1 = class RawQuery {
|
|
|
388
356
|
static create(query, bindings) {
|
|
389
357
|
return new RawQuery_1(query, bindings);
|
|
390
358
|
}
|
|
359
|
+
constructor(query, bindings) {
|
|
360
|
+
this._query = '';
|
|
361
|
+
this._bindings = [];
|
|
362
|
+
this._query = query;
|
|
363
|
+
this._bindings = bindings;
|
|
364
|
+
}
|
|
391
365
|
};
|
|
392
366
|
RawQuery = RawQuery_1 = __decorate([
|
|
393
|
-
|
|
367
|
+
NewInstance(),
|
|
394
368
|
__metadata("design:paramtypes", [String, Array])
|
|
395
369
|
], RawQuery);
|
|
396
|
-
|
|
397
|
-
class GroupByBuilder {
|
|
370
|
+
export { RawQuery };
|
|
371
|
+
export class GroupByBuilder {
|
|
398
372
|
constructor() {
|
|
399
373
|
this._groupStatements = [];
|
|
400
374
|
}
|
|
@@ -406,98 +380,96 @@ class GroupByBuilder {
|
|
|
406
380
|
return this;
|
|
407
381
|
}
|
|
408
382
|
groupBy(expression) {
|
|
409
|
-
this._groupStatements.push(this._container.resolve(
|
|
383
|
+
this._groupStatements.push(this._container.resolve(GroupByStatement, [expression]));
|
|
410
384
|
return this;
|
|
411
385
|
}
|
|
412
386
|
}
|
|
413
|
-
|
|
414
|
-
|
|
387
|
+
export class JoinBuilder {
|
|
388
|
+
get JoinStatements() {
|
|
389
|
+
return this._joinStatements;
|
|
390
|
+
}
|
|
415
391
|
constructor(container) {
|
|
416
392
|
this._joinStatements = [];
|
|
417
393
|
this._container = container;
|
|
418
394
|
this._joinStatements = [];
|
|
419
395
|
}
|
|
420
|
-
get JoinStatements() {
|
|
421
|
-
return this._joinStatements;
|
|
422
|
-
}
|
|
423
396
|
clearJoins() {
|
|
424
397
|
this._joinStatements = [];
|
|
425
398
|
return this;
|
|
426
399
|
}
|
|
427
400
|
innerJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
428
|
-
this.addJoinStatement.call(this,
|
|
401
|
+
this.addJoinStatement.call(this, JoinMethod.INNER, ...arguments);
|
|
429
402
|
return this;
|
|
430
403
|
}
|
|
431
404
|
leftJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
432
|
-
this.addJoinStatement.call(this,
|
|
405
|
+
this.addJoinStatement.call(this, JoinMethod.LEFT, ...arguments);
|
|
433
406
|
return this;
|
|
434
407
|
}
|
|
435
408
|
leftOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
436
|
-
this.addJoinStatement.call(this,
|
|
409
|
+
this.addJoinStatement.call(this, JoinMethod.LEFT_OUTER, ...arguments);
|
|
437
410
|
return this;
|
|
438
411
|
}
|
|
439
412
|
rightJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
440
|
-
this.addJoinStatement.call(this,
|
|
413
|
+
this.addJoinStatement.call(this, JoinMethod.RIGHT, ...arguments);
|
|
441
414
|
return this;
|
|
442
415
|
}
|
|
443
416
|
rightOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
444
|
-
this.addJoinStatement.call(this,
|
|
417
|
+
this.addJoinStatement.call(this, JoinMethod.RIGHT_OUTER, ...arguments);
|
|
445
418
|
return this;
|
|
446
419
|
}
|
|
447
420
|
fullOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
448
|
-
this.addJoinStatement.call(this,
|
|
421
|
+
this.addJoinStatement.call(this, JoinMethod.FULL_OUTER, ...arguments);
|
|
449
422
|
return this;
|
|
450
423
|
}
|
|
451
424
|
crossJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
|
|
452
|
-
this.addJoinStatement.call(this,
|
|
425
|
+
this.addJoinStatement.call(this, JoinMethod.CROSS, ...arguments);
|
|
453
426
|
return this;
|
|
454
427
|
}
|
|
455
428
|
addJoinStatement(method, table, AliasOrForeignKey, fkOrPkKey, primaryKey) {
|
|
456
429
|
let stmt = null;
|
|
457
430
|
if (arguments.length === 3) {
|
|
458
|
-
stmt = this._container.resolve(
|
|
431
|
+
stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, AliasOrForeignKey]);
|
|
459
432
|
}
|
|
460
433
|
else if (arguments.length === 4) {
|
|
461
|
-
stmt = this._container.resolve(
|
|
434
|
+
stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, AliasOrForeignKey, fkOrPkKey, null, this._tableAlias]);
|
|
462
435
|
}
|
|
463
436
|
else if (arguments.length === 5) {
|
|
464
|
-
stmt = this._container.resolve(
|
|
437
|
+
stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, fkOrPkKey, primaryKey, AliasOrForeignKey, this._tableAlias]);
|
|
465
438
|
}
|
|
466
439
|
else {
|
|
467
|
-
stmt = this._container.resolve(
|
|
440
|
+
stmt = this._container.resolve(JoinStatement, [this, this._model, table, method]);
|
|
468
441
|
}
|
|
469
442
|
this.JoinStatements.push(stmt);
|
|
470
443
|
}
|
|
471
444
|
}
|
|
472
|
-
exports.JoinBuilder = JoinBuilder;
|
|
473
445
|
let WithRecursiveBuilder = class WithRecursiveBuilder {
|
|
474
446
|
get CteRecursive() {
|
|
475
447
|
return this._cteStatement;
|
|
476
448
|
}
|
|
477
449
|
withRecursive(rcKeyName, pkName) {
|
|
478
|
-
this._cteStatement = this._container.resolve(
|
|
450
|
+
this._cteStatement = this._container.resolve(WithRecursiveStatement, ['cte', this, rcKeyName, pkName]);
|
|
479
451
|
return this;
|
|
480
452
|
}
|
|
481
453
|
};
|
|
482
454
|
WithRecursiveBuilder = __decorate([
|
|
483
|
-
|
|
455
|
+
NewInstance()
|
|
484
456
|
], WithRecursiveBuilder);
|
|
485
|
-
|
|
457
|
+
export { WithRecursiveBuilder };
|
|
486
458
|
let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
|
|
487
|
-
constructor(container, tableAlias) {
|
|
488
|
-
this._statements = [];
|
|
489
|
-
this._boolean = enums_1.WhereBoolean.AND;
|
|
490
|
-
this._container = container;
|
|
491
|
-
this._boolean = enums_1.WhereBoolean.AND;
|
|
492
|
-
this._statements = [];
|
|
493
|
-
this._tableAlias = tableAlias;
|
|
494
|
-
}
|
|
495
459
|
get Statements() {
|
|
496
460
|
return this._statements;
|
|
497
461
|
}
|
|
498
462
|
get Op() {
|
|
499
463
|
return this._boolean;
|
|
500
464
|
}
|
|
465
|
+
constructor(container, tableAlias) {
|
|
466
|
+
this._statements = [];
|
|
467
|
+
this._boolean = WhereBoolean.AND;
|
|
468
|
+
this._container = container;
|
|
469
|
+
this._boolean = WhereBoolean.AND;
|
|
470
|
+
this._statements = [];
|
|
471
|
+
this._tableAlias = tableAlias;
|
|
472
|
+
}
|
|
501
473
|
where(column, operator, value) {
|
|
502
474
|
const self = this;
|
|
503
475
|
// Support "where true || where false"
|
|
@@ -505,18 +477,18 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
|
|
|
505
477
|
return this.where(RawQuery.create(column ? 'TRUE' : 'FALSE'));
|
|
506
478
|
}
|
|
507
479
|
if (column instanceof RawQuery) {
|
|
508
|
-
this.Statements.push(this._container.resolve(
|
|
480
|
+
this.Statements.push(this._container.resolve(RawQueryStatement, [column.Query, column.Bindings, self._tableAlias]));
|
|
509
481
|
return this;
|
|
510
482
|
}
|
|
511
483
|
// handle nested where's
|
|
512
484
|
if (_.isFunction(column)) {
|
|
513
485
|
const builder = new WhereBuilder_1(this._container, this._tableAlias);
|
|
514
486
|
column.call(builder);
|
|
515
|
-
self.Statements.push(this._container.resolve(
|
|
487
|
+
self.Statements.push(this._container.resolve(WhereQueryStatement, [builder, self._tableAlias]));
|
|
516
488
|
return this;
|
|
517
489
|
}
|
|
518
490
|
// handle simple key = object[key] AND ....
|
|
519
|
-
if (_.isObject(column) && !(column instanceof
|
|
491
|
+
if (_.isObject(column) && !(column instanceof Wrap)) {
|
|
520
492
|
return this.whereObject(column);
|
|
521
493
|
}
|
|
522
494
|
if (typeof value === 'undefined') {
|
|
@@ -530,15 +502,15 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
|
|
|
530
502
|
function _handleForTwo(c, v) {
|
|
531
503
|
let sVal = v;
|
|
532
504
|
if (sVal === undefined) {
|
|
533
|
-
throw new
|
|
505
|
+
throw new InvalidArgument(`value cannot be undefined`);
|
|
534
506
|
}
|
|
535
|
-
if (!_.isString(c) && !(c instanceof
|
|
536
|
-
throw new
|
|
507
|
+
if (!_.isString(c) && !(c instanceof Wrap)) {
|
|
508
|
+
throw new InvalidArgument(`column is not of type string or wrapped.`);
|
|
537
509
|
}
|
|
538
510
|
if (sVal === null) {
|
|
539
511
|
return this.whereNull(c);
|
|
540
512
|
}
|
|
541
|
-
self._statements.push(self._container.resolve(
|
|
513
|
+
self._statements.push(self._container.resolve(WhereStatement, [c, SqlOperator.EQ, sVal, self._tableAlias, this._container, self._model]));
|
|
542
514
|
return self;
|
|
543
515
|
}
|
|
544
516
|
/**
|
|
@@ -548,76 +520,76 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
|
|
|
548
520
|
function _handleForThree(c, o, v) {
|
|
549
521
|
let sVal = v;
|
|
550
522
|
if (!isWhereOperator(o)) {
|
|
551
|
-
throw new
|
|
523
|
+
throw new InvalidArgument(`operator ${o} is invalid`);
|
|
552
524
|
}
|
|
553
|
-
if (!_.isString(c) && !(c instanceof
|
|
554
|
-
throw new
|
|
525
|
+
if (!_.isString(c) && !(c instanceof Wrap)) {
|
|
526
|
+
throw new InvalidArgument(`column is not of type string or wrapped.`);
|
|
555
527
|
}
|
|
556
528
|
if (sVal === null) {
|
|
557
529
|
return this.whereNull(c);
|
|
558
530
|
}
|
|
559
531
|
if (sVal === null) {
|
|
560
|
-
return o ===
|
|
532
|
+
return o === SqlOperator.NOT_NULL ? this.whereNotNull(c) : this.whereNull(c);
|
|
561
533
|
}
|
|
562
|
-
self._statements.push(self._container.resolve(
|
|
534
|
+
self._statements.push(self._container.resolve(WhereStatement, [c, o, sVal, self._tableAlias, this._container, self._model]));
|
|
563
535
|
return this;
|
|
564
536
|
}
|
|
565
537
|
}
|
|
566
538
|
orWhere(column, ..._args) {
|
|
567
|
-
this._boolean =
|
|
539
|
+
this._boolean = WhereBoolean.OR;
|
|
568
540
|
return this.where(column, ...Array.from(arguments).slice(1));
|
|
569
541
|
}
|
|
570
542
|
andWhere(column, ..._args) {
|
|
571
|
-
this._boolean =
|
|
543
|
+
this._boolean = WhereBoolean.AND;
|
|
572
544
|
return this.where(column, ...Array.from(arguments).slice(1));
|
|
573
545
|
}
|
|
574
546
|
whereObject(obj) {
|
|
575
547
|
for (const key of Object.keys(obj)) {
|
|
576
|
-
this.andWhere(key,
|
|
548
|
+
this.andWhere(key, SqlOperator.EQ, obj[key]);
|
|
577
549
|
}
|
|
578
550
|
return this;
|
|
579
551
|
}
|
|
580
552
|
whereNotNull(column) {
|
|
581
|
-
this._statements.push(this._container.resolve(
|
|
553
|
+
this._statements.push(this._container.resolve(WhereStatement, [column, SqlOperator.NOT_NULL, null, this._tableAlias, this._container]));
|
|
582
554
|
return this;
|
|
583
555
|
}
|
|
584
556
|
whereNull(column) {
|
|
585
|
-
this._statements.push(this._container.resolve(
|
|
557
|
+
this._statements.push(this._container.resolve(WhereStatement, [column, SqlOperator.NULL, null, this._tableAlias, this._container]));
|
|
586
558
|
return this;
|
|
587
559
|
}
|
|
588
560
|
whereNot(column, val) {
|
|
589
|
-
return this.where(column,
|
|
561
|
+
return this.where(column, SqlOperator.NOT, val);
|
|
590
562
|
}
|
|
591
563
|
whereIn(column, val) {
|
|
592
|
-
this._statements.push(this._container.resolve(
|
|
564
|
+
this._statements.push(this._container.resolve(InStatement, [column, val, false, this._tableAlias, this._container]));
|
|
593
565
|
return this;
|
|
594
566
|
}
|
|
595
567
|
whereNotIn(column, val) {
|
|
596
|
-
this._statements.push(this._container.resolve(
|
|
568
|
+
this._statements.push(this._container.resolve(InStatement, [column, val, true, this._tableAlias, this._container]));
|
|
597
569
|
return this;
|
|
598
570
|
}
|
|
599
571
|
whereExist(query) {
|
|
600
|
-
this._statements.push(this._container.resolve(
|
|
572
|
+
this._statements.push(this._container.resolve(ExistsQueryStatement, [query, false]));
|
|
601
573
|
return this;
|
|
602
574
|
}
|
|
603
575
|
whereNotExists(query) {
|
|
604
|
-
this._statements.push(this._container.resolve(
|
|
576
|
+
this._statements.push(this._container.resolve(ExistsQueryStatement, [query, true]));
|
|
605
577
|
return this;
|
|
606
578
|
}
|
|
607
579
|
whereBetween(column, val) {
|
|
608
|
-
this._statements.push(this._container.resolve(
|
|
580
|
+
this._statements.push(this._container.resolve(BetweenStatement, [column, val, false, this._tableAlias]));
|
|
609
581
|
return this;
|
|
610
582
|
}
|
|
611
583
|
whereNotBetween(column, val) {
|
|
612
|
-
this._statements.push(this._container.resolve(
|
|
584
|
+
this._statements.push(this._container.resolve(BetweenStatement, [column, val, true, this._tableAlias]));
|
|
613
585
|
return this;
|
|
614
586
|
}
|
|
615
587
|
whereInSet(column, val) {
|
|
616
|
-
this._statements.push(this._container.resolve(
|
|
588
|
+
this._statements.push(this._container.resolve(InSetStatement, [column, val, false, this._tableAlias]));
|
|
617
589
|
return this;
|
|
618
590
|
}
|
|
619
591
|
whereNotInSet(column, val) {
|
|
620
|
-
this._statements.push(this._container.resolve(
|
|
592
|
+
this._statements.push(this._container.resolve(InSetStatement, [column, val, true, this._tableAlias]));
|
|
621
593
|
return this;
|
|
622
594
|
}
|
|
623
595
|
clearWhere() {
|
|
@@ -626,11 +598,20 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
|
|
|
626
598
|
}
|
|
627
599
|
};
|
|
628
600
|
WhereBuilder = WhereBuilder_1 = __decorate([
|
|
629
|
-
|
|
630
|
-
__metadata("design:paramtypes", [
|
|
601
|
+
NewInstance(),
|
|
602
|
+
__metadata("design:paramtypes", [Container, String])
|
|
631
603
|
], WhereBuilder);
|
|
632
|
-
|
|
633
|
-
class SelectQueryBuilder extends QueryBuilder {
|
|
604
|
+
export { WhereBuilder };
|
|
605
|
+
let SelectQueryBuilder = SelectQueryBuilder_1 = class SelectQueryBuilder extends QueryBuilder {
|
|
606
|
+
get Owner() {
|
|
607
|
+
return this._owner;
|
|
608
|
+
}
|
|
609
|
+
get IsDistinct() {
|
|
610
|
+
return this._distinct;
|
|
611
|
+
}
|
|
612
|
+
get Relations() {
|
|
613
|
+
return this._relations;
|
|
614
|
+
}
|
|
634
615
|
constructor(container, driver, model, owner) {
|
|
635
616
|
super(container, driver, model);
|
|
636
617
|
this._columns = [];
|
|
@@ -643,11 +624,11 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
643
624
|
this._relations = [];
|
|
644
625
|
this._owner = owner;
|
|
645
626
|
this._distinct = false;
|
|
646
|
-
this._method =
|
|
647
|
-
this._boolean =
|
|
627
|
+
this._method = QueryMethod.SELECT;
|
|
628
|
+
this._boolean = WhereBoolean.AND;
|
|
648
629
|
this._sort = {
|
|
649
630
|
column: '',
|
|
650
|
-
order:
|
|
631
|
+
order: SordOrder.ASC,
|
|
651
632
|
};
|
|
652
633
|
this._first = false;
|
|
653
634
|
this._limit = {
|
|
@@ -655,18 +636,9 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
655
636
|
offset: -1,
|
|
656
637
|
};
|
|
657
638
|
this._nonSelect = false;
|
|
658
|
-
this.QueryContext =
|
|
639
|
+
this.QueryContext = QueryContext.Select;
|
|
659
640
|
this._queryMiddlewares.forEach((x) => x.afterQueryCreation(this));
|
|
660
641
|
}
|
|
661
|
-
get Owner() {
|
|
662
|
-
return this._owner;
|
|
663
|
-
}
|
|
664
|
-
get IsDistinct() {
|
|
665
|
-
return this._distinct;
|
|
666
|
-
}
|
|
667
|
-
get Relations() {
|
|
668
|
-
return this._relations;
|
|
669
|
-
}
|
|
670
642
|
async asRaw() {
|
|
671
643
|
this._asRaw = true;
|
|
672
644
|
return (await this);
|
|
@@ -679,12 +651,12 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
679
651
|
return this;
|
|
680
652
|
}
|
|
681
653
|
clone() {
|
|
682
|
-
const builder = new
|
|
654
|
+
const builder = new SelectQueryBuilder_1(this._container, this._driver, this._model, this._owner);
|
|
683
655
|
builder._columns = this._columns.slice(0);
|
|
684
656
|
builder._joinStatements = this._joinStatements.slice(0);
|
|
685
657
|
builder._statements = this._statements.slice(0);
|
|
686
|
-
builder._limit =
|
|
687
|
-
builder._sort =
|
|
658
|
+
builder._limit = { ...this._limit };
|
|
659
|
+
builder._sort = { ...this._sort };
|
|
688
660
|
builder._boolean = this._boolean;
|
|
689
661
|
builder._distinct = this._distinct;
|
|
690
662
|
builder._table = this._table;
|
|
@@ -692,7 +664,6 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
692
664
|
return builder;
|
|
693
665
|
}
|
|
694
666
|
populate(relation, callback) {
|
|
695
|
-
var _a;
|
|
696
667
|
// if relation was already populated, just call callback on it
|
|
697
668
|
const fRelation = this._relations.find((r) => r.Name === relation);
|
|
698
669
|
if (fRelation) {
|
|
@@ -700,27 +671,27 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
700
671
|
return;
|
|
701
672
|
}
|
|
702
673
|
let relInstance = null;
|
|
703
|
-
const descriptor =
|
|
674
|
+
const descriptor = extractModelDescriptor(this._model);
|
|
704
675
|
if (!descriptor.Relations.has(relation)) {
|
|
705
|
-
throw new
|
|
676
|
+
throw new InvalidArgument(`Relation ${relation} not exists in model ${this._model?.constructor.name}`);
|
|
706
677
|
}
|
|
707
678
|
const relDescription = descriptor.Relations.get(relation);
|
|
708
|
-
if (relDescription.Type ===
|
|
709
|
-
relInstance = this._container.resolve(
|
|
679
|
+
if (relDescription.Type === RelationType.One && relDescription.Recursive) {
|
|
680
|
+
relInstance = this._container.resolve(BelongsToRecursiveRelation, [this._container.get(Orm), this, relDescription, this._owner]);
|
|
710
681
|
}
|
|
711
682
|
else {
|
|
712
683
|
if (relDescription.Recursive) {
|
|
713
|
-
throw new
|
|
684
|
+
throw new InvalidOperation(`cannot mark relation as recursive with non one-to-one relation type`);
|
|
714
685
|
}
|
|
715
686
|
switch (relDescription.Type) {
|
|
716
|
-
case
|
|
717
|
-
relInstance = this._container.resolve(
|
|
687
|
+
case RelationType.One:
|
|
688
|
+
relInstance = this._container.resolve(BelongsToRelation, [this._container.get(Orm), this, relDescription, this._owner]);
|
|
718
689
|
break;
|
|
719
|
-
case
|
|
720
|
-
relInstance = this._container.resolve(
|
|
690
|
+
case RelationType.Many:
|
|
691
|
+
relInstance = this._container.resolve(OneToManyRelation, [this._container.get(Orm), this, relDescription, this._owner]);
|
|
721
692
|
break;
|
|
722
|
-
case
|
|
723
|
-
relInstance = this._container.resolve(
|
|
693
|
+
case RelationType.ManyToMany:
|
|
694
|
+
relInstance = this._container.resolve(ManyToManyRelation, [this._container.get(Orm), this, relDescription, null]);
|
|
724
695
|
break;
|
|
725
696
|
}
|
|
726
697
|
}
|
|
@@ -737,34 +708,34 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
737
708
|
this._middlewares = this._middlewares.concat(builder._middlewares);
|
|
738
709
|
}
|
|
739
710
|
min(column, as) {
|
|
740
|
-
this._columns.push(this._container.resolve(
|
|
711
|
+
this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.MIN, as, this._tableAlias]));
|
|
741
712
|
return this;
|
|
742
713
|
}
|
|
743
714
|
max(column, as) {
|
|
744
|
-
this._columns.push(this._container.resolve(
|
|
715
|
+
this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.MAX, as, this._tableAlias]));
|
|
745
716
|
return this;
|
|
746
717
|
}
|
|
747
718
|
count(column, as) {
|
|
748
|
-
this._columns.push(this._container.resolve(
|
|
719
|
+
this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.COUNT, as, this._tableAlias]));
|
|
749
720
|
return this;
|
|
750
721
|
}
|
|
751
722
|
sum(column, as) {
|
|
752
|
-
this._columns.push(this._container.resolve(
|
|
723
|
+
this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.SUM, as, this._tableAlias]));
|
|
753
724
|
return this;
|
|
754
725
|
}
|
|
755
726
|
avg(column, as) {
|
|
756
|
-
this._columns.push(this._container.resolve(
|
|
727
|
+
this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.AVG, as, this._tableAlias]));
|
|
757
728
|
return this;
|
|
758
729
|
}
|
|
759
730
|
distinct() {
|
|
760
731
|
if (this._columns.length === 0 || this._columns[0].IsWildcard) {
|
|
761
|
-
throw new
|
|
732
|
+
throw new InvalidOperation('Cannot force DISTINCT on unknown column');
|
|
762
733
|
}
|
|
763
734
|
this._distinct = true;
|
|
764
735
|
return this;
|
|
765
736
|
}
|
|
766
737
|
toDB() {
|
|
767
|
-
const compiler = this._container.resolve(
|
|
738
|
+
const compiler = this._container.resolve(SelectQueryCompiler, [this]);
|
|
768
739
|
return compiler.compile();
|
|
769
740
|
}
|
|
770
741
|
then(onfulfilled, onrejected) {
|
|
@@ -790,37 +761,41 @@ class SelectQueryBuilder extends QueryBuilder {
|
|
|
790
761
|
async execute() {
|
|
791
762
|
return (await this);
|
|
792
763
|
}
|
|
793
|
-
}
|
|
764
|
+
};
|
|
794
765
|
__decorate([
|
|
795
|
-
|
|
766
|
+
use(WhereBuilder, LimitBuilder, OrderByBuilder, ColumnsBuilder, JoinBuilder, WithRecursiveBuilder, GroupByBuilder),
|
|
796
767
|
__metadata("design:type", Object)
|
|
797
768
|
], SelectQueryBuilder.prototype, "this", void 0);
|
|
798
|
-
|
|
799
|
-
|
|
769
|
+
SelectQueryBuilder = SelectQueryBuilder_1 = __decorate([
|
|
770
|
+
Injectable(SelectQueryBuilder_1),
|
|
771
|
+
__metadata("design:paramtypes", [Object, OrmDriver, Object, Object])
|
|
772
|
+
], SelectQueryBuilder);
|
|
773
|
+
export { SelectQueryBuilder };
|
|
774
|
+
export class SelectQueryBuilderC extends SelectQueryBuilder {
|
|
800
775
|
}
|
|
801
|
-
|
|
802
|
-
class DeleteQueryBuilder extends QueryBuilder {
|
|
776
|
+
export class DeleteQueryBuilder extends QueryBuilder {
|
|
803
777
|
constructor(container, driver, model) {
|
|
804
778
|
super(container, driver, model);
|
|
805
|
-
this._method =
|
|
779
|
+
this._method = QueryMethod.DELETE;
|
|
806
780
|
this._statements = [];
|
|
807
|
-
this._boolean =
|
|
781
|
+
this._boolean = WhereBoolean.AND;
|
|
808
782
|
this._limit = {
|
|
809
783
|
limit: -1,
|
|
810
784
|
offset: -1,
|
|
811
785
|
};
|
|
812
|
-
this.QueryContext =
|
|
786
|
+
this.QueryContext = QueryContext.Delete;
|
|
813
787
|
}
|
|
814
788
|
toDB() {
|
|
815
|
-
return this._container.resolve(
|
|
789
|
+
return this._container.resolve(DeleteQueryCompiler, [this]).compile();
|
|
816
790
|
}
|
|
817
791
|
}
|
|
818
792
|
__decorate([
|
|
819
|
-
|
|
793
|
+
use(WhereBuilder, LimitBuilder)
|
|
794
|
+
/// @ts-ignore
|
|
795
|
+
,
|
|
820
796
|
__metadata("design:type", Object)
|
|
821
797
|
], DeleteQueryBuilder.prototype, "this", void 0);
|
|
822
|
-
|
|
823
|
-
class OnDuplicateQueryBuilder {
|
|
798
|
+
export class OnDuplicateQueryBuilder {
|
|
824
799
|
constructor(container, insertQueryBuilder, column) {
|
|
825
800
|
this._parent = insertQueryBuilder;
|
|
826
801
|
this._container = container;
|
|
@@ -846,18 +821,17 @@ class OnDuplicateQueryBuilder {
|
|
|
846
821
|
return this._parent.toDB();
|
|
847
822
|
}
|
|
848
823
|
}
|
|
849
|
-
|
|
850
|
-
|
|
824
|
+
export class UpdateQueryBuilder extends QueryBuilder {
|
|
825
|
+
get Value() {
|
|
826
|
+
return this._value;
|
|
827
|
+
}
|
|
851
828
|
constructor(container, driver, model) {
|
|
852
829
|
super(container, driver, model);
|
|
853
830
|
this._value = {};
|
|
854
|
-
this._method =
|
|
855
|
-
this._boolean =
|
|
831
|
+
this._method = QueryMethod.UPDATE;
|
|
832
|
+
this._boolean = WhereBoolean.AND;
|
|
856
833
|
this._statements = [];
|
|
857
|
-
this.QueryContext =
|
|
858
|
-
}
|
|
859
|
-
get Value() {
|
|
860
|
-
return this._value;
|
|
834
|
+
this.QueryContext = QueryContext.Update;
|
|
861
835
|
}
|
|
862
836
|
in(name) {
|
|
863
837
|
this.setTable(name);
|
|
@@ -868,22 +842,14 @@ class UpdateQueryBuilder extends QueryBuilder {
|
|
|
868
842
|
return this;
|
|
869
843
|
}
|
|
870
844
|
toDB() {
|
|
871
|
-
return this._container.resolve(
|
|
845
|
+
return this._container.resolve(UpdateQueryCompiler, [this]).compile();
|
|
872
846
|
}
|
|
873
847
|
}
|
|
874
848
|
__decorate([
|
|
875
|
-
|
|
849
|
+
use(WhereBuilder),
|
|
876
850
|
__metadata("design:type", Object)
|
|
877
851
|
], UpdateQueryBuilder.prototype, "this", void 0);
|
|
878
|
-
|
|
879
|
-
class InsertQueryBuilder extends QueryBuilder {
|
|
880
|
-
constructor(container, driver, model) {
|
|
881
|
-
super(container, driver, model);
|
|
882
|
-
this._method = enums_1.QueryMethod.INSERT;
|
|
883
|
-
this._columns = [];
|
|
884
|
-
this._values = [];
|
|
885
|
-
this.QueryContext = interfaces_1.QueryContext.Insert;
|
|
886
|
-
}
|
|
852
|
+
export class InsertQueryBuilder extends QueryBuilder {
|
|
887
853
|
get Values() {
|
|
888
854
|
return this._values;
|
|
889
855
|
}
|
|
@@ -896,6 +862,13 @@ class InsertQueryBuilder extends QueryBuilder {
|
|
|
896
862
|
get Replace() {
|
|
897
863
|
return this._replace;
|
|
898
864
|
}
|
|
865
|
+
constructor(container, driver, model) {
|
|
866
|
+
super(container, driver, model);
|
|
867
|
+
this._method = QueryMethod.INSERT;
|
|
868
|
+
this._columns = [];
|
|
869
|
+
this._values = [];
|
|
870
|
+
this.QueryContext = QueryContext.Insert;
|
|
871
|
+
}
|
|
899
872
|
/**
|
|
900
873
|
* Sets insert to ignore on duplicate
|
|
901
874
|
*/
|
|
@@ -940,7 +913,7 @@ class InsertQueryBuilder extends QueryBuilder {
|
|
|
940
913
|
onDuplicate(column) {
|
|
941
914
|
let columnToCheck = column;
|
|
942
915
|
if (!columnToCheck && this._model) {
|
|
943
|
-
const dsc =
|
|
916
|
+
const dsc = extractModelDescriptor(this._model);
|
|
944
917
|
columnToCheck = dsc.Columns.filter((c) => c.Unique).map((c) => c.Name);
|
|
945
918
|
}
|
|
946
919
|
this._update = true;
|
|
@@ -948,18 +921,17 @@ class InsertQueryBuilder extends QueryBuilder {
|
|
|
948
921
|
return this.DuplicateQueryBuilder;
|
|
949
922
|
}
|
|
950
923
|
toDB() {
|
|
951
|
-
return this._container.resolve(
|
|
924
|
+
return this._container.resolve(InsertQueryCompiler, [this]).compile();
|
|
952
925
|
}
|
|
953
926
|
}
|
|
954
927
|
__decorate([
|
|
955
|
-
|
|
928
|
+
use(ColumnsBuilder),
|
|
956
929
|
__metadata("design:type", Object)
|
|
957
930
|
], InsertQueryBuilder.prototype, "this", void 0);
|
|
958
|
-
exports.InsertQueryBuilder = InsertQueryBuilder;
|
|
959
931
|
let IndexQueryBuilder = class IndexQueryBuilder extends Builder {
|
|
960
932
|
constructor(container, driver) {
|
|
961
933
|
super(container, driver);
|
|
962
|
-
this.QueryContext =
|
|
934
|
+
this.QueryContext = QueryContext.Schema;
|
|
963
935
|
}
|
|
964
936
|
name(name) {
|
|
965
937
|
this.Name = name;
|
|
@@ -978,19 +950,19 @@ let IndexQueryBuilder = class IndexQueryBuilder extends Builder {
|
|
|
978
950
|
return this;
|
|
979
951
|
}
|
|
980
952
|
toDB() {
|
|
981
|
-
return this._container.resolve(
|
|
953
|
+
return this._container.resolve(IndexQueryCompiler, [this]).compile();
|
|
982
954
|
}
|
|
983
955
|
};
|
|
984
956
|
IndexQueryBuilder = __decorate([
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
__metadata("design:paramtypes", [
|
|
957
|
+
NewInstance(),
|
|
958
|
+
Inject(Container),
|
|
959
|
+
__metadata("design:paramtypes", [Container, OrmDriver])
|
|
988
960
|
], IndexQueryBuilder);
|
|
989
|
-
|
|
961
|
+
export { IndexQueryBuilder };
|
|
990
962
|
let ForeignKeyBuilder = class ForeignKeyBuilder {
|
|
991
963
|
constructor() {
|
|
992
|
-
this.OnDeleteAction =
|
|
993
|
-
this.OnUpdateAction =
|
|
964
|
+
this.OnDeleteAction = ReferentialAction.NoAction;
|
|
965
|
+
this.OnUpdateAction = ReferentialAction.NoAction;
|
|
994
966
|
}
|
|
995
967
|
/**
|
|
996
968
|
*
|
|
@@ -1038,16 +1010,16 @@ let ForeignKeyBuilder = class ForeignKeyBuilder {
|
|
|
1038
1010
|
* Shorhand for on update and on delete cascade settings
|
|
1039
1011
|
*/
|
|
1040
1012
|
cascade() {
|
|
1041
|
-
this.OnUpdateAction =
|
|
1042
|
-
this.OnDeleteAction =
|
|
1013
|
+
this.OnUpdateAction = ReferentialAction.Cascade;
|
|
1014
|
+
this.OnDeleteAction = ReferentialAction.Cascade;
|
|
1043
1015
|
return this;
|
|
1044
1016
|
}
|
|
1045
1017
|
};
|
|
1046
1018
|
ForeignKeyBuilder = __decorate([
|
|
1047
|
-
|
|
1019
|
+
NewInstance(),
|
|
1048
1020
|
__metadata("design:paramtypes", [])
|
|
1049
1021
|
], ForeignKeyBuilder);
|
|
1050
|
-
|
|
1022
|
+
export { ForeignKeyBuilder };
|
|
1051
1023
|
let ColumnQueryBuilder = class ColumnQueryBuilder {
|
|
1052
1024
|
constructor(container, name, type, ...args) {
|
|
1053
1025
|
this.container = container;
|
|
@@ -1080,7 +1052,7 @@ let ColumnQueryBuilder = class ColumnQueryBuilder {
|
|
|
1080
1052
|
return this;
|
|
1081
1053
|
}
|
|
1082
1054
|
default() {
|
|
1083
|
-
this.Default = this.container.resolve((
|
|
1055
|
+
this.Default = this.container.resolve((DefaultValueBuilder), [this]);
|
|
1084
1056
|
return this.Default;
|
|
1085
1057
|
}
|
|
1086
1058
|
primaryKey() {
|
|
@@ -1101,28 +1073,28 @@ let ColumnQueryBuilder = class ColumnQueryBuilder {
|
|
|
1101
1073
|
}
|
|
1102
1074
|
};
|
|
1103
1075
|
ColumnQueryBuilder = __decorate([
|
|
1104
|
-
|
|
1105
|
-
|
|
1076
|
+
NewInstance(),
|
|
1077
|
+
Inject(Container),
|
|
1106
1078
|
__metadata("design:paramtypes", [Object, String, String, Object])
|
|
1107
1079
|
], ColumnQueryBuilder);
|
|
1108
|
-
|
|
1080
|
+
export { ColumnQueryBuilder };
|
|
1109
1081
|
let AlterColumnQueryBuilder = class AlterColumnQueryBuilder extends ColumnQueryBuilder {
|
|
1110
1082
|
constructor(container, name, type, ...args) {
|
|
1111
1083
|
super(container, name, type, ...args);
|
|
1112
1084
|
this.OldName = name;
|
|
1113
1085
|
// we assume add by default
|
|
1114
|
-
this.AlterType =
|
|
1086
|
+
this.AlterType = ColumnAlterationType.Add;
|
|
1115
1087
|
}
|
|
1116
1088
|
addColumn() {
|
|
1117
|
-
this.AlterType =
|
|
1089
|
+
this.AlterType = ColumnAlterationType.Add;
|
|
1118
1090
|
return this;
|
|
1119
1091
|
}
|
|
1120
1092
|
modify() {
|
|
1121
|
-
this.AlterType =
|
|
1093
|
+
this.AlterType = ColumnAlterationType.Modify;
|
|
1122
1094
|
return this;
|
|
1123
1095
|
}
|
|
1124
1096
|
rename(newName) {
|
|
1125
|
-
this.AlterType =
|
|
1097
|
+
this.AlterType = ColumnAlterationType.Rename;
|
|
1126
1098
|
this.Name = newName;
|
|
1127
1099
|
return this;
|
|
1128
1100
|
}
|
|
@@ -1132,22 +1104,21 @@ let AlterColumnQueryBuilder = class AlterColumnQueryBuilder extends ColumnQueryB
|
|
|
1132
1104
|
}
|
|
1133
1105
|
};
|
|
1134
1106
|
AlterColumnQueryBuilder = __decorate([
|
|
1135
|
-
|
|
1107
|
+
Inject(Container),
|
|
1136
1108
|
__metadata("design:paramtypes", [Object, String, String, Object])
|
|
1137
1109
|
], AlterColumnQueryBuilder);
|
|
1138
|
-
|
|
1139
|
-
class TableExistsQueryBuilder extends QueryBuilder {
|
|
1110
|
+
export { AlterColumnQueryBuilder };
|
|
1111
|
+
export class TableExistsQueryBuilder extends QueryBuilder {
|
|
1140
1112
|
constructor(container, driver, name) {
|
|
1141
1113
|
super(container, driver, null);
|
|
1142
1114
|
this.setTable(name);
|
|
1143
|
-
this.QueryContext =
|
|
1115
|
+
this.QueryContext = QueryContext.Select;
|
|
1144
1116
|
}
|
|
1145
1117
|
toDB() {
|
|
1146
|
-
return this._container.resolve(
|
|
1118
|
+
return this._container.resolve(TableExistsCompiler, [this]).compile();
|
|
1147
1119
|
}
|
|
1148
1120
|
}
|
|
1149
|
-
|
|
1150
|
-
class DropTableQueryBuilder extends QueryBuilder {
|
|
1121
|
+
export class DropTableQueryBuilder extends QueryBuilder {
|
|
1151
1122
|
constructor(container, driver, name, database) {
|
|
1152
1123
|
super(container, driver, null);
|
|
1153
1124
|
this.setTable(name);
|
|
@@ -1155,28 +1126,27 @@ class DropTableQueryBuilder extends QueryBuilder {
|
|
|
1155
1126
|
this.database(database);
|
|
1156
1127
|
}
|
|
1157
1128
|
this.Exists = false;
|
|
1158
|
-
this.QueryContext =
|
|
1129
|
+
this.QueryContext = QueryContext.Schema;
|
|
1159
1130
|
}
|
|
1160
1131
|
ifExists() {
|
|
1161
1132
|
this.Exists = true;
|
|
1162
1133
|
return this;
|
|
1163
1134
|
}
|
|
1164
1135
|
toDB() {
|
|
1165
|
-
return this._container.resolve(
|
|
1136
|
+
return this._container.resolve(DropTableCompiler, [this]).compile();
|
|
1166
1137
|
}
|
|
1167
1138
|
}
|
|
1168
|
-
|
|
1169
|
-
|
|
1139
|
+
export class AlterTableQueryBuilder extends QueryBuilder {
|
|
1140
|
+
get Columns() {
|
|
1141
|
+
return this._columns;
|
|
1142
|
+
}
|
|
1170
1143
|
constructor(container, driver, name) {
|
|
1171
1144
|
super(container, driver, null);
|
|
1172
1145
|
this.setTable(name);
|
|
1173
|
-
this.QueryContext =
|
|
1146
|
+
this.QueryContext = QueryContext.Schema;
|
|
1174
1147
|
this._columns = [];
|
|
1175
1148
|
this.DroppedColumns = [];
|
|
1176
1149
|
}
|
|
1177
|
-
get Columns() {
|
|
1178
|
-
return this._columns;
|
|
1179
|
-
}
|
|
1180
1150
|
/**
|
|
1181
1151
|
* Renames table
|
|
1182
1152
|
*
|
|
@@ -1189,22 +1159,10 @@ class AlterTableQueryBuilder extends QueryBuilder {
|
|
|
1189
1159
|
this.DroppedColumns.push(column);
|
|
1190
1160
|
}
|
|
1191
1161
|
toDB() {
|
|
1192
|
-
return this._container.resolve(
|
|
1162
|
+
return this._container.resolve(AlterTableQueryCompiler, [this]).compile();
|
|
1193
1163
|
}
|
|
1194
1164
|
}
|
|
1195
|
-
|
|
1196
|
-
class TableQueryBuilder extends QueryBuilder {
|
|
1197
|
-
constructor(container, driver, name) {
|
|
1198
|
-
super(container, driver, null);
|
|
1199
|
-
this._charset = '';
|
|
1200
|
-
this._comment = '';
|
|
1201
|
-
this._columns = [];
|
|
1202
|
-
this._foreignKeys = [];
|
|
1203
|
-
this._temporary = false;
|
|
1204
|
-
this._trackHistory = false;
|
|
1205
|
-
this.setTable(name);
|
|
1206
|
-
this.QueryContext = interfaces_1.QueryContext.Schema;
|
|
1207
|
-
}
|
|
1165
|
+
export class TableQueryBuilder extends QueryBuilder {
|
|
1208
1166
|
/**
|
|
1209
1167
|
* Alias for string(name, 36 )
|
|
1210
1168
|
*/
|
|
@@ -1245,6 +1203,17 @@ class TableQueryBuilder extends QueryBuilder {
|
|
|
1245
1203
|
get TrackHistory() {
|
|
1246
1204
|
return this._trackHistory;
|
|
1247
1205
|
}
|
|
1206
|
+
constructor(container, driver, name) {
|
|
1207
|
+
super(container, driver, null);
|
|
1208
|
+
this._charset = '';
|
|
1209
|
+
this._comment = '';
|
|
1210
|
+
this._columns = [];
|
|
1211
|
+
this._foreignKeys = [];
|
|
1212
|
+
this._temporary = false;
|
|
1213
|
+
this._trackHistory = false;
|
|
1214
|
+
this.setTable(name);
|
|
1215
|
+
this.QueryContext = QueryContext.Schema;
|
|
1216
|
+
}
|
|
1248
1217
|
increments(name) {
|
|
1249
1218
|
return this.int(name).autoIncrement().notNull().primaryKey();
|
|
1250
1219
|
}
|
|
@@ -1261,10 +1230,9 @@ class TableQueryBuilder extends QueryBuilder {
|
|
|
1261
1230
|
return builder;
|
|
1262
1231
|
}
|
|
1263
1232
|
toDB() {
|
|
1264
|
-
return this._container.resolve(
|
|
1233
|
+
return this._container.resolve(TableQueryCompiler, [this]).compile();
|
|
1265
1234
|
}
|
|
1266
1235
|
}
|
|
1267
|
-
exports.TableQueryBuilder = TableQueryBuilder;
|
|
1268
1236
|
let TruncateTableQueryBuilder = class TruncateTableQueryBuilder extends QueryBuilder {
|
|
1269
1237
|
constructor(container, driver) {
|
|
1270
1238
|
super(container, driver);
|
|
@@ -1272,24 +1240,16 @@ let TruncateTableQueryBuilder = class TruncateTableQueryBuilder extends QueryBui
|
|
|
1272
1240
|
this.driver = driver;
|
|
1273
1241
|
}
|
|
1274
1242
|
toDB() {
|
|
1275
|
-
return this._container.resolve(
|
|
1243
|
+
return this._container.resolve(TruncateTableQueryCompiler, [this]).compile();
|
|
1276
1244
|
}
|
|
1277
1245
|
};
|
|
1278
1246
|
TruncateTableQueryBuilder = __decorate([
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
__metadata("design:paramtypes", [
|
|
1247
|
+
NewInstance(),
|
|
1248
|
+
Inject(Container),
|
|
1249
|
+
__metadata("design:paramtypes", [Container, OrmDriver])
|
|
1282
1250
|
], TruncateTableQueryBuilder);
|
|
1283
|
-
|
|
1251
|
+
export { TruncateTableQueryBuilder };
|
|
1284
1252
|
let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
|
|
1285
|
-
constructor(container, driver) {
|
|
1286
|
-
super(container, driver);
|
|
1287
|
-
this.container = container;
|
|
1288
|
-
this.driver = driver;
|
|
1289
|
-
this._shallow = true;
|
|
1290
|
-
this._cloneSrc = '';
|
|
1291
|
-
this._temporary = false;
|
|
1292
|
-
}
|
|
1293
1253
|
get CloneSource() {
|
|
1294
1254
|
return this._cloneSrc;
|
|
1295
1255
|
}
|
|
@@ -1302,6 +1262,14 @@ let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
|
|
|
1302
1262
|
get Filter() {
|
|
1303
1263
|
return this._filter;
|
|
1304
1264
|
}
|
|
1265
|
+
constructor(container, driver) {
|
|
1266
|
+
super(container, driver);
|
|
1267
|
+
this.container = container;
|
|
1268
|
+
this.driver = driver;
|
|
1269
|
+
this._shallow = true;
|
|
1270
|
+
this._cloneSrc = '';
|
|
1271
|
+
this._temporary = false;
|
|
1272
|
+
}
|
|
1305
1273
|
/**
|
|
1306
1274
|
* Clones table structure without data
|
|
1307
1275
|
* Shorthand for createTable(( table) => table.clone("new"));
|
|
@@ -1333,18 +1301,17 @@ let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
|
|
|
1333
1301
|
return this;
|
|
1334
1302
|
}
|
|
1335
1303
|
toDB() {
|
|
1336
|
-
return this._container.resolve(
|
|
1304
|
+
return this._container.resolve(TableCloneQueryCompiler, [this]).compile();
|
|
1337
1305
|
}
|
|
1338
1306
|
};
|
|
1339
1307
|
CloneTableQueryBuilder = __decorate([
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
__metadata("design:paramtypes", [
|
|
1308
|
+
NewInstance(),
|
|
1309
|
+
Inject(Container),
|
|
1310
|
+
__metadata("design:paramtypes", [Container, OrmDriver])
|
|
1343
1311
|
], CloneTableQueryBuilder);
|
|
1344
|
-
|
|
1345
|
-
class EventIntervalDesc {
|
|
1312
|
+
export { CloneTableQueryBuilder };
|
|
1313
|
+
export class EventIntervalDesc {
|
|
1346
1314
|
}
|
|
1347
|
-
exports.EventIntervalDesc = EventIntervalDesc;
|
|
1348
1315
|
let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
|
|
1349
1316
|
constructor(container, driver, Name) {
|
|
1350
1317
|
super(container, driver);
|
|
@@ -1380,7 +1347,7 @@ let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
|
|
|
1380
1347
|
* @param sql - code to execute, could be raw sql query, single builder, or multiple builders that will be executed on by one
|
|
1381
1348
|
*/
|
|
1382
1349
|
do(sql) {
|
|
1383
|
-
if (sql instanceof
|
|
1350
|
+
if (sql instanceof RawQueryStatement) {
|
|
1384
1351
|
this.RawSql = sql;
|
|
1385
1352
|
}
|
|
1386
1353
|
else if (Array.isArray(sql)) {
|
|
@@ -1400,15 +1367,15 @@ let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
|
|
|
1400
1367
|
this.Comment = comment;
|
|
1401
1368
|
}
|
|
1402
1369
|
toDB() {
|
|
1403
|
-
return this._container.resolve(
|
|
1370
|
+
return this._container.resolve(EventQueryCompiler, [this]).compile();
|
|
1404
1371
|
}
|
|
1405
1372
|
};
|
|
1406
1373
|
EventQueryBuilder = __decorate([
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
__metadata("design:paramtypes", [
|
|
1374
|
+
NewInstance(),
|
|
1375
|
+
Inject(Container),
|
|
1376
|
+
__metadata("design:paramtypes", [Container, OrmDriver, String])
|
|
1410
1377
|
], EventQueryBuilder);
|
|
1411
|
-
|
|
1378
|
+
export { EventQueryBuilder };
|
|
1412
1379
|
let DropEventQueryBuilder = class DropEventQueryBuilder extends QueryBuilder {
|
|
1413
1380
|
constructor(container, driver, Name) {
|
|
1414
1381
|
super(container, driver);
|
|
@@ -1417,15 +1384,15 @@ let DropEventQueryBuilder = class DropEventQueryBuilder extends QueryBuilder {
|
|
|
1417
1384
|
this.Name = Name;
|
|
1418
1385
|
}
|
|
1419
1386
|
toDB() {
|
|
1420
|
-
return this._container.resolve(
|
|
1387
|
+
return this._container.resolve(DropEventQueryCompiler, [this]).compile();
|
|
1421
1388
|
}
|
|
1422
1389
|
};
|
|
1423
1390
|
DropEventQueryBuilder = __decorate([
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
__metadata("design:paramtypes", [
|
|
1391
|
+
NewInstance(),
|
|
1392
|
+
Inject(Container),
|
|
1393
|
+
__metadata("design:paramtypes", [Container, OrmDriver, String])
|
|
1427
1394
|
], DropEventQueryBuilder);
|
|
1428
|
-
|
|
1395
|
+
export { DropEventQueryBuilder };
|
|
1429
1396
|
/**
|
|
1430
1397
|
* Creates schedule job in database engine.
|
|
1431
1398
|
* Note, some engines does not support this, so it will implemented
|
|
@@ -1446,11 +1413,11 @@ let ScheduleQueryBuilder = class ScheduleQueryBuilder {
|
|
|
1446
1413
|
}
|
|
1447
1414
|
};
|
|
1448
1415
|
ScheduleQueryBuilder = __decorate([
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
__metadata("design:paramtypes", [
|
|
1416
|
+
NewInstance(),
|
|
1417
|
+
Inject(Container),
|
|
1418
|
+
__metadata("design:paramtypes", [Container, OrmDriver])
|
|
1452
1419
|
], ScheduleQueryBuilder);
|
|
1453
|
-
|
|
1420
|
+
export { ScheduleQueryBuilder };
|
|
1454
1421
|
let SchemaQueryBuilder = class SchemaQueryBuilder {
|
|
1455
1422
|
constructor(container, driver) {
|
|
1456
1423
|
this.container = container;
|
|
@@ -1490,19 +1457,19 @@ let SchemaQueryBuilder = class SchemaQueryBuilder {
|
|
|
1490
1457
|
}
|
|
1491
1458
|
};
|
|
1492
1459
|
SchemaQueryBuilder = __decorate([
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
__metadata("design:paramtypes", [
|
|
1460
|
+
NewInstance(),
|
|
1461
|
+
Inject(Container),
|
|
1462
|
+
__metadata("design:paramtypes", [Container, OrmDriver])
|
|
1496
1463
|
], SchemaQueryBuilder);
|
|
1497
|
-
|
|
1498
|
-
Object.values(
|
|
1464
|
+
export { SchemaQueryBuilder };
|
|
1465
|
+
Object.values(ColumnType).forEach((type) => {
|
|
1499
1466
|
TableQueryBuilder.prototype[type] = function (name, ...args) {
|
|
1500
1467
|
const _builder = new ColumnQueryBuilder(this.Container, name, type, ...args);
|
|
1501
1468
|
this._columns.push(_builder);
|
|
1502
1469
|
return _builder;
|
|
1503
1470
|
};
|
|
1504
1471
|
});
|
|
1505
|
-
Object.values(
|
|
1472
|
+
Object.values(ColumnType).forEach((type) => {
|
|
1506
1473
|
AlterTableQueryBuilder.prototype[type] = function (name, ...args) {
|
|
1507
1474
|
const _builder = new AlterColumnQueryBuilder(this.Container, name, type, ...args);
|
|
1508
1475
|
this._columns.push(_builder);
|