@spinajs/orm 1.0.60 → 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/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './interfaces';
2
2
  export * from './statements';
3
3
  export * from './builders';
4
- export * from './helpers';
5
4
  export * from './model';
6
5
  export * from './relations';
7
6
  export * from './orm';
package/lib/index.js CHANGED
@@ -7,13 +7,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
7
7
  o[k2] = m[k];
8
8
  }));
9
9
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./interfaces"), exports);
14
14
  __exportStar(require("./statements"), exports);
15
15
  __exportStar(require("./builders"), exports);
16
- __exportStar(require("./helpers"), exports);
17
16
  __exportStar(require("./model"), exports);
18
17
  __exportStar(require("./relations"), exports);
19
18
  __exportStar(require("./orm"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,wCAAsB;AACtB,0CAAwB;AACxB,+CAA6B;AAC7B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,8CAA4B;AAC5B,wCAAsB;AACtB,0CAAwB;AACxB,+CAA6B;AAC7B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,6CAA2B"}
@@ -3,6 +3,7 @@ import { SORT_ORDER, WhereBoolean } from './enums';
3
3
  import { IQueryStatement, WrapStatement } from './statements';
4
4
  import { WhereFunction } from './types';
5
5
  import { OrmDriver } from './driver';
6
+ import { Constructor } from '@spinajs/di';
6
7
  import { ModelBase } from './model';
7
8
  export declare enum QueryContext {
8
9
  Insert = 0,
@@ -113,12 +114,6 @@ export interface IDriverOptions {
113
114
  };
114
115
  };
115
116
  DefaultConnection: boolean;
116
- /**
117
- * Debug queries sent to orm driver. It writes raw queries queries to log for debug purposes
118
- */
119
- Debug?: {
120
- Queries?: boolean;
121
- };
122
117
  }
123
118
  export interface IMigrationDescriptor {
124
119
  /**
@@ -189,18 +184,18 @@ export interface IDiscriminationMap {
189
184
  /**
190
185
  * Field values mapped for proper models
191
186
  */
192
- Models: Map<string, Constructor<ModelBase<any>>>;
187
+ Models: Map<string, Constructor<ModelBase>>;
193
188
  }
194
189
  export interface IDiscriminationEntry {
195
190
  Key: string;
196
- Value: Constructor<ModelBase<any>>;
191
+ Value: Constructor<ModelBase>;
197
192
  }
198
193
  export declare enum RelationType {
199
194
  One = 0,
200
195
  Many = 1,
201
196
  ManyToMany = 2
202
197
  }
203
- export declare type ForwardRefFunction = () => Constructor<ModelBase<any>>;
198
+ export declare type ForwardRefFunction = () => Constructor<ModelBase>;
204
199
  export interface IRelationDescriptor {
205
200
  /**
206
201
  * Name of relations, defaults for property name in model that owns relation
@@ -213,11 +208,11 @@ export interface IRelationDescriptor {
213
208
  /**
214
209
  * Relation model ( foreign )
215
210
  */
216
- TargetModel: Constructor<ModelBase<any>> | ForwardRefFunction;
211
+ TargetModel: Constructor<ModelBase> | ForwardRefFunction;
217
212
  /**
218
213
  * Relation owner
219
214
  */
220
- SourceModel: Constructor<ModelBase<any>>;
215
+ SourceModel: Constructor<ModelBase>;
221
216
  /**
222
217
  * Relation foreign key (one to one, one to many)
223
218
  */
@@ -229,7 +224,7 @@ export interface IRelationDescriptor {
229
224
  /**
230
225
  * Used in many to many relations, model for join table
231
226
  */
232
- JunctionModel?: Constructor<ModelBase<any>>;
227
+ JunctionModel?: Constructor<ModelBase>;
233
228
  /**
234
229
  * Join table foreign keys, defaults to auto generated field names. Can be override.
235
230
  */
@@ -242,7 +237,7 @@ export interface IRelationDescriptor {
242
237
  }
243
238
  export interface IJunctionProperty {
244
239
  Name: string;
245
- Model: Constructor<ModelBase<any>>;
240
+ Model: Constructor<ModelBase>;
246
241
  }
247
242
  /**
248
243
  * Table column description, used in models to build schema, validate & other stuff
@@ -351,13 +346,10 @@ export declare abstract class OrmMigration {
351
346
  * Migrate up - create tables, indices etc.
352
347
  * Be aware that model function are not avaible yet. To fill tables with
353
348
  * data use fill function
354
- *
355
- * @param connection
356
349
  */
357
350
  abstract up(connection: OrmDriver): Promise<void>;
358
351
  /**
359
352
  * Migrate down - undo changes made in up
360
- * @param connection
361
353
  */
362
354
  abstract down(connection: OrmDriver): Promise<void>;
363
355
  }
@@ -408,7 +400,7 @@ export interface IColumnsBuilder {
408
400
  *
409
401
  * Select columns from db result ( multiple at once )
410
402
  *
411
- * @param names column names to select
403
+ * @param names - column names to select
412
404
  */
413
405
  columns(names: string[]): this;
414
406
  /**
@@ -419,20 +411,20 @@ export interface IColumnsBuilder {
419
411
  * Selects single column from DB result with optional alias
420
412
  * Can be used multiple times
421
413
  *
422
- * @param column column to select
423
- * @param alias column alias ( optional )
414
+ * @param column - column to select
415
+ * @param alias - column alias ( optional )
424
416
  */
425
417
  select(column: string, alias?: string): this;
426
418
  /**
427
419
  * Selects custom values from DB. eg. Count(*)
428
420
  *
429
- * @param rawQuery raw query to be executed
421
+ * @param rawQuery - raw query to be executed
430
422
  */
431
423
  select(rawQuery: RawQuery): this;
432
424
  /**
433
425
  * Selects multiple columns at once with aliases. Map key property is column name, value is its alias
434
426
  *
435
- * @param columns column list with aliases
427
+ * @param columns - column list with aliases
436
428
  */
437
429
  select(columns: Map<string, string>): this;
438
430
  }
@@ -576,10 +568,10 @@ export declare abstract class GroupByQueryCompiler implements IQueryCompiler {
576
568
  export interface IBuilderMiddleware {
577
569
  /**
578
570
  *
579
- * Executed AFTER query is executed in DB and fetcher raw data
571
+ * Executed AFTER query is executed in DB and raw data is fetched
580
572
  * Use it to transform DB data before everything else
581
573
  *
582
- * @param data raw data fetched from DB
574
+ * @param data - raw data fetched from DB
583
575
  */
584
576
  afterData(data: any[]): any[];
585
577
  /**
@@ -587,15 +579,15 @@ export interface IBuilderMiddleware {
587
579
  * override model creation logic. If null is returned, default model
588
580
  * is executed
589
581
  *
590
- * @param data raw data to create
582
+ * @param data - raw data to create
591
583
  */
592
- modelCreation(data: any): ModelBase<any>;
584
+ modelCreation(data: any): ModelBase;
593
585
  /**
594
586
  * executed after model was created ( all returned data by query is executed)
595
587
  *
596
- * @param data hydrated data. Models are created and hydrated with data
588
+ * @param data - hydrated data. Models are created and hydrated with data
597
589
  */
598
- afterHydration(data: Array<ModelBase<any>>): Promise<any[] | void>;
590
+ afterHydration(data: ModelBase[]): Promise<any[] | void>;
599
591
  }
600
592
  export declare class ValueConverter implements IValueConverter {
601
593
  /**
package/lib/interfaces.js CHANGED
@@ -67,7 +67,7 @@ var RelationType;
67
67
  let OrmMigration = class OrmMigration {
68
68
  };
69
69
  OrmMigration = __decorate([
70
- di_1.NewInstance()
70
+ (0, di_1.NewInstance)()
71
71
  ], OrmMigration);
72
72
  exports.OrmMigration = OrmMigration;
73
73
  /**
@@ -77,79 +77,79 @@ exports.OrmMigration = OrmMigration;
77
77
  let RecursiveQueryCompiler = class RecursiveQueryCompiler {
78
78
  };
79
79
  RecursiveQueryCompiler = __decorate([
80
- di_1.NewInstance()
80
+ (0, di_1.NewInstance)()
81
81
  ], RecursiveQueryCompiler);
82
82
  exports.RecursiveQueryCompiler = RecursiveQueryCompiler;
83
83
  let SelectQueryCompiler = class SelectQueryCompiler {
84
84
  };
85
85
  SelectQueryCompiler = __decorate([
86
- di_1.NewInstance()
86
+ (0, di_1.NewInstance)()
87
87
  ], SelectQueryCompiler);
88
88
  exports.SelectQueryCompiler = SelectQueryCompiler;
89
89
  let JoinQueryCompiler = class JoinQueryCompiler {
90
90
  };
91
91
  JoinQueryCompiler = __decorate([
92
- di_1.NewInstance()
92
+ (0, di_1.NewInstance)()
93
93
  ], JoinQueryCompiler);
94
94
  exports.JoinQueryCompiler = JoinQueryCompiler;
95
95
  let IndexQueryCompiler = class IndexQueryCompiler {
96
96
  };
97
97
  IndexQueryCompiler = __decorate([
98
- di_1.NewInstance()
98
+ (0, di_1.NewInstance)()
99
99
  ], IndexQueryCompiler);
100
100
  exports.IndexQueryCompiler = IndexQueryCompiler;
101
101
  let ForeignKeyQueryCompiler = class ForeignKeyQueryCompiler {
102
102
  };
103
103
  ForeignKeyQueryCompiler = __decorate([
104
- di_1.NewInstance()
104
+ (0, di_1.NewInstance)()
105
105
  ], ForeignKeyQueryCompiler);
106
106
  exports.ForeignKeyQueryCompiler = ForeignKeyQueryCompiler;
107
107
  let DeleteQueryCompiler = class DeleteQueryCompiler {
108
108
  };
109
109
  DeleteQueryCompiler = __decorate([
110
- di_1.NewInstance()
110
+ (0, di_1.NewInstance)()
111
111
  ], DeleteQueryCompiler);
112
112
  exports.DeleteQueryCompiler = DeleteQueryCompiler;
113
113
  let UpdateQueryCompiler = class UpdateQueryCompiler {
114
114
  };
115
115
  UpdateQueryCompiler = __decorate([
116
- di_1.NewInstance()
116
+ (0, di_1.NewInstance)()
117
117
  ], UpdateQueryCompiler);
118
118
  exports.UpdateQueryCompiler = UpdateQueryCompiler;
119
119
  let InsertQueryCompiler = class InsertQueryCompiler {
120
120
  };
121
121
  InsertQueryCompiler = __decorate([
122
- di_1.NewInstance()
122
+ (0, di_1.NewInstance)()
123
123
  ], InsertQueryCompiler);
124
124
  exports.InsertQueryCompiler = InsertQueryCompiler;
125
125
  let OnDuplicateQueryCompiler = class OnDuplicateQueryCompiler {
126
126
  };
127
127
  OnDuplicateQueryCompiler = __decorate([
128
- di_1.NewInstance()
128
+ (0, di_1.NewInstance)()
129
129
  ], OnDuplicateQueryCompiler);
130
130
  exports.OnDuplicateQueryCompiler = OnDuplicateQueryCompiler;
131
131
  let TableQueryCompiler = class TableQueryCompiler {
132
132
  };
133
133
  TableQueryCompiler = __decorate([
134
- di_1.NewInstance()
134
+ (0, di_1.NewInstance)()
135
135
  ], TableQueryCompiler);
136
136
  exports.TableQueryCompiler = TableQueryCompiler;
137
137
  let ColumnQueryCompiler = class ColumnQueryCompiler {
138
138
  };
139
139
  ColumnQueryCompiler = __decorate([
140
- di_1.NewInstance()
140
+ (0, di_1.NewInstance)()
141
141
  ], ColumnQueryCompiler);
142
142
  exports.ColumnQueryCompiler = ColumnQueryCompiler;
143
143
  let OrderByQueryCompiler = class OrderByQueryCompiler {
144
144
  };
145
145
  OrderByQueryCompiler = __decorate([
146
- di_1.NewInstance()
146
+ (0, di_1.NewInstance)()
147
147
  ], OrderByQueryCompiler);
148
148
  exports.OrderByQueryCompiler = OrderByQueryCompiler;
149
149
  let GroupByQueryCompiler = class GroupByQueryCompiler {
150
150
  };
151
151
  GroupByQueryCompiler = __decorate([
152
- di_1.NewInstance()
152
+ (0, di_1.NewInstance)()
153
153
  ], GroupByQueryCompiler);
154
154
  exports.GroupByQueryCompiler = GroupByQueryCompiler;
155
155
  class ValueConverter {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
package/lib/model.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { IModelDescrtiptor, InsertBehaviour } from './interfaces';
2
2
  import { WhereFunction } from './types';
3
- import { RawQuery, UpdateQueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder } from './builders';
3
+ import { RawQuery, UpdateQueryBuilder, SelectQueryBuilder, InsertQueryBuilder } from './builders';
4
4
  import { WhereOperators } from './enums';
5
5
  export declare function extractModelDescriptor(targetOrForward: any): IModelDescrtiptor;
6
- export declare abstract class ModelBase<T> {
6
+ export declare class ModelBase {
7
7
  /**
8
8
  * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
9
9
  * db table attached, column information and others.
@@ -15,119 +15,121 @@ export declare abstract class ModelBase<T> {
15
15
  /**
16
16
  * Get all data from db
17
17
  */
18
- static all<T>(_page?: number, _perPage?: number): SelectQueryBuilder<T>;
18
+ static all<T extends typeof ModelBase>(this: T, _page?: number, _perPage?: number): SelectQueryBuilder<Array<InstanceType<T>>>;
19
19
  /**
20
- * Inserts data to DB
20
+ * Inserts data to DB.
21
21
  *
22
- * @param _data data to insert
22
+ * @param _data - data to insert
23
23
  */
24
- static insert<T extends ModelBase<T>>(_data: T | object): InsertQueryBuilder;
24
+ static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>): Promise<void>;
25
25
  /**
26
- * Inserts multiple data at once to DB
26
+ * Search entities in db
27
27
  *
28
- * @param _data data to insert
28
+ * @param column - column to search or function
29
+ * @param operator - boolean operator
30
+ * @param value - value to compare
29
31
  */
30
- static insertBulk<T extends ModelBase<T>>(_data: T[] | object[]): Promise<void>;
32
+ static where<T extends typeof ModelBase>(this: T, _column: string | boolean | WhereFunction | RawQuery | object, _operator?: WhereOperators | any, _value?: any): SelectQueryBuilder<Array<InstanceType<T>>>;
31
33
  /**
32
- * Search entities in db
34
+ * Updates single or multiple records at once with provided value based on condition
33
35
  *
34
- * @param column column to search or function
35
- * @param operator boolean operator
36
- * @param value value to compare
36
+ * @param _data - data to set
37
+ */
38
+ static update<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): UpdateQueryBuilder;
39
+ /**
40
+ * Tries to find all models with given primary keys
41
+ */
42
+ static find<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
43
+ /**
44
+ * Tries to find all models in db. If not all exists, throws exception
45
+ */
46
+ static findOrFail<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
47
+ /**
48
+ * gets model by specified pk, if not exists, returns null
37
49
  *
38
- * @returns {SelectQueryBuilder} fluent query builder to add more conditions if needed
39
50
  */
40
- static where<T>(_column: string | boolean | WhereFunction | RawQuery | {}, _operator?: WhereOperators | any, _value?: any): SelectQueryBuilder<T>;
51
+ static get<T extends typeof ModelBase>(this: T, _pk: any): Promise<Array<InstanceType<T>>>;
41
52
  /**
42
- * Updates single or multiple records at once with provided value based on condition
53
+ * Finds model by specified pk. If model not exists in db throws exception
43
54
  *
44
- * @param _data data to set
45
55
  */
46
- static update(_data: object): UpdateQueryBuilder;
47
- static find<T>(pks: any[]): Promise<T[]>;
48
- static find<T>(pks: any): Promise<T>;
56
+ static getOrFail<T extends typeof ModelBase>(this: T, _pk: any): Promise<Array<InstanceType<T>>>;
49
57
  /**
50
- * Finds model by specified pk
51
58
  *
52
- * @param _pk pk to find
59
+ * Checks if model with pk key or unique fields exists and if not creates one AND NOT save in db
60
+ * NOTE: it checks for unique fields constraint
53
61
  */
54
- static findOrFail<T>(_pk: any): Promise<T>;
62
+ static getOrNew<T extends typeof ModelBase>(this: T, _pk?: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
55
63
  /**
56
64
  * Creates raw query on this model. used for quering db for partial data or to perform some kind of operations
57
65
  * that dont need full ORM model to involve
58
66
  */
59
- static query<T>(): SelectQueryBuilder<T>;
67
+ static query<T>(this: T): SelectQueryBuilder<T>;
60
68
  /**
61
69
  *
62
70
  * Checks if model with pk key / unique fields exists and if not creates one and saves to db
63
71
  * NOTE: it checks for unique fields too.
64
72
  *
65
- * @param {any} data - model width data to check
73
+ * @param data - model width data to check
66
74
  */
67
- static firstOrCreate<T>(_pk: any, _data?: any): Promise<T>;
75
+ static getOrCreate<T extends typeof ModelBase>(this: T, _pk: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
68
76
  /**
69
77
  * Creates new model & saves is to db
70
78
  *
71
- * @param {any} data - initial model data
72
- */
73
- static create<T>(_data?: any): Promise<T>;
74
- /**
75
- *
76
- * Checks if model with pk key or unique fields exists and if not creates one AND NOT save in db
77
- * NOTE: it checks for unique fields constraint
78
- *
79
- * @param {any} data - model to check
79
+ * @param data - initial model data
80
80
  */
81
- static firstOrNew<T>(_data?: any): Promise<T>;
81
+ static create<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
82
82
  /**
83
83
  * Deletes model from db
84
84
  *
85
- * @param pk? primary key
85
+ * @param pk - primary key
86
86
  */
87
- static destroy(): DeleteQueryBuilder;
87
+ static destroy(_pk?: any | any[]): Promise<void>;
88
88
  constructor(data?: any);
89
89
  /**
90
90
  * Fills model with data. It only fills properties that exists in database
91
91
  *
92
- * @param data data to fill
92
+ * @param data - data to fill
93
93
  */
94
- hydrate(data: any): void;
94
+ hydrate(data: Partial<this>): void;
95
95
  /**
96
96
  * Extracts all data from model. It takes only properties that exists in DB
97
97
  */
98
- dehydrate(): {};
98
+ dehydrate(): Partial<this>;
99
99
  /**
100
100
  * deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
101
101
  */
102
102
  destroy(): Promise<void>;
103
+ update(): Promise<void>;
103
104
  /**
104
105
  * Save all changes to db. It creates new entry id db or updates existing one if
105
106
  * primary key exists
106
107
  */
107
- save(insertBehaviour?: InsertBehaviour): Promise<void>;
108
+ insert(insertBehaviour?: InsertBehaviour): Promise<void>;
108
109
  /**
109
110
  * Gets model data from database and returns as fresh instance.
110
111
  */
111
- fresh(): Promise<T>;
112
+ fresh(): Promise<this>;
112
113
  /**
113
114
  * sets default values for model. values are taken from DB default column prop
114
115
  */
115
- protected defaults(): void;
116
+ protected setDefaults(): void;
116
117
  }
117
118
  export declare const MODEL_STATIC_MIXINS: {
118
119
  query(): SelectQueryBuilder;
119
120
  where(column: string | boolean | WhereFunction | RawQuery | {}, operator?: WhereOperators | any, value?: any): SelectQueryBuilder;
120
- update(data: object): UpdateQueryBuilder;
121
+ update<T extends typeof ModelBase>(data: Partial<InstanceType<T>>): UpdateQueryBuilder;
121
122
  all(page: number, perPage: number): SelectQueryBuilder;
122
- insertBulk<T>(data: (object | ModelBase<T>)[]): InsertQueryBuilder;
123
123
  /**
124
124
  * Try to insert new value
125
125
  */
126
- insert<T_1>(data: object | ModelBase<T_1>): InsertQueryBuilder;
127
- find(pks: any | any[]): Promise<any>;
128
- findOrFail<T_2>(pks: any | any[]): Promise<T_2 | T_2[]>;
129
- destroy(pks?: any | any[]): Promise<any> | DeleteQueryBuilder | UpdateQueryBuilder;
130
- create(data?: any): Promise<any>;
131
- firstOrCreate(data?: any): Promise<any>;
132
- firstOrNew(data?: any): Promise<any>;
126
+ insert<T_1 extends typeof ModelBase>(this: T_1, data: InstanceType<T_1> | Partial<InstanceType<T_1>> | InstanceType<T_1>[] | Partial<InstanceType<T_1>>[]): InsertQueryBuilder;
127
+ find<T_2 extends typeof ModelBase>(this: T_2, pks: any[]): Promise<InstanceType<T_2>[]>;
128
+ findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
129
+ get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
130
+ getOrFail<T_5 extends typeof ModelBase>(this: T_5, pk: any): Promise<InstanceType<T_5>>;
131
+ destroy(pks: any | any[]): Promise<void>;
132
+ create<T_6 extends typeof ModelBase>(this: T_6, data: Partial<InstanceType<T_6>>): Promise<InstanceType<T_6>>;
133
+ getOrCreate<T_7 extends typeof ModelBase>(this: T_7, pk: any, data: Partial<InstanceType<T_7>>): Promise<InstanceType<T_7>>;
134
+ getOrNew<T_8 extends typeof ModelBase>(this: T_8, pk: any, data?: Partial<InstanceType<T_8>>): Promise<InstanceType<T_8>>;
133
135
  };