@spinajs/orm 1.0.56 → 1.2.26

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/relations.js CHANGED
@@ -8,19 +8,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  var OneToManyRelation_1;
15
12
  Object.defineProperty(exports, "__esModule", { value: true });
16
13
  exports.OneToManyRelationList = exports.ManyToManyRelationList = exports.Relation = exports.ManyToManyRelation = exports.OneToManyRelation = exports.BelongsToRecursiveRelation = exports.BelongsToRelation = exports.DiscriminationMapMiddleware = exports.OrmRelation = void 0;
14
+ /* eslint-disable prettier/prettier */
17
15
  const exceptions_1 = require("@spinajs/exceptions");
18
16
  const interfaces_1 = require("./interfaces");
19
17
  const di_1 = require("@spinajs/di");
20
18
  const builders_1 = require("./builders");
21
19
  const model_1 = require("./model");
22
20
  const orm_1 = require("./orm");
23
- const lodash_1 = __importDefault(require("lodash"));
21
+ const _ = require("lodash");
24
22
  class OrmRelation {
25
23
  constructor(_orm, _query, _description, parentRelation) {
26
24
  var _a;
@@ -29,7 +27,7 @@ class OrmRelation {
29
27
  this._description = _description;
30
28
  this.parentRelation = parentRelation;
31
29
  this._targetModel = (_a = this._description.TargetModel) !== null && _a !== void 0 ? _a : undefined;
32
- this._targetModelDescriptor = model_1.extractModelDescriptor(this._targetModel);
30
+ this._targetModelDescriptor = (0, model_1.extractModelDescriptor)(this._targetModel);
33
31
  const driver = this._orm.Connections.get(this._targetModelDescriptor.Connection);
34
32
  const cnt = driver.Container;
35
33
  this._relationQuery = cnt.resolve(builders_1.SelectQueryBuilder, [driver, this._targetModel, this]);
@@ -38,9 +36,7 @@ class OrmRelation {
38
36
  }
39
37
  }
40
38
  get Alias() {
41
- return this.parentRelation
42
- ? `${this.parentRelation.Alias}.$${this._description.Name}$`
43
- : `$${this._description.Name}$`;
39
+ return this.parentRelation ? `${this.parentRelation.Alias}.$${this._description.Name}$` : `$${this._description.Name}$`;
44
40
  }
45
41
  }
46
42
  exports.OrmRelation = OrmRelation;
@@ -58,9 +54,9 @@ class HasManyRelationMiddleware {
58
54
  }
59
55
  async afterHydration(data) {
60
56
  const self = this;
61
- const pks = data.map(d => {
57
+ const pks = data.map((d) => {
62
58
  if (this._path) {
63
- return lodash_1.default.get(d, this._path)[this._description.PrimaryKey];
59
+ return _.get(d, this._path)[this._description.PrimaryKey];
64
60
  }
65
61
  else {
66
62
  return d[this._description.PrimaryKey];
@@ -70,21 +66,21 @@ class HasManyRelationMiddleware {
70
66
  afterData(data) {
71
67
  return data;
72
68
  },
73
- modelCreation(_) {
69
+ modelCreation() {
74
70
  return null;
75
71
  },
76
72
  async afterHydration(relationData) {
77
- data.forEach(d => {
78
- const relData = relationData.filter(rd => {
73
+ data.forEach((d) => {
74
+ const relData = relationData.filter((rd) => {
79
75
  if (self._path) {
80
- return lodash_1.default.get(d, self._path)[self._description.PrimaryKey] === rd[self._description.ForeignKey];
76
+ return _.get(d, self._path)[self._description.PrimaryKey] === rd[self._description.ForeignKey];
81
77
  }
82
78
  else {
83
79
  return rd[self._description.ForeignKey] === d[self._description.PrimaryKey];
84
80
  }
85
81
  });
86
82
  if (self._path) {
87
- lodash_1.default.get(d, self._path)[self._description.Name] = new OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
83
+ _.get(d, self._path)[self._description.Name] = new OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
88
84
  }
89
85
  else {
90
86
  d[self._description.Name] = new OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
@@ -114,7 +110,7 @@ class BelongsToRelationRecursiveMiddleware {
114
110
  }
115
111
  async afterHydration(data) {
116
112
  const self = this;
117
- const pks = data.map(d => d[this._description.PrimaryKey]);
113
+ const pks = data.map((d) => d[this._description.PrimaryKey]);
118
114
  const hydrateMiddleware = {
119
115
  afterData(data) {
120
116
  return data;
@@ -123,11 +119,11 @@ class BelongsToRelationRecursiveMiddleware {
123
119
  return null;
124
120
  },
125
121
  async afterHydration(relationData) {
126
- const roots = relationData.filter(rd => rd[self._description.ForeignKey] === 0 || rd[self._description.ForeignKey] === null);
127
- const leafs = roots.map(r => {
122
+ const roots = relationData.filter((rd) => rd[self._description.ForeignKey] === 0 || rd[self._description.ForeignKey] === null);
123
+ const leafs = roots.map((r) => {
128
124
  return fillRecursive(r);
129
125
  function fillRecursive(parent) {
130
- const child = relationData.find(rd => rd[self._description.ForeignKey] === parent[self._description.PrimaryKey]);
126
+ const child = relationData.find((rd) => rd[self._description.ForeignKey] === parent[self._description.PrimaryKey]);
131
127
  if (!child) {
132
128
  return parent;
133
129
  }
@@ -135,8 +131,8 @@ class BelongsToRelationRecursiveMiddleware {
135
131
  return fillRecursive(child);
136
132
  }
137
133
  });
138
- data.forEach(d => {
139
- d[self._description.Name] = leafs.find(l => l[self._description.PrimaryKey] === d[self._description.PrimaryKey])[self._description.Name];
134
+ data.forEach((d) => {
135
+ d[self._description.Name] = leafs.find((l) => l[self._description.PrimaryKey] === d[self._description.PrimaryKey])[self._description.Name];
140
136
  });
141
137
  },
142
138
  };
@@ -160,20 +156,20 @@ class HasManyToManyRelationMiddleware {
160
156
  }
161
157
  async afterHydration(data) {
162
158
  const self = this;
163
- const pks = data.map(d => d[this._description.PrimaryKey]);
159
+ const pks = data.map((d) => d[this._description.PrimaryKey]);
164
160
  const hydrateMiddleware = {
165
161
  afterData(data) {
166
- return data.map(d => Object.assign({}, d[self._description.Name], { JunctionModel: self.pickProps(d, [self._description.Name]) }));
162
+ return data.map((d) => Object.assign({}, d[self._description.Name], { JunctionModel: self.pickProps(d, [self._description.Name]) }));
167
163
  },
168
164
  modelCreation(_) {
169
165
  return null;
170
166
  },
171
167
  async afterHydration(relationData) {
172
- data.forEach(d => {
173
- const relData = relationData.filter(rd => rd.JunctionModel[self._description.ForeignKey] === d[self._description.PrimaryKey]);
168
+ data.forEach((d) => {
169
+ const relData = relationData.filter((rd) => rd.JunctionModel[self._description.ForeignKey] === d[self._description.PrimaryKey]);
174
170
  d[self._description.Name] = new OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
175
171
  });
176
- relationData.forEach(d => delete d.JunctionModel);
172
+ relationData.forEach((d) => delete d.JunctionModel);
177
173
  },
178
174
  };
179
175
  if (pks.length !== 0) {
@@ -197,7 +193,7 @@ class HasManyToManyRelationMiddleware {
197
193
  }
198
194
  class BelongsToRelationResultTransformMiddleware {
199
195
  afterData(data) {
200
- return data.map(d => {
196
+ return data.map((d) => {
201
197
  const transformedData = Object.assign(d);
202
198
  for (const key in transformedData) {
203
199
  if (key.startsWith('$')) {
@@ -216,11 +212,11 @@ class BelongsToRelationResultTransformMiddleware {
216
212
  /**
217
213
  * Dynamically sets a deeply nested value in an object.
218
214
  * Optionally "bores" a path to it if its undefined.
219
- * @function
220
- * @param {!object} obj - The object which contains the value you want to change/set.
221
- * @param {!array} path - The array representation of path to the value you want to change/set.
222
- * @param {!mixed} value - The value you want to set it to.
223
- * @param {boolean} setrecursively - If true, will set value of non-existing path as well.
215
+ *
216
+ * @param obj - The object which contains the value you want to change/set.
217
+ * @param path - The array representation of path to the value you want to change/set.
218
+ * @param value - The value you want to set it to.
219
+ * @param setrecursively - If true, will set value of non-existing path as well.
224
220
  */
225
221
  setDeep(obj, path, value, setrecursively = true) {
226
222
  path.reduce((a, b, level) => {
@@ -241,9 +237,7 @@ class BelongsToRelationResultTransformMiddleware {
241
237
  }
242
238
  class BelongsToRelationResultTransformOneToManyMiddleware extends BelongsToRelationResultTransformMiddleware {
243
239
  keyTransform(key) {
244
- const path = key.replace(/\$+/g, '').split('.');
245
- path.shift();
246
- return path;
240
+ return key.replace(/\$+/g, '').split('.');
247
241
  }
248
242
  }
249
243
  class DiscriminationMapMiddleware {
@@ -272,7 +266,7 @@ let BelongsToRelation = class BelongsToRelation extends OrmRelation {
272
266
  constructor(_orm, _query, _description, _parentRelation) {
273
267
  super(_orm, _query, _description, _parentRelation);
274
268
  this._relationQuery.from(this._targetModelDescriptor.TableName, this.Alias);
275
- this._targetModelDescriptor.Columns.forEach(c => {
269
+ this._targetModelDescriptor.Columns.forEach((c) => {
276
270
  this._relationQuery.select(c.Name, `${this.Alias}.${c.Name}`);
277
271
  });
278
272
  }
@@ -286,7 +280,7 @@ let BelongsToRelation = class BelongsToRelation extends OrmRelation {
286
280
  }
287
281
  this._query.mergeStatements(this._relationQuery);
288
282
  if (!this.parentRelation) {
289
- // if we are on top of the belongsTo relation stack
283
+ // if we are on top of the belongsTo relation stack
290
284
  // add transform middleware
291
285
  // we do this becouse belongsTo modifies query (not creating new like oneToMany and manyToMany)
292
286
  // and we only need to run transform once
@@ -301,18 +295,15 @@ let BelongsToRelation = class BelongsToRelation extends OrmRelation {
301
295
  }
302
296
  };
303
297
  BelongsToRelation = __decorate([
304
- di_1.NewInstance(),
305
- __metadata("design:paramtypes", [orm_1.Orm,
306
- builders_1.SelectQueryBuilder, Object, OrmRelation])
298
+ (0, di_1.NewInstance)(),
299
+ __metadata("design:paramtypes", [orm_1.Orm, builders_1.SelectQueryBuilder, Object, OrmRelation])
307
300
  ], BelongsToRelation);
308
301
  exports.BelongsToRelation = BelongsToRelation;
309
302
  let BelongsToRecursiveRelation = class BelongsToRecursiveRelation extends OrmRelation {
310
303
  constructor(_orm, _query, _description, _parentRelation) {
311
304
  super(_orm, _query, _description, _parentRelation);
312
- this._relationQuery
313
- .withRecursive(this._description.ForeignKey, this._description.PrimaryKey)
314
- .from(this._targetModelDescriptor.TableName, this.Alias);
315
- this._targetModelDescriptor.Columns.forEach(c => {
305
+ this._relationQuery.withRecursive(this._description.ForeignKey, this._description.PrimaryKey).from(this._targetModelDescriptor.TableName, this.Alias);
306
+ this._targetModelDescriptor.Columns.forEach((c) => {
316
307
  this._relationQuery.select(c.Name, `${this.Alias}.${c.Name}`);
317
308
  });
318
309
  }
@@ -324,16 +315,15 @@ let BelongsToRecursiveRelation = class BelongsToRecursiveRelation extends OrmRel
324
315
  }
325
316
  };
326
317
  BelongsToRecursiveRelation = __decorate([
327
- di_1.NewInstance(),
328
- __metadata("design:paramtypes", [orm_1.Orm,
329
- builders_1.SelectQueryBuilder, Object, OrmRelation])
318
+ (0, di_1.NewInstance)(),
319
+ __metadata("design:paramtypes", [orm_1.Orm, builders_1.SelectQueryBuilder, Object, OrmRelation])
330
320
  ], BelongsToRecursiveRelation);
331
321
  exports.BelongsToRecursiveRelation = BelongsToRecursiveRelation;
332
322
  let OneToManyRelation = OneToManyRelation_1 = class OneToManyRelation extends OrmRelation {
333
323
  constructor(_orm, _query, _description, _parentRelation) {
334
324
  super(_orm, _query, _description, _parentRelation);
335
325
  this._relationQuery.from(this._targetModelDescriptor.TableName, this.Alias);
336
- this._relationQuery.columns(this._targetModelDescriptor.Columns.map(c => {
326
+ this._relationQuery.columns(this._targetModelDescriptor.Columns.map((c) => {
337
327
  return c.Name;
338
328
  }));
339
329
  }
@@ -351,24 +341,23 @@ let OneToManyRelation = OneToManyRelation_1 = class OneToManyRelation extends Or
351
341
  callback.call(this._relationQuery, [this]);
352
342
  }
353
343
  this._query.middleware(new DiscriminationMapMiddleware(this._targetModelDescriptor));
354
- this._query.middleware(new HasManyRelationMiddleware(this._relationQuery, this._description, path.join(".")));
344
+ this._query.middleware(new HasManyRelationMiddleware(this._relationQuery, this._description, path.join('.')));
355
345
  }
356
346
  };
357
347
  OneToManyRelation = OneToManyRelation_1 = __decorate([
358
- di_1.NewInstance(),
359
- __metadata("design:paramtypes", [orm_1.Orm,
360
- builders_1.SelectQueryBuilder, Object, OrmRelation])
348
+ (0, di_1.NewInstance)(),
349
+ __metadata("design:paramtypes", [orm_1.Orm, builders_1.SelectQueryBuilder, Object, OrmRelation])
361
350
  ], OneToManyRelation);
362
351
  exports.OneToManyRelation = OneToManyRelation;
363
352
  let ManyToManyRelation = class ManyToManyRelation extends OrmRelation {
364
353
  constructor(_orm, _query, _description, _parentRelation) {
365
354
  var _a, _b;
366
355
  super(_orm, _query, _description, _parentRelation);
367
- this._joinModel = (_b = (_a = this._orm.Models.find(m => { var _a; return m.name === ((_a = this._description.JunctionModel) === null || _a === void 0 ? void 0 : _a.name); })) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : undefined;
356
+ this._joinModel = (_b = (_a = this._orm.Models.find((m) => { var _a; return m.name === ((_a = this._description.JunctionModel) === null || _a === void 0 ? void 0 : _a.name); })) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : undefined;
368
357
  if (this._joinModel === undefined) {
369
358
  throw new exceptions_1.InvalidOperation(`model ${this._description.JunctionModel} not exists in orm module`);
370
359
  }
371
- this._joinModelDescriptor = model_1.extractModelDescriptor(this._joinModel);
360
+ this._joinModelDescriptor = (0, model_1.extractModelDescriptor)(this._joinModel);
372
361
  const orm = di_1.DI.get(orm_1.Orm);
373
362
  const driver = orm.Connections.get(this._targetModelDescriptor.Connection);
374
363
  const cnt = driver.Container;
@@ -377,11 +366,11 @@ let ManyToManyRelation = class ManyToManyRelation extends OrmRelation {
377
366
  this._joinQuery.schema(driver.Options.Database);
378
367
  }
379
368
  this._joinQuery.from(this._joinModelDescriptor.TableName, `$${this._joinModelDescriptor.TableName}$`);
380
- this._joinQuery.columns(this._joinModelDescriptor.Columns.map(c => {
369
+ this._joinQuery.columns(this._joinModelDescriptor.Columns.map((c) => {
381
370
  return c.Name;
382
371
  }));
383
372
  this._relationQuery.from(this._targetModelDescriptor.TableName, this.Alias);
384
- this._targetModelDescriptor.Columns.forEach(c => {
373
+ this._targetModelDescriptor.Columns.forEach((c) => {
385
374
  this._relationQuery.select(c.Name, `${this.Alias}.${c.Name}`);
386
375
  });
387
376
  }
@@ -410,9 +399,8 @@ let ManyToManyRelation = class ManyToManyRelation extends OrmRelation {
410
399
  }
411
400
  };
412
401
  ManyToManyRelation = __decorate([
413
- di_1.NewInstance(),
414
- __metadata("design:paramtypes", [orm_1.Orm,
415
- builders_1.SelectQueryBuilder, Object, OrmRelation])
402
+ (0, di_1.NewInstance)(),
403
+ __metadata("design:paramtypes", [orm_1.Orm, builders_1.SelectQueryBuilder, Object, OrmRelation])
416
404
  ], ManyToManyRelation);
417
405
  exports.ManyToManyRelation = ManyToManyRelation;
418
406
  /**
@@ -429,7 +417,7 @@ class Relation extends Array {
429
417
  if (objects) {
430
418
  this.push(...objects);
431
419
  }
432
- this.TargetModelDescriptor = model_1.extractModelDescriptor(model);
420
+ this.TargetModelDescriptor = (0, model_1.extractModelDescriptor)(model);
433
421
  this.Orm = di_1.DI.get(orm_1.Orm);
434
422
  }
435
423
  /**
@@ -448,10 +436,7 @@ class Relation extends Array {
448
436
  *
449
437
  * TODO: create only relation query without loading its owner.
450
438
  */
451
- const result = await this.owner.constructor
452
- .where(this.owner.PrimaryKeyName, this.owner.PrimaryKeyValue)
453
- .populate(this.Relation.Name, callback)
454
- .firstOrFail();
439
+ const result = await this.owner.constructor.where(this.owner.PrimaryKeyName, this.owner.PrimaryKeyValue).populate(this.Relation.Name, callback).firstOrFail();
455
440
  if (result) {
456
441
  this.splice(0, this.length);
457
442
  this.push(...result[this.Relation.Name]);
@@ -462,34 +447,31 @@ exports.Relation = Relation;
462
447
  class ManyToManyRelationList extends Relation {
463
448
  async remove(obj) {
464
449
  const self = this;
465
- const data = (Array.isArray(obj) ? obj : [obj]).map(d => d.PrimaryKeyValue);
450
+ const data = (Array.isArray(obj) ? obj : [obj]).map((d) => d.PrimaryKeyValue);
466
451
  const driver = this.Orm.Connections.get(this.TargetModelDescriptor.Connection);
467
- const jmodelDescriptor = model_1.extractModelDescriptor(this.Relation.JunctionModel);
452
+ const jmodelDescriptor = (0, model_1.extractModelDescriptor)(this.Relation.JunctionModel);
468
453
  if (!driver) {
469
454
  throw new exceptions_1.InvalidArgument(`connection ${this.TargetModelDescriptor.Connection} not exists`);
470
455
  }
471
- const query = driver.Container.resolve(builders_1.DeleteQueryBuilder, [
472
- driver,
473
- this.Relation.JunctionModel,
474
- ])
456
+ const query = driver.Container.resolve(builders_1.DeleteQueryBuilder, [driver, this.Relation.JunctionModel])
475
457
  .from(jmodelDescriptor.TableName)
476
458
  .where(function () {
477
459
  this.whereIn(self.Relation.JunctionModelTargetModelFKey_Name, data);
478
460
  this.andWhere(self.Relation.JunctionModelSourceModelFKey_Name, self.owner.PrimaryKeyValue);
479
461
  });
480
462
  await query;
481
- lodash_1.default.remove(this, o => data.indexOf(o.PrimaryKeyValue) !== -1);
463
+ _.remove(this, (o) => data.indexOf(o.PrimaryKeyValue) !== -1);
482
464
  }
483
465
  async add(obj, mode) {
484
466
  const data = Array.isArray(obj) ? obj : [obj];
485
- const relEntities = data.map(d => {
467
+ const relEntities = data.map((d) => {
486
468
  const relEntity = new this.Relation.JunctionModel();
487
469
  relEntity[this.Relation.JunctionModelSourceModelFKey_Name] = this.owner.PrimaryKeyValue;
488
470
  relEntity[this.Relation.JunctionModelTargetModelFKey_Name] = d.PrimaryKeyValue;
489
471
  return relEntity;
490
472
  });
491
473
  for (const m of relEntities) {
492
- await m.save(mode);
474
+ await m.insert(mode);
493
475
  }
494
476
  this.push(...data);
495
477
  }
@@ -497,25 +479,22 @@ class ManyToManyRelationList extends Relation {
497
479
  exports.ManyToManyRelationList = ManyToManyRelationList;
498
480
  class OneToManyRelationList extends Relation {
499
481
  async remove(obj) {
500
- const data = (Array.isArray(obj) ? obj : [obj]).map(d => d.PrimaryKeyValue);
482
+ const data = (Array.isArray(obj) ? obj : [obj]).map((d) => d.PrimaryKeyValue);
501
483
  const driver = this.Orm.Connections.get(this.TargetModelDescriptor.Connection);
502
484
  if (!driver) {
503
485
  throw new exceptions_1.InvalidArgument(`connection ${this.TargetModelDescriptor.Connection} not exists`);
504
486
  }
505
- const query = driver.Container.resolve(builders_1.DeleteQueryBuilder, [
506
- driver,
507
- this.Relation.TargetModel,
508
- ]).whereIn(this.Relation.ForeignKey, data);
487
+ const query = driver.Container.resolve(builders_1.DeleteQueryBuilder, [driver, this.Relation.TargetModel]).whereIn(this.Relation.ForeignKey, data);
509
488
  await query;
510
- lodash_1.default.remove(this, o => data.indexOf(o.PrimaryKeyValue) !== -1);
489
+ _.remove(this, (o) => data.indexOf(o.PrimaryKeyValue) !== -1);
511
490
  }
512
491
  async add(obj, mode) {
513
492
  const data = Array.isArray(obj) ? obj : [obj];
514
- data.forEach(d => {
493
+ data.forEach((d) => {
515
494
  d[this.Relation.ForeignKey] = this.owner.PrimaryKeyValue;
516
495
  });
517
496
  for (const m of data) {
518
- await m.save(mode);
497
+ await m.insert(mode);
519
498
  }
520
499
  this.push(...data);
521
500
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { SelectQueryBuilder, WhereBuilder, RawQuery } from './builders';
2
2
  import { ColumnMethods, WhereOperators, JoinMethod } from './enums';
3
- import { Container } from '@spinajs/di';
3
+ import { Container, Class } from '@spinajs/di';
4
4
  import { IColumnDescriptor } from './interfaces';
5
5
  export interface IQueryStatementResult {
6
6
  Statements: string[];
package/lib/statements.js CHANGED
@@ -8,15 +8,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.ColumnMethodStatement = exports.ColumnRawStatement = exports.ColumnStatement = exports.InSetStatement = exports.ExistsQueryStatement = exports.SelectQueryStatement = exports.InStatement = exports.JoinStatement = exports.DateTimeWrapper = exports.DateWrapper = exports.WrapStatement = exports.Wrap = exports.WhereStatement = exports.WhereQueryStatement = exports.BetweenStatement = exports.GroupByStatement = exports.WithRecursiveStatement = exports.RawQueryStatement = exports.QueryStatement = void 0;
13
+ /* eslint-disable prettier/prettier */
16
14
  const builders_1 = require("./builders");
17
15
  const enums_1 = require("./enums");
18
16
  const di_1 = require("@spinajs/di");
19
- const lodash_1 = __importDefault(require("lodash"));
17
+ const _ = require("lodash");
20
18
  class QueryStatement {
21
19
  constructor(tableAlias) {
22
20
  this._tableAlias = tableAlias;
@@ -37,7 +35,7 @@ let RawQueryStatement = class RawQueryStatement extends QueryStatement {
37
35
  }
38
36
  };
39
37
  RawQueryStatement = __decorate([
40
- di_1.NewInstance(),
38
+ (0, di_1.NewInstance)(),
41
39
  __metadata("design:paramtypes", [String, Array])
42
40
  ], RawQueryStatement);
43
41
  exports.RawQueryStatement = RawQueryStatement;
@@ -51,7 +49,7 @@ let WithRecursiveStatement = class WithRecursiveStatement extends QueryStatement
51
49
  }
52
50
  };
53
51
  WithRecursiveStatement = __decorate([
54
- di_1.NewInstance(),
52
+ (0, di_1.NewInstance)(),
55
53
  __metadata("design:paramtypes", [String, builders_1.SelectQueryBuilder, String, String])
56
54
  ], WithRecursiveStatement);
57
55
  exports.WithRecursiveStatement = WithRecursiveStatement;
@@ -62,7 +60,7 @@ let GroupByStatement = class GroupByStatement extends QueryStatement {
62
60
  }
63
61
  };
64
62
  GroupByStatement = __decorate([
65
- di_1.NewInstance(),
63
+ (0, di_1.NewInstance)(),
66
64
  __metadata("design:paramtypes", [Object, String])
67
65
  ], GroupByStatement);
68
66
  exports.GroupByStatement = GroupByStatement;
@@ -75,7 +73,7 @@ let BetweenStatement = class BetweenStatement extends QueryStatement {
75
73
  }
76
74
  };
77
75
  BetweenStatement = __decorate([
78
- di_1.NewInstance(),
76
+ (0, di_1.NewInstance)(),
79
77
  __metadata("design:paramtypes", [String, Array, Boolean, String])
80
78
  ], BetweenStatement);
81
79
  exports.BetweenStatement = BetweenStatement;
@@ -86,7 +84,7 @@ let WhereQueryStatement = class WhereQueryStatement extends QueryStatement {
86
84
  }
87
85
  };
88
86
  WhereQueryStatement = __decorate([
89
- di_1.NewInstance(),
87
+ (0, di_1.NewInstance)(),
90
88
  __metadata("design:paramtypes", [builders_1.WhereBuilder, String])
91
89
  ], WhereQueryStatement);
92
90
  exports.WhereQueryStatement = WhereQueryStatement;
@@ -100,7 +98,7 @@ let WhereStatement = class WhereStatement extends QueryStatement {
100
98
  }
101
99
  };
102
100
  WhereStatement = __decorate([
103
- di_1.NewInstance(),
101
+ (0, di_1.NewInstance)(),
104
102
  __metadata("design:paramtypes", [String, String, Object, String, di_1.Container])
105
103
  ], WhereStatement);
106
104
  exports.WhereStatement = WhereStatement;
@@ -118,27 +116,27 @@ let WrapStatement = class WrapStatement {
118
116
  }
119
117
  };
120
118
  WrapStatement = __decorate([
121
- di_1.NewInstance(),
119
+ (0, di_1.NewInstance)(),
122
120
  __metadata("design:paramtypes", [Object, String])
123
121
  ], WrapStatement);
124
122
  exports.WrapStatement = WrapStatement;
125
123
  let DateWrapper = class DateWrapper extends WrapStatement {
126
124
  };
127
125
  DateWrapper = __decorate([
128
- di_1.NewInstance()
126
+ (0, di_1.NewInstance)()
129
127
  ], DateWrapper);
130
128
  exports.DateWrapper = DateWrapper;
131
129
  let DateTimeWrapper = class DateTimeWrapper extends WrapStatement {
132
130
  };
133
131
  DateTimeWrapper = __decorate([
134
- di_1.NewInstance()
132
+ (0, di_1.NewInstance)()
135
133
  ], DateTimeWrapper);
136
134
  exports.DateTimeWrapper = DateTimeWrapper;
137
135
  let JoinStatement = class JoinStatement extends QueryStatement {
138
136
  constructor(table, method, foreignKey, primaryKey, alias, tableAlias) {
139
137
  super(tableAlias);
140
138
  this._method = method;
141
- if (lodash_1.default.isString(table)) {
139
+ if (_.isString(table)) {
142
140
  this._table = table;
143
141
  this._foreignKey = foreignKey;
144
142
  this._primaryKey = primaryKey;
@@ -151,7 +149,7 @@ let JoinStatement = class JoinStatement extends QueryStatement {
151
149
  }
152
150
  };
153
151
  JoinStatement = __decorate([
154
- di_1.NewInstance(),
152
+ (0, di_1.NewInstance)(),
155
153
  __metadata("design:paramtypes", [Object, String, String, String, String, String])
156
154
  ], JoinStatement);
157
155
  exports.JoinStatement = JoinStatement;
@@ -164,7 +162,7 @@ let InStatement = class InStatement extends QueryStatement {
164
162
  }
165
163
  };
166
164
  InStatement = __decorate([
167
- di_1.NewInstance(),
165
+ (0, di_1.NewInstance)(),
168
166
  __metadata("design:paramtypes", [String, Array, Boolean, String])
169
167
  ], InStatement);
170
168
  exports.InStatement = InStatement;
@@ -175,7 +173,7 @@ let SelectQueryStatement = class SelectQueryStatement extends QueryStatement {
175
173
  }
176
174
  };
177
175
  SelectQueryStatement = __decorate([
178
- di_1.NewInstance(),
176
+ (0, di_1.NewInstance)(),
179
177
  __metadata("design:paramtypes", [builders_1.SelectQueryBuilder, String])
180
178
  ], SelectQueryStatement);
181
179
  exports.SelectQueryStatement = SelectQueryStatement;
@@ -186,7 +184,7 @@ let ExistsQueryStatement = class ExistsQueryStatement extends SelectQueryStateme
186
184
  }
187
185
  };
188
186
  ExistsQueryStatement = __decorate([
189
- di_1.NewInstance(),
187
+ (0, di_1.NewInstance)(),
190
188
  __metadata("design:paramtypes", [builders_1.SelectQueryBuilder, Boolean])
191
189
  ], ExistsQueryStatement);
192
190
  exports.ExistsQueryStatement = ExistsQueryStatement;
@@ -199,7 +197,7 @@ let InSetStatement = class InSetStatement extends QueryStatement {
199
197
  }
200
198
  };
201
199
  InSetStatement = __decorate([
202
- di_1.NewInstance(),
200
+ (0, di_1.NewInstance)(),
203
201
  __metadata("design:paramtypes", [String, Array, Boolean, String])
204
202
  ], InSetStatement);
205
203
  exports.InSetStatement = InSetStatement;
@@ -234,7 +232,7 @@ let ColumnStatement = class ColumnStatement extends QueryStatement {
234
232
  }
235
233
  };
236
234
  ColumnStatement = __decorate([
237
- di_1.NewInstance(),
235
+ (0, di_1.NewInstance)(),
238
236
  __metadata("design:paramtypes", [Object, String, String, Object])
239
237
  ], ColumnStatement);
240
238
  exports.ColumnStatement = ColumnStatement;
@@ -252,7 +250,7 @@ let ColumnMethodStatement = class ColumnMethodStatement extends ColumnStatement
252
250
  }
253
251
  };
254
252
  ColumnMethodStatement = __decorate([
255
- di_1.NewInstance(),
253
+ (0, di_1.NewInstance)(),
256
254
  __metadata("design:paramtypes", [String, String, String, String])
257
255
  ], ColumnMethodStatement);
258
256
  exports.ColumnMethodStatement = ColumnMethodStatement;