@spinajs/orm 1.2.77 → 1.2.83

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/interfaces.js CHANGED
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SetValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.ColumnQueryCompiler = exports.TableExistsCompiler = exports.TableQueryCompiler = exports.OnDuplicateQueryCompiler = exports.InsertQueryCompiler = exports.UpdateQueryCompiler = exports.DeleteQueryCompiler = exports.ForeignKeyQueryCompiler = exports.IndexQueryCompiler = exports.JoinQueryCompiler = exports.SelectQueryCompiler = exports.RecursiveQueryCompiler = exports.OrmMigration = exports.RelationType = exports.MigrationTransactionMode = exports.ReferentialAction = exports.InsertBehaviour = exports.QueryContext = void 0;
9
+ exports.TableAliasCompiler = exports.SetValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.AlterColumnQueryCompiler = exports.ColumnQueryCompiler = exports.TableExistsCompiler = exports.AlterTableQueryCompiler = exports.TableCloneQueryCompiler = exports.TruncateTableQueryCompiler = exports.TableQueryCompiler = exports.OnDuplicateQueryCompiler = exports.InsertQueryCompiler = exports.UpdateQueryCompiler = exports.DeleteQueryCompiler = exports.ForeignKeyQueryCompiler = exports.LimitQueryCompiler = exports.IndexQueryCompiler = exports.JoinQueryCompiler = exports.SelectQueryCompiler = exports.RecursiveQueryCompiler = exports.OrmMigration = exports.RelationType = exports.MigrationTransactionMode = exports.ReferentialAction = exports.InsertBehaviour = exports.ColumnAlterationType = exports.QueryContext = void 0;
10
10
  const di_1 = require("@spinajs/di");
11
11
  const exceptions_1 = require("@spinajs/exceptions");
12
12
  var QueryContext;
@@ -18,21 +18,26 @@ var QueryContext;
18
18
  QueryContext[QueryContext["Schema"] = 4] = "Schema";
19
19
  QueryContext[QueryContext["Transaction"] = 5] = "Transaction";
20
20
  })(QueryContext = exports.QueryContext || (exports.QueryContext = {}));
21
+ var ColumnAlterationType;
22
+ (function (ColumnAlterationType) {
23
+ ColumnAlterationType[ColumnAlterationType["Add"] = 0] = "Add";
24
+ ColumnAlterationType[ColumnAlterationType["Modify"] = 1] = "Modify";
25
+ ColumnAlterationType[ColumnAlterationType["Rename"] = 2] = "Rename";
26
+ })(ColumnAlterationType = exports.ColumnAlterationType || (exports.ColumnAlterationType = {}));
21
27
  var InsertBehaviour;
22
28
  (function (InsertBehaviour) {
23
29
  /**
24
- * On duplicate entry ignore & fetch only model primary key
25
- * On duplicate check not only for pkeys but also for unique constrain
30
+ * Ignores if primary key exists in db
26
31
  */
27
- InsertBehaviour[InsertBehaviour["OnDuplicateIgnore"] = 0] = "OnDuplicateIgnore";
32
+ InsertBehaviour[InsertBehaviour["InsertOrIgnore"] = 0] = "InsertOrIgnore";
28
33
  /**
29
- * On duplicate update entry ( when unique constraint is hit update db from model data)
34
+ * Updates entry if pk exists
30
35
  */
31
- InsertBehaviour[InsertBehaviour["OnDuplicateUpdate"] = 1] = "OnDuplicateUpdate";
36
+ InsertBehaviour[InsertBehaviour["InsertOrUpdate"] = 1] = "InsertOrUpdate";
32
37
  /**
33
- * Throw error if model hits constraint ( primary or unique keys )
38
+ * Replaces entry if pk exists
34
39
  */
35
- InsertBehaviour[InsertBehaviour["OnDuplicateThrow"] = 2] = "OnDuplicateThrow";
40
+ InsertBehaviour[InsertBehaviour["InsertOrReplace"] = 2] = "InsertOrReplace";
36
41
  InsertBehaviour[InsertBehaviour["None"] = 3] = "None";
37
42
  })(InsertBehaviour = exports.InsertBehaviour || (exports.InsertBehaviour = {}));
38
43
  /**
@@ -100,6 +105,12 @@ IndexQueryCompiler = __decorate([
100
105
  (0, di_1.NewInstance)()
101
106
  ], IndexQueryCompiler);
102
107
  exports.IndexQueryCompiler = IndexQueryCompiler;
108
+ let LimitQueryCompiler = class LimitQueryCompiler {
109
+ };
110
+ LimitQueryCompiler = __decorate([
111
+ (0, di_1.NewInstance)()
112
+ ], LimitQueryCompiler);
113
+ exports.LimitQueryCompiler = LimitQueryCompiler;
103
114
  let ForeignKeyQueryCompiler = class ForeignKeyQueryCompiler {
104
115
  };
105
116
  ForeignKeyQueryCompiler = __decorate([
@@ -136,6 +147,24 @@ TableQueryCompiler = __decorate([
136
147
  (0, di_1.NewInstance)()
137
148
  ], TableQueryCompiler);
138
149
  exports.TableQueryCompiler = TableQueryCompiler;
150
+ let TruncateTableQueryCompiler = class TruncateTableQueryCompiler {
151
+ };
152
+ TruncateTableQueryCompiler = __decorate([
153
+ (0, di_1.NewInstance)()
154
+ ], TruncateTableQueryCompiler);
155
+ exports.TruncateTableQueryCompiler = TruncateTableQueryCompiler;
156
+ let TableCloneQueryCompiler = class TableCloneQueryCompiler {
157
+ };
158
+ TableCloneQueryCompiler = __decorate([
159
+ (0, di_1.NewInstance)()
160
+ ], TableCloneQueryCompiler);
161
+ exports.TableCloneQueryCompiler = TableCloneQueryCompiler;
162
+ let AlterTableQueryCompiler = class AlterTableQueryCompiler {
163
+ };
164
+ AlterTableQueryCompiler = __decorate([
165
+ (0, di_1.NewInstance)()
166
+ ], AlterTableQueryCompiler);
167
+ exports.AlterTableQueryCompiler = AlterTableQueryCompiler;
139
168
  let TableExistsCompiler = class TableExistsCompiler {
140
169
  };
141
170
  TableExistsCompiler = __decorate([
@@ -148,6 +177,12 @@ ColumnQueryCompiler = __decorate([
148
177
  (0, di_1.NewInstance)()
149
178
  ], ColumnQueryCompiler);
150
179
  exports.ColumnQueryCompiler = ColumnQueryCompiler;
180
+ let AlterColumnQueryCompiler = class AlterColumnQueryCompiler {
181
+ };
182
+ AlterColumnQueryCompiler = __decorate([
183
+ (0, di_1.NewInstance)()
184
+ ], AlterColumnQueryCompiler);
185
+ exports.AlterColumnQueryCompiler = AlterColumnQueryCompiler;
151
186
  let OrderByQueryCompiler = class OrderByQueryCompiler {
152
187
  };
153
188
  OrderByQueryCompiler = __decorate([
@@ -191,4 +226,10 @@ exports.DatetimeValueConverter = DatetimeValueConverter;
191
226
  class SetValueConverter extends ValueConverter {
192
227
  }
193
228
  exports.SetValueConverter = SetValueConverter;
229
+ let TableAliasCompiler = class TableAliasCompiler {
230
+ };
231
+ TableAliasCompiler = __decorate([
232
+ (0, di_1.Singleton)()
233
+ ], TableAliasCompiler);
234
+ exports.TableAliasCompiler = TableAliasCompiler;
194
235
  //# sourceMappingURL=interfaces.js.map
@@ -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,14 +1,22 @@
1
- import { IModelDescrtiptor, InsertBehaviour } from './interfaces';
1
+ import { IModelDescrtiptor, InsertBehaviour, IUpdateResult, IWhereBuilder } from './interfaces';
2
2
  import { WhereFunction } from './types';
3
3
  import { RawQuery, UpdateQueryBuilder, SelectQueryBuilder, InsertQueryBuilder } from './builders';
4
- import { WhereOperators } from './enums';
4
+ import { Op } from './enums';
5
+ import { IContainer } from '@spinajs/di';
6
+ import { WrapStatement } from './statements';
5
7
  export declare function extractModelDescriptor(targetOrForward: any): IModelDescrtiptor;
6
8
  export declare class ModelBase {
9
+ private _descriptor;
10
+ private _container;
7
11
  /**
8
12
  * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
9
13
  * db table attached, column information and others.
10
14
  */
11
15
  get ModelDescriptor(): IModelDescrtiptor;
16
+ /**
17
+ * Gets di container associated with this model ( via connection object eg. different drivers have their own implementation of things)
18
+ */
19
+ get Container(): IContainer;
12
20
  get PrimaryKeyName(): string;
13
21
  get PrimaryKeyValue(): any;
14
22
  set PrimaryKeyValue(newVal: any);
@@ -21,7 +29,7 @@ export declare class ModelBase {
21
29
  *
22
30
  * @param _data - data to insert
23
31
  */
24
- static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>): InsertQueryBuilder;
32
+ static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>, _insertBehaviour?: InsertBehaviour): InsertQueryBuilder;
25
33
  /**
26
34
  * Search entities in db
27
35
  *
@@ -29,7 +37,13 @@ export declare class ModelBase {
29
37
  * @param operator - boolean operator
30
38
  * @param value - value to compare
31
39
  */
32
- static where<T extends typeof ModelBase>(this: T, _column: string | boolean | WhereFunction | RawQuery | object, _operator?: WhereOperators | any, _value?: any): SelectQueryBuilder<Array<InstanceType<T>>>;
40
+ static where<T extends typeof ModelBase>(this: T, val: boolean): SelectQueryBuilder<Array<InstanceType<T>>>;
41
+ static where<T extends typeof ModelBase>(this: T, val: {}): SelectQueryBuilder<Array<InstanceType<T>>>;
42
+ static where<T extends typeof ModelBase>(this: T, func: WhereFunction): SelectQueryBuilder<Array<InstanceType<T>>>;
43
+ static where<T extends typeof ModelBase>(this: T, column: string, operator: Op, value: any): SelectQueryBuilder<Array<InstanceType<T>>>;
44
+ static where<T extends typeof ModelBase>(this: T, column: string, value: any): SelectQueryBuilder<Array<InstanceType<T>>>;
45
+ static where<T extends typeof ModelBase>(this: T, statement: WrapStatement): SelectQueryBuilder<Array<InstanceType<T>>>;
46
+ static where<T extends typeof ModelBase>(this: T, column: string | boolean | WhereFunction | RawQuery | {}, operator?: Op | any, value?: any): SelectQueryBuilder<Array<InstanceType<T>>>;
33
47
  /**
34
48
  * Updates single or multiple records at once with provided value based on condition
35
49
  *
@@ -40,6 +54,30 @@ export declare class ModelBase {
40
54
  * Tries to find all models with given primary keys
41
55
  */
42
56
  static find<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
57
+ /**
58
+ * Tries to get first result from db
59
+ *
60
+ * Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
61
+ */
62
+ static first<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder) => void): Promise<number>;
63
+ /**
64
+ * Tries to get first result from db
65
+ *
66
+ * Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
67
+ */
68
+ static last<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T>>;
69
+ /**
70
+ * Tries to get newest result from db. It throws if model dont have CreatedAt decorated property
71
+ */
72
+ static newest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T>>;
73
+ /**
74
+ * Tries to get oldest result from db. It throws if model dont have CreatedAt decorated property
75
+ */
76
+ static oldest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T>>;
77
+ /**
78
+ * Returns total count of entries in db for this model
79
+ */
80
+ static count<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T>>;
43
81
  /**
44
82
  * Tries to find all models in db. If not all exists, throws exception
45
83
  */
@@ -107,16 +145,30 @@ export declare class ModelBase {
107
145
  * deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
108
146
  */
109
147
  destroy(): Promise<void>;
148
+ /**
149
+ * If model can be in achived state - sets archived at date and saves it to db
150
+ */
151
+ archive(): Promise<void>;
110
152
  update(): Promise<void>;
111
153
  /**
112
154
  * Save all changes to db. It creates new entry id db or updates existing one if
113
155
  * primary key exists
114
156
  */
115
- insert(insertBehaviour?: InsertBehaviour): Promise<void>;
157
+ insert(insertBehaviour?: InsertBehaviour): Promise<IUpdateResult>;
116
158
  /**
117
159
  * Gets model data from database and returns as fresh instance.
160
+ *
161
+ * If primary key is not fetched, tries to load by columns with unique constraint.
162
+ * If there is no unique columns or primary key, throws error
118
163
  */
119
164
  fresh(): Promise<this>;
165
+ /**
166
+ * Refresh model from database.
167
+ *
168
+ * If no primary key is set, tries to fetch data base on columns
169
+ * with unique constraints. If none exists, throws exception
170
+ */
171
+ refresh(): Promise<void>;
120
172
  /**
121
173
  * sets default values for model. values are taken from DB default column prop
122
174
  */
@@ -124,13 +176,13 @@ export declare class ModelBase {
124
176
  }
125
177
  export declare const MODEL_STATIC_MIXINS: {
126
178
  query(): SelectQueryBuilder;
127
- where(column: string | boolean | WhereFunction | RawQuery | {}, operator?: WhereOperators | any, value?: any): SelectQueryBuilder;
179
+ where(column: string | boolean | WhereFunction | RawQuery | {}, operator?: Op | any, value?: any): SelectQueryBuilder;
128
180
  update<T extends typeof ModelBase>(data: Partial<InstanceType<T>>): UpdateQueryBuilder;
129
- all(page: number, perPage: number): SelectQueryBuilder;
181
+ all(page?: number, perPage?: number): SelectQueryBuilder<unknown>;
130
182
  /**
131
183
  * Try to insert new value
132
184
  */
133
- 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;
185
+ insert<T_1 extends typeof ModelBase>(this: T_1, data: InstanceType<T_1> | Partial<InstanceType<T_1>> | InstanceType<T_1>[] | Partial<InstanceType<T_1>>[], insertBehaviour?: InsertBehaviour): Promise<IUpdateResult>;
134
186
  find<T_2 extends typeof ModelBase>(this: T_2, pks: any[]): Promise<InstanceType<T_2>[]>;
135
187
  findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
136
188
  get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
@@ -139,4 +191,9 @@ export declare const MODEL_STATIC_MIXINS: {
139
191
  create<T_6 extends typeof ModelBase>(this: T_6, data: Partial<InstanceType<T_6>>): Promise<InstanceType<T_6>>;
140
192
  getOrCreate<T_7 extends typeof ModelBase>(this: T_7, pk: any, data: Partial<InstanceType<T_7>>): Promise<InstanceType<T_7>>;
141
193
  getOrNew<T_8 extends typeof ModelBase>(this: T_8, pk: any, data?: Partial<InstanceType<T_8>>): Promise<InstanceType<T_8>>;
194
+ first<T_9 extends typeof ModelBase>(this: T_9, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T_9>>;
195
+ last<T_10 extends typeof ModelBase>(this: T_10, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T_10>>;
196
+ newest<T_11 extends typeof ModelBase>(this: T_11, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T_11>>;
197
+ oldest<T_12 extends typeof ModelBase>(this: T_12, callback?: (builder: IWhereBuilder) => void): Promise<InstanceType<T_12>>;
198
+ count<T_13 extends typeof ModelBase>(this: T_13, callback?: (builder: IWhereBuilder) => void): Promise<number>;
142
199
  };