@spinajs/orm 2.0.19 → 2.0.39

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/model.d.ts CHANGED
@@ -1,9 +1,13 @@
1
- import { IModelDescriptor, InsertBehaviour, IUpdateResult, IWhereBuilder } from './interfaces';
1
+ import { PickRelations } from './types';
2
+ import { Relation } from './relations';
3
+ import { IModelDescriptor, InsertBehaviour, IUpdateResult, IWhereBuilder, QueryScope, IHistoricalModel } from './interfaces';
2
4
  import { WhereFunction } from './types';
3
- import { RawQuery, UpdateQueryBuilder, QueryBuilder, SelectQueryBuilder, InsertQueryBuilder } from './builders';
5
+ import { RawQuery, UpdateQueryBuilder, TruncateTableQueryBuilder, QueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder } from './builders';
4
6
  import { Op } from './enums';
5
7
  import { Class, IContainer } from '@spinajs/di';
6
8
  import { Wrap } from './statements';
9
+ import { DateTime } from 'luxon';
10
+ import { OrmDriver } from './driver';
7
11
  export declare function extractModelDescriptor(targetOrForward: any): IModelDescriptor;
8
12
  export interface IModelBase {
9
13
  ModelDescriptor: IModelDescriptor;
@@ -57,14 +61,16 @@ export interface IModelBase {
57
61
  */
58
62
  refresh(): Promise<void>;
59
63
  toJSON(): any;
64
+ driver(): OrmDriver;
60
65
  }
61
- export declare class ModelBase implements IModelBase {
66
+ export declare class ModelBase<M = unknown> implements IModelBase {
62
67
  private _container;
63
68
  /**
64
- * List of hidden properties from JSON / dehydratoins
69
+ * List of hidden properties from JSON / dehydrations
65
70
  * eg. password field of user
66
71
  */
67
72
  protected _hidden: string[];
73
+ static readonly _queryScopes: QueryScope;
68
74
  /**
69
75
  * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
70
76
  * db table attached, column information and others.
@@ -77,10 +83,15 @@ export declare class ModelBase implements IModelBase {
77
83
  get PrimaryKeyName(): string;
78
84
  get PrimaryKeyValue(): any;
79
85
  set PrimaryKeyValue(newVal: any);
86
+ driver(): OrmDriver;
80
87
  /**
81
88
  * Recursivelly takes all relation data and returns as single array
82
89
  */
83
90
  getFlattenRelationModels(recursive?: boolean): ModelBase[];
91
+ /**
92
+ * Clears all data in table
93
+ */
94
+ static truncate(): void;
84
95
  /**
85
96
  * Get all data from db
86
97
  */
@@ -90,7 +101,7 @@ export declare class ModelBase implements IModelBase {
90
101
  *
91
102
  * @param _data - data to insert
92
103
  */
93
- static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>, _insertBehaviour?: InsertBehaviour): InsertQueryBuilder;
104
+ static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | PickRelations<T, Relation<any, any>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>, _insertBehaviour?: InsertBehaviour): InsertQueryBuilder;
94
105
  /**
95
106
  * Search entities in db
96
107
  *
@@ -98,19 +109,19 @@ export declare class ModelBase implements IModelBase {
98
109
  * @param operator - boolean operator
99
110
  * @param value - value to compare
100
111
  */
101
- static where<T extends typeof ModelBase>(this: T, val: boolean): SelectQueryBuilder<Array<InstanceType<T>>>;
102
- static where<T extends typeof ModelBase>(this: T, val: Partial<InstanceType<T>>): SelectQueryBuilder<Array<InstanceType<T>>>;
103
- static where<T extends typeof ModelBase>(this: T, func: WhereFunction<InstanceType<T>>): SelectQueryBuilder<Array<InstanceType<T>>>;
104
- static where<T extends typeof ModelBase>(this: T, column: string, operator: Op, value: any): SelectQueryBuilder<Array<InstanceType<T>>>;
105
- static where<T extends typeof ModelBase>(this: T, column: string, value: any): SelectQueryBuilder<Array<InstanceType<T>>>;
106
- static where<T extends typeof ModelBase>(this: T, statement: Wrap): SelectQueryBuilder<Array<InstanceType<T>>>;
107
- static where<T extends typeof ModelBase>(this: T, column: string | boolean | WhereFunction<InstanceType<T>> | RawQuery | Partial<InstanceType<T>> | Wrap, operator?: Op | any, value?: any): SelectQueryBuilder<Array<InstanceType<T>>>;
112
+ static where<T extends typeof ModelBase>(this: T, val: boolean): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
113
+ static where<T extends typeof ModelBase>(this: T, val: Partial<InstanceType<T>> | PickRelations<T, Relation<any, any>>): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
114
+ static where<T extends typeof ModelBase>(this: T, func: WhereFunction<InstanceType<T>>): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
115
+ static where<T extends typeof ModelBase>(this: T, column: string, operator: Op, value: any): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
116
+ static where<T extends typeof ModelBase>(this: T, column: string, value: any): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
117
+ static where<T extends typeof ModelBase>(this: T, statement: Wrap): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
118
+ static where<T extends typeof ModelBase>(this: T, column: string | boolean | WhereFunction<InstanceType<T>> | RawQuery | Partial<InstanceType<T>> | Wrap | PickRelations<T, Relation<any, any>>, operator?: Op | any, value?: any): SelectQueryBuilder<Array<InstanceType<T>>> & T['_queryScopes'];
108
119
  /**
109
120
  * Updates single or multiple records at once with provided value based on condition
110
121
  *
111
122
  * @param _data - data to set
112
123
  */
113
- static update<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): UpdateQueryBuilder<InstanceType<T>>;
124
+ static update<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): UpdateQueryBuilder<InstanceType<T>> & T['_queryScopes'];
114
125
  /**
115
126
  * Tries to find all models with given primary keys
116
127
  */
@@ -120,25 +131,25 @@ export declare class ModelBase implements IModelBase {
120
131
  *
121
132
  * Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
122
133
  */
123
- static first<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T>) => void): Promise<number>;
134
+ static first<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<number>;
124
135
  /**
125
136
  * Tries to get first result from db
126
137
  *
127
138
  * Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
128
139
  */
129
- static last<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T>) => void): Promise<InstanceType<T>>;
140
+ static last<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
130
141
  /**
131
142
  * Tries to get newest result from db. It throws if model dont have CreatedAt decorated property
132
143
  */
133
- static newest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T>) => void): Promise<InstanceType<T>>;
144
+ static newest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
134
145
  /**
135
146
  * Tries to get oldest result from db. It throws if model dont have CreatedAt decorated property
136
147
  */
137
- static oldest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T>) => void): Promise<InstanceType<T>>;
148
+ static oldest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
138
149
  /**
139
150
  * Returns total count of entries in db for this model
140
151
  */
141
- static count<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T>) => void): Promise<InstanceType<T>>;
152
+ static count<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
142
153
  /**
143
154
  * Tries to find all models in db. If not all exists, throws exception
144
155
  */
@@ -160,10 +171,10 @@ export declare class ModelBase implements IModelBase {
160
171
  */
161
172
  static getOrNew<T extends typeof ModelBase>(this: T, _pk?: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
162
173
  /**
163
- * Creates raw query on this model. used for quering db for partial data or to perform some kind of operations
164
- * that dont need full ORM model to involve
174
+ * Creates query on this model. used for quering db for partial data, to perform some kind of operations
175
+ * that dont need full ORM model to involve, or other non standard operations eg. joins or raw data queries based on this model
165
176
  */
166
- static query<T>(this: T): SelectQueryBuilder<T>;
177
+ static query<T extends typeof ModelBase>(this: T): SelectQueryBuilder<InstanceType<T>> & T['_queryScopes'];
167
178
  /**
168
179
  *
169
180
  * Checks if model with pk key / unique fields exists and if not creates one and saves to db
@@ -183,8 +194,8 @@ export declare class ModelBase implements IModelBase {
183
194
  *
184
195
  * @param pk - primary key
185
196
  */
186
- static destroy(_pk?: any | any[]): Promise<void>;
187
- constructor(data?: unknown);
197
+ static destroy<T extends typeof ModelBase>(this: T, _pk?: any | any[]): DeleteQueryBuilder<InstanceType<T>> & T['_queryScopes'];
198
+ constructor(data?: Partial<M>);
188
199
  /**
189
200
  * Fills model with data. It only fills properties that exists in database
190
201
  *
@@ -252,6 +263,12 @@ export declare class ModelBase implements IModelBase {
252
263
  model: Class<any>;
253
264
  };
254
265
  }
266
+ export declare abstract class HistoricalModel implements IHistoricalModel {
267
+ readonly __action__: 'update' | 'insert' | 'delete';
268
+ readonly __revision__: number;
269
+ readonly __start__: DateTime;
270
+ readonly __end__: DateTime;
271
+ }
255
272
  /**
256
273
  * Helper function to create query based on model
257
274
  *
@@ -262,11 +279,13 @@ export declare class ModelBase implements IModelBase {
262
279
  * @returns
263
280
  */
264
281
  export declare function createQuery<T extends QueryBuilder>(model: Class<any>, query: Class<T>, injectModel?: boolean): {
265
- query: T extends import("@spinajs/di").AsyncModule ? Promise<T> : T;
282
+ query: T extends import("@spinajs/di").AsyncService ? Promise<T> : T;
266
283
  description: IModelDescriptor;
267
284
  model: Class<any>;
268
285
  };
269
286
  export declare const MODEL_STATIC_MIXINS: {
287
+ truncate(): TruncateTableQueryBuilder;
288
+ driver(): OrmDriver;
270
289
  query(): SelectQueryBuilder;
271
290
  where(column: string | boolean | WhereFunction<any> | RawQuery | Wrap | {}, operator?: Op | any, value?: any): SelectQueryBuilder;
272
291
  update<T extends typeof ModelBase>(data: Partial<InstanceType<T>>): UpdateQueryBuilder<unknown>;
@@ -279,13 +298,13 @@ export declare const MODEL_STATIC_MIXINS: {
279
298
  findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
280
299
  get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
281
300
  getOrFail<T_5 extends typeof ModelBase>(this: T_5, pk: any): Promise<InstanceType<T_5>>;
282
- destroy(pks: any | any[]): Promise<void>;
283
- create<T_6 extends typeof ModelBase>(this: T_6, data: Partial<InstanceType<T_6>>): Promise<InstanceType<T_6>>;
284
- getOrCreate<T_7 extends typeof ModelBase>(this: T_7, pk: any, data: Partial<InstanceType<T_7>>): Promise<InstanceType<T_7>>;
285
- getOrNew<T_8 extends typeof ModelBase>(this: T_8, pk: any, data?: Partial<InstanceType<T_8>>): Promise<InstanceType<T_8>>;
286
- first<T_9 extends typeof ModelBase>(this: T_9, callback?: (builder: IWhereBuilder<T_9>) => void): Promise<InstanceType<T_9>>;
287
- last<T_10 extends typeof ModelBase>(this: T_10, callback?: (builder: IWhereBuilder<T_10>) => void): Promise<InstanceType<T_10>>;
288
- newest<T_11 extends typeof ModelBase>(this: T_11, callback?: (builder: IWhereBuilder<T_11>) => void): Promise<InstanceType<T_11>>;
289
- oldest<T_12 extends typeof ModelBase>(this: T_12, callback?: (builder: IWhereBuilder<T_12>) => void): Promise<InstanceType<T_12>>;
290
- count<T_13 extends typeof ModelBase>(this: T_13, callback?: (builder: IWhereBuilder<T_13>) => void): Promise<number>;
301
+ destroy<T_6 extends typeof ModelBase>(pks?: any | any[]): IWhereBuilder<InstanceType<T_6>>;
302
+ create<T_7 extends typeof ModelBase>(this: T_7, data: Partial<InstanceType<T_7>>): Promise<InstanceType<T_7>>;
303
+ getOrCreate<T_8 extends typeof ModelBase>(this: T_8, pk: any, data: Partial<InstanceType<T_8>>): Promise<InstanceType<T_8>>;
304
+ getOrNew<T_9 extends typeof ModelBase>(this: T_9, pk: any, data?: Partial<InstanceType<T_9>>): Promise<InstanceType<T_9>>;
305
+ first<T_10 extends typeof ModelBase>(this: T_10, callback?: (builder: IWhereBuilder<T_10>) => void): Promise<InstanceType<T_10>>;
306
+ last<T_11 extends typeof ModelBase>(this: T_11, callback?: (builder: IWhereBuilder<T_11>) => void): Promise<InstanceType<T_11>>;
307
+ newest<T_12 extends typeof ModelBase>(this: T_12, callback?: (builder: IWhereBuilder<T_12>) => void): Promise<InstanceType<T_12>>;
308
+ oldest<T_13 extends typeof ModelBase>(this: T_13, callback?: (builder: IWhereBuilder<T_13>) => void): Promise<InstanceType<T_13>>;
309
+ count<T_14 extends typeof ModelBase>(this: T_14, callback?: (builder: IWhereBuilder<T_14>) => void): Promise<number>;
291
310
  };
package/lib/model.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.MODEL_STATIC_MIXINS = exports.createQuery = exports.ModelBase = exports.extractModelDescriptor = void 0;
26
+ exports.MODEL_STATIC_MIXINS = exports.createQuery = exports.HistoricalModel = exports.ModelBase = exports.extractModelDescriptor = void 0;
27
27
  /* eslint-disable prettier/prettier */
28
28
  const relations_1 = require("./relations");
29
29
  const enums_1 = require("./enums");
@@ -70,7 +70,7 @@ exports.extractModelDescriptor = extractModelDescriptor;
70
70
  class ModelBase {
71
71
  constructor(data) {
72
72
  /**
73
- * List of hidden properties from JSON / dehydratoins
73
+ * List of hidden properties from JSON / dehydrations
74
74
  * eg. password field of user
75
75
  */
76
76
  this._hidden = [];
@@ -125,6 +125,11 @@ class ModelBase {
125
125
  }
126
126
  });
127
127
  }
128
+ driver() {
129
+ const orm = di_1.DI.get(orm_1.Orm);
130
+ const driver = orm.Connections.get(this.ModelDescriptor.Connection);
131
+ return driver;
132
+ }
128
133
  /**
129
134
  * Recursivelly takes all relation data and returns as single array
130
135
  */
@@ -146,11 +151,17 @@ class ModelBase {
146
151
  };
147
152
  return reduceRelations(this);
148
153
  }
154
+ /**
155
+ * Clears all data in table
156
+ */
157
+ static truncate() {
158
+ throw new Error('Not implemented');
159
+ }
149
160
  /**
150
161
  * Get all data from db
151
162
  */
152
163
  static all(_page, _perPage) {
153
- throw Error('Not implemented');
164
+ throw new Error('Not implemented');
154
165
  }
155
166
  /**
156
167
  * Inserts data to DB.
@@ -158,10 +169,10 @@ class ModelBase {
158
169
  * @param _data - data to insert
159
170
  */
160
171
  static insert(_data, _insertBehaviour = interfaces_1.InsertBehaviour.None) {
161
- throw Error('Not implemented');
172
+ throw new Error('Not implemented');
162
173
  }
163
174
  static where(_column, _operator, _value) {
164
- throw Error('Not implemented');
175
+ throw new Error('Not implemented');
165
176
  }
166
177
  /**
167
178
  * Updates single or multiple records at once with provided value based on condition
@@ -169,48 +180,48 @@ class ModelBase {
169
180
  * @param _data - data to set
170
181
  */
171
182
  static update(_data) {
172
- throw Error('Not implemented');
183
+ throw new Error('Not implemented');
173
184
  }
174
185
  /**
175
186
  * Tries to find all models with given primary keys
176
187
  */
177
188
  static find(_pks) {
178
- throw Error('Not implemented');
189
+ throw new Error('Not implemented');
179
190
  }
180
191
  static first() {
181
- throw Error('Not implemented');
192
+ throw new Error('Not implemented');
182
193
  }
183
194
  static last() {
184
- throw Error('Not implemented');
195
+ throw new Error('Not implemented');
185
196
  }
186
197
  static newest() {
187
- throw Error('Not implemented');
198
+ throw new Error('Not implemented');
188
199
  }
189
200
  static oldest() {
190
- throw Error('Not implemented');
201
+ throw new Error('Not implemented');
191
202
  }
192
203
  static count() {
193
- throw Error('Not implemented');
204
+ throw new Error('Not implemented');
194
205
  }
195
206
  /**
196
207
  * Tries to find all models in db. If not all exists, throws exception
197
208
  */
198
209
  static findOrFail(_pks) {
199
- throw Error('Not implemented');
210
+ throw new Error('Not implemented');
200
211
  }
201
212
  /**
202
213
  * gets model by specified pk, if not exists, returns null
203
214
  *
204
215
  */
205
216
  static get(_pk) {
206
- throw Error('Not implemented');
217
+ throw new Error('Not implemented');
207
218
  }
208
219
  /**
209
220
  * Finds model by specified pk. If model not exists in db throws exception
210
221
  *
211
222
  */
212
223
  static getOrFail(_pk) {
213
- throw Error('Not implemented');
224
+ throw new Error('Not implemented');
214
225
  }
215
226
  /**
216
227
  *
@@ -218,14 +229,14 @@ class ModelBase {
218
229
  * NOTE: it checks for unique fields constraint
219
230
  */
220
231
  static getOrNew(_pk, _data) {
221
- throw Error('Not implemented');
232
+ throw new Error('Not implemented');
222
233
  }
223
234
  /**
224
- * Creates raw query on this model. used for quering db for partial data or to perform some kind of operations
225
- * that dont need full ORM model to involve
235
+ * Creates query on this model. used for quering db for partial data, to perform some kind of operations
236
+ * that dont need full ORM model to involve, or other non standard operations eg. joins or raw data queries based on this model
226
237
  */
227
238
  static query() {
228
- throw Error('Not implemented');
239
+ throw new Error('Not implemented');
229
240
  }
230
241
  /**
231
242
  *
@@ -235,7 +246,7 @@ class ModelBase {
235
246
  * @param data - model width data to check
236
247
  */
237
248
  static getOrCreate(_pk, _data) {
238
- throw Error('Not implemented');
249
+ throw new Error('Not implemented');
239
250
  }
240
251
  /**
241
252
  * Creates new model & saves is to db
@@ -243,7 +254,7 @@ class ModelBase {
243
254
  * @param data - initial model data
244
255
  */
245
256
  static create(_data) {
246
- throw Error('Not implemented');
257
+ throw new Error('Not implemented');
247
258
  }
248
259
  /**
249
260
  * Deletes model from db
@@ -251,7 +262,7 @@ class ModelBase {
251
262
  * @param pk - primary key
252
263
  */
253
264
  static destroy(_pk) {
254
- throw Error('Not implemented');
265
+ throw new Error('Not implemented');
255
266
  }
256
267
  /**
257
268
  * Fills model with data. It only fills properties that exists in database
@@ -300,7 +311,7 @@ class ModelBase {
300
311
  if (!c.PrimaryKey && !c.Nullable && (val === null || val === undefined || val === '')) {
301
312
  throw new exceptions_1.OrmException(`Field ${c.Name} cannot be null`);
302
313
  }
303
- obj[c.Name] = c.Converter ? c.Converter.toDB(val) : val;
314
+ obj[c.Name] = c.Converter ? c.Converter.toDB(val, this, this.ModelDescriptor.Converters.get(c.Name).Options) : val;
304
315
  });
305
316
  for (const val of relArr) {
306
317
  if (val.Type === interfaces_1.RelationType.One) {
@@ -416,7 +427,13 @@ class ModelBase {
416
427
  this[this.ModelDescriptor.Timestamps.CreatedAt] = luxon_1.DateTime.now();
417
428
  }
418
429
  for (const [, rel] of this.ModelDescriptor.Relations) {
419
- if (rel.Type === interfaces_1.RelationType.Many) {
430
+ if (rel.Factory) {
431
+ this[rel.Name] = rel.Factory(this, rel, this.Container);
432
+ }
433
+ else if (rel.RelationClass) {
434
+ this[rel.Name] = this.Container.resolve(rel.RelationClass, [this, rel.TargetModel, rel, []]);
435
+ }
436
+ else if (rel.Type === interfaces_1.RelationType.Many) {
420
437
  this[rel.Name] = new relations_1.OneToManyRelationList(this, rel.TargetModel, rel, []);
421
438
  }
422
439
  else if (rel.Type === interfaces_1.RelationType.ManyToMany) {
@@ -475,6 +492,9 @@ function _prepareOrderBy(description, query, order) {
475
492
  }
476
493
  }
477
494
  }
495
+ class HistoricalModel {
496
+ }
497
+ exports.HistoricalModel = HistoricalModel;
478
498
  /**
479
499
  * Helper function to create query based on model
480
500
  *
@@ -495,7 +515,19 @@ function createQuery(model, query, injectModel = true) {
495
515
  throw new Error(`model ${model.name} have invalid connection ${dsc.Connection}, please check your db config file or model connection name`);
496
516
  }
497
517
  const cnt = driver.Container;
498
- const qr = cnt.resolve(query, [driver, injectModel ? model : null]);
518
+ const qr = cnt.resolve(query, [driver, injectModel ? orm.Models.find((x) => x.name === model.name).type : null]);
519
+ if (qr instanceof builders_1.SelectQueryBuilder) {
520
+ const scope = model._queryScopes;
521
+ if (scope) {
522
+ Object.getOwnPropertyNames(scope.__proto__)
523
+ .filter((x) => x !== 'constructor')
524
+ .forEach(function (property) {
525
+ if (typeof scope[property] === 'function') {
526
+ qr[property] = scope[property].bind(qr);
527
+ }
528
+ });
529
+ }
530
+ }
499
531
  qr.middleware(new relations_1.DiscriminationMapMiddleware(dsc));
500
532
  qr.setTable(dsc.TableName);
501
533
  if (driver.Options.Database) {
@@ -509,8 +541,21 @@ function createQuery(model, query, injectModel = true) {
509
541
  }
510
542
  exports.createQuery = createQuery;
511
543
  exports.MODEL_STATIC_MIXINS = {
544
+ truncate() {
545
+ const { query } = createQuery(this, builders_1.TruncateTableQueryBuilder, false);
546
+ return query;
547
+ },
548
+ driver() {
549
+ const dsc = _descriptor(this);
550
+ const orm = di_1.DI.get(orm_1.Orm);
551
+ const driver = orm.Connections.get(dsc.Connection);
552
+ if (!driver) {
553
+ throw new Error(`model ${this.name} have invalid connection ${dsc.Connection}, please check your db config file or model connection name`);
554
+ }
555
+ return driver;
556
+ },
512
557
  query() {
513
- const { query } = createQuery(this, builders_1.SelectQueryBuilder, false);
558
+ const { query } = createQuery(this, builders_1.SelectQueryBuilder);
514
559
  return query;
515
560
  },
516
561
  where(column, operator, value) {
@@ -621,23 +666,20 @@ exports.MODEL_STATIC_MIXINS = {
621
666
  _prepareOrderBy(description, query);
622
667
  return (await query.firstOrFail());
623
668
  },
624
- async destroy(pks) {
625
- var _a;
669
+ destroy(pks) {
670
+ var _a, _b;
626
671
  const description = _descriptor(this);
627
672
  const data = Array.isArray(pks) ? pks : [pks];
628
- if ((_a = description.SoftDelete) === null || _a === void 0 ? void 0 : _a.DeletedAt) {
629
- const { query } = createQuery(this, builders_1.UpdateQueryBuilder);
630
- const orm = di_1.DI.get(orm_1.Orm);
631
- const driver = orm.Connections.get(description.Connection);
632
- const converter = driver.Container.resolve(interfaces_1.DatetimeValueConverter);
633
- await query.whereIn(description.PrimaryKey, data).update({
634
- [description.SoftDelete.DeletedAt]: converter.toDB(luxon_1.DateTime.now()),
673
+ const { query } = ((_a = description.SoftDelete) === null || _a === void 0 ? void 0 : _a.DeletedAt) ? createQuery(this, builders_1.UpdateQueryBuilder) : createQuery(this, builders_1.DeleteQueryBuilder);
674
+ if ((_b = description.SoftDelete) === null || _b === void 0 ? void 0 : _b.DeletedAt) {
675
+ query.update({
676
+ [description.SoftDelete.DeletedAt]: luxon_1.DateTime.now(),
635
677
  });
636
678
  }
637
- else {
638
- const { query } = createQuery(this, builders_1.DeleteQueryBuilder);
639
- await query.whereIn(description.PrimaryKey, data);
679
+ if (pks) {
680
+ query.whereIn(description.PrimaryKey, data);
640
681
  }
682
+ return query;
641
683
  },
642
684
  async create(data) {
643
685
  const entity = new (Function.prototype.bind.apply(this))(data);
@@ -647,7 +689,7 @@ exports.MODEL_STATIC_MIXINS = {
647
689
  async getOrCreate(pk, data) {
648
690
  const { query, description } = createQuery(this, builders_1.SelectQueryBuilder);
649
691
  // pk constrain
650
- if (description.PrimaryKey) {
692
+ if (description.PrimaryKey && pk !== null) {
651
693
  query.where(description.PrimaryKey, pk);
652
694
  }
653
695
  // check for all unique columns ( unique constrain )
package/lib/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/lib/orm.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { Configuration } from '@spinajs/configuration';
2
- import { AsyncModule, Container, Class } from '@spinajs/di';
2
+ import { AsyncService, Container, Class } from '@spinajs/di';
3
3
  import { Log } from '@spinajs/log';
4
4
  import { ClassInfo } from '@spinajs/reflection';
5
5
  import { OrmMigration } from './interfaces';
6
6
  import { ModelBase } from './model';
7
7
  import { OrmDriver } from './driver';
8
- export declare class Orm extends AsyncModule {
8
+ export declare class Orm extends AsyncService {
9
9
  Models: Array<ClassInfo<ModelBase>>;
10
10
  Migrations: Array<ClassInfo<OrmMigration>>;
11
11
  Connections: Map<string, OrmDriver>;
@@ -31,7 +31,8 @@ export declare class Orm extends AsyncModule {
31
31
  * ORM always try to load table at resolve time
32
32
  */
33
33
  reloadTableInfo(): Promise<void>;
34
- resolveAsync(): Promise<void>;
34
+ resolve(): Promise<void>;
35
+ protected registerDefaultConverters(): void;
35
36
  protected wireRelations(): void;
36
37
  /**
37
38
  *