@spinajs/orm-sql 2.0.38 → 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/compilers.d.ts +25 -6
- package/lib/compilers.js +223 -16
- package/lib/compilers.js.map +1 -1
- package/lib/converters.js +4 -7
- package/lib/converters.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/orm/src/builders.d.ts +636 -0
- package/lib/orm/src/builders.js +1509 -0
- package/lib/orm/src/builders.js.map +1 -0
- package/lib/orm/src/converters.d.ts +14 -0
- package/lib/orm/src/converters.js +57 -0
- package/lib/orm/src/converters.js.map +1 -0
- package/lib/orm/src/decorators.d.ts +152 -0
- package/lib/orm/src/decorators.js +454 -0
- package/lib/orm/src/decorators.js.map +1 -0
- package/lib/orm/src/dehydrators.d.ts +7 -0
- package/lib/orm/src/dehydrators.js +41 -0
- package/lib/orm/src/dehydrators.js.map +1 -0
- package/lib/orm/src/driver.d.ts +80 -0
- package/lib/orm/src/driver.js +104 -0
- package/lib/orm/src/driver.js.map +1 -0
- package/lib/orm/src/enums.d.ts +115 -0
- package/lib/orm/src/enums.js +125 -0
- package/lib/orm/src/enums.js.map +1 -0
- package/lib/orm/src/exceptions.d.ts +6 -0
- package/lib/orm/src/exceptions.js +11 -0
- package/lib/orm/src/exceptions.js.map +1 -0
- package/lib/orm/src/hydrators.d.ts +19 -0
- package/lib/orm/src/hydrators.js +110 -0
- package/lib/orm/src/hydrators.js.map +1 -0
- package/lib/orm/src/interfaces.d.ts +794 -0
- package/lib/orm/src/interfaces.js +293 -0
- package/lib/orm/src/interfaces.js.map +1 -0
- package/lib/orm/src/model.d.ts +310 -0
- package/lib/orm/src/model.js +779 -0
- package/lib/orm/src/model.js.map +1 -0
- package/lib/orm/src/orm.d.ts +61 -0
- package/lib/orm/src/orm.js +341 -0
- package/lib/orm/src/orm.js.map +1 -0
- package/lib/orm/src/relations.d.ts +150 -0
- package/lib/orm/src/relations.js +681 -0
- package/lib/orm/src/relations.js.map +1 -0
- package/lib/orm/src/statements.d.ts +140 -0
- package/lib/orm/src/statements.js +314 -0
- package/lib/orm/src/statements.js.map +1 -0
- package/lib/orm/src/types.d.ts +11 -0
- package/lib/orm/src/types.js +3 -0
- package/lib/orm/src/types.js.map +1 -0
- package/lib/orm-sql/src/builders.d.ts +11 -0
- package/lib/orm-sql/src/builders.js +42 -0
- package/lib/orm-sql/src/builders.js.map +1 -0
- package/lib/orm-sql/src/compilers.d.ts +226 -0
- package/lib/orm-sql/src/compilers.js +1016 -0
- package/lib/orm-sql/src/compilers.js.map +1 -0
- package/lib/orm-sql/src/converters.d.ts +10 -0
- package/lib/orm-sql/src/converters.js +39 -0
- package/lib/orm-sql/src/converters.js.map +1 -0
- package/lib/orm-sql/src/index.d.ts +6 -0
- package/lib/orm-sql/src/index.js +70 -0
- package/lib/orm-sql/src/index.js.map +1 -0
- package/lib/orm-sql/src/statements.d.ts +46 -0
- package/lib/orm-sql/src/statements.js +268 -0
- package/lib/orm-sql/src/statements.js.map +1 -0
- package/lib/statements.js +22 -4
- package/lib/statements.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.QueryScope = exports.TableAliasCompiler = exports.SetValueConverter = exports.JsonValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.ModelMiddleware = exports.QueryMiddleware = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.AlterColumnQueryCompiler = exports.ColumnQueryCompiler = exports.DropTableCompiler = exports.TableExistsCompiler = exports.AlterTableQueryCompiler = exports.DropEventQueryCompiler = exports.EventQueryCompiler = exports.TableCloneQueryCompiler = exports.TruncateTableQueryCompiler = exports.TableHistoryQueryCompiler = 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.DefaultValueBuilder = exports.ColumnAlterationType = exports.QueryContext = void 0;
|
|
10
|
+
const di_1 = require("@spinajs/di");
|
|
11
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
12
|
+
var QueryContext;
|
|
13
|
+
(function (QueryContext) {
|
|
14
|
+
QueryContext[QueryContext["Insert"] = 0] = "Insert";
|
|
15
|
+
QueryContext[QueryContext["Select"] = 1] = "Select";
|
|
16
|
+
QueryContext[QueryContext["Update"] = 2] = "Update";
|
|
17
|
+
QueryContext[QueryContext["Delete"] = 3] = "Delete";
|
|
18
|
+
QueryContext[QueryContext["Schema"] = 4] = "Schema";
|
|
19
|
+
QueryContext[QueryContext["Transaction"] = 5] = "Transaction";
|
|
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 = {}));
|
|
27
|
+
class DefaultValueBuilder {
|
|
28
|
+
}
|
|
29
|
+
exports.DefaultValueBuilder = DefaultValueBuilder;
|
|
30
|
+
var InsertBehaviour;
|
|
31
|
+
(function (InsertBehaviour) {
|
|
32
|
+
/**
|
|
33
|
+
* Ignores if primary key exists in db
|
|
34
|
+
*/
|
|
35
|
+
InsertBehaviour[InsertBehaviour["InsertOrIgnore"] = 0] = "InsertOrIgnore";
|
|
36
|
+
/**
|
|
37
|
+
* Updates entry if pk exists
|
|
38
|
+
*/
|
|
39
|
+
InsertBehaviour[InsertBehaviour["InsertOrUpdate"] = 1] = "InsertOrUpdate";
|
|
40
|
+
/**
|
|
41
|
+
* Replaces entry if pk exists
|
|
42
|
+
*/
|
|
43
|
+
InsertBehaviour[InsertBehaviour["InsertOrReplace"] = 2] = "InsertOrReplace";
|
|
44
|
+
InsertBehaviour[InsertBehaviour["None"] = 3] = "None";
|
|
45
|
+
})(InsertBehaviour = exports.InsertBehaviour || (exports.InsertBehaviour = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Foreign key referential actions
|
|
48
|
+
*/
|
|
49
|
+
var ReferentialAction;
|
|
50
|
+
(function (ReferentialAction) {
|
|
51
|
+
ReferentialAction["Cascade"] = "CASCADE";
|
|
52
|
+
ReferentialAction["SetNull"] = "SET NULL";
|
|
53
|
+
ReferentialAction["Restrict"] = "RESTRICT";
|
|
54
|
+
ReferentialAction["NoAction"] = "NO ACTION";
|
|
55
|
+
ReferentialAction["SetDefault"] = "SET DEFAULT";
|
|
56
|
+
})(ReferentialAction = exports.ReferentialAction || (exports.ReferentialAction = {}));
|
|
57
|
+
/**
|
|
58
|
+
* Transaction mode when migration DB
|
|
59
|
+
*/
|
|
60
|
+
var MigrationTransactionMode;
|
|
61
|
+
(function (MigrationTransactionMode) {
|
|
62
|
+
/**
|
|
63
|
+
* Migration is run whithout transaction
|
|
64
|
+
*/
|
|
65
|
+
MigrationTransactionMode[MigrationTransactionMode["None"] = 0] = "None";
|
|
66
|
+
/**
|
|
67
|
+
* On transaction for one migration - every migration has its own
|
|
68
|
+
*/
|
|
69
|
+
MigrationTransactionMode[MigrationTransactionMode["PerMigration"] = 1] = "PerMigration";
|
|
70
|
+
})(MigrationTransactionMode = exports.MigrationTransactionMode || (exports.MigrationTransactionMode = {}));
|
|
71
|
+
var RelationType;
|
|
72
|
+
(function (RelationType) {
|
|
73
|
+
RelationType[RelationType["One"] = 0] = "One";
|
|
74
|
+
RelationType[RelationType["Many"] = 1] = "Many";
|
|
75
|
+
RelationType[RelationType["ManyToMany"] = 2] = "ManyToMany";
|
|
76
|
+
})(RelationType = exports.RelationType || (exports.RelationType = {}));
|
|
77
|
+
let OrmMigration = class OrmMigration {
|
|
78
|
+
};
|
|
79
|
+
OrmMigration = __decorate([
|
|
80
|
+
(0, di_1.NewInstance)()
|
|
81
|
+
], OrmMigration);
|
|
82
|
+
exports.OrmMigration = OrmMigration;
|
|
83
|
+
/**
|
|
84
|
+
* Definitions of query compiler are needed for DI resolving
|
|
85
|
+
* ==========================================================
|
|
86
|
+
*/
|
|
87
|
+
let RecursiveQueryCompiler = class RecursiveQueryCompiler {
|
|
88
|
+
};
|
|
89
|
+
RecursiveQueryCompiler = __decorate([
|
|
90
|
+
(0, di_1.NewInstance)()
|
|
91
|
+
], RecursiveQueryCompiler);
|
|
92
|
+
exports.RecursiveQueryCompiler = RecursiveQueryCompiler;
|
|
93
|
+
let SelectQueryCompiler = class SelectQueryCompiler {
|
|
94
|
+
};
|
|
95
|
+
SelectQueryCompiler = __decorate([
|
|
96
|
+
(0, di_1.NewInstance)()
|
|
97
|
+
], SelectQueryCompiler);
|
|
98
|
+
exports.SelectQueryCompiler = SelectQueryCompiler;
|
|
99
|
+
let JoinQueryCompiler = class JoinQueryCompiler {
|
|
100
|
+
};
|
|
101
|
+
JoinQueryCompiler = __decorate([
|
|
102
|
+
(0, di_1.NewInstance)()
|
|
103
|
+
], JoinQueryCompiler);
|
|
104
|
+
exports.JoinQueryCompiler = JoinQueryCompiler;
|
|
105
|
+
let IndexQueryCompiler = class IndexQueryCompiler {
|
|
106
|
+
};
|
|
107
|
+
IndexQueryCompiler = __decorate([
|
|
108
|
+
(0, di_1.NewInstance)()
|
|
109
|
+
], IndexQueryCompiler);
|
|
110
|
+
exports.IndexQueryCompiler = IndexQueryCompiler;
|
|
111
|
+
let LimitQueryCompiler = class LimitQueryCompiler {
|
|
112
|
+
};
|
|
113
|
+
LimitQueryCompiler = __decorate([
|
|
114
|
+
(0, di_1.NewInstance)()
|
|
115
|
+
], LimitQueryCompiler);
|
|
116
|
+
exports.LimitQueryCompiler = LimitQueryCompiler;
|
|
117
|
+
let ForeignKeyQueryCompiler = class ForeignKeyQueryCompiler {
|
|
118
|
+
};
|
|
119
|
+
ForeignKeyQueryCompiler = __decorate([
|
|
120
|
+
(0, di_1.NewInstance)()
|
|
121
|
+
], ForeignKeyQueryCompiler);
|
|
122
|
+
exports.ForeignKeyQueryCompiler = ForeignKeyQueryCompiler;
|
|
123
|
+
let DeleteQueryCompiler = class DeleteQueryCompiler {
|
|
124
|
+
};
|
|
125
|
+
DeleteQueryCompiler = __decorate([
|
|
126
|
+
(0, di_1.NewInstance)()
|
|
127
|
+
], DeleteQueryCompiler);
|
|
128
|
+
exports.DeleteQueryCompiler = DeleteQueryCompiler;
|
|
129
|
+
let UpdateQueryCompiler = class UpdateQueryCompiler {
|
|
130
|
+
};
|
|
131
|
+
UpdateQueryCompiler = __decorate([
|
|
132
|
+
(0, di_1.NewInstance)()
|
|
133
|
+
], UpdateQueryCompiler);
|
|
134
|
+
exports.UpdateQueryCompiler = UpdateQueryCompiler;
|
|
135
|
+
let InsertQueryCompiler = class InsertQueryCompiler {
|
|
136
|
+
};
|
|
137
|
+
InsertQueryCompiler = __decorate([
|
|
138
|
+
(0, di_1.NewInstance)()
|
|
139
|
+
], InsertQueryCompiler);
|
|
140
|
+
exports.InsertQueryCompiler = InsertQueryCompiler;
|
|
141
|
+
let OnDuplicateQueryCompiler = class OnDuplicateQueryCompiler {
|
|
142
|
+
};
|
|
143
|
+
OnDuplicateQueryCompiler = __decorate([
|
|
144
|
+
(0, di_1.NewInstance)()
|
|
145
|
+
], OnDuplicateQueryCompiler);
|
|
146
|
+
exports.OnDuplicateQueryCompiler = OnDuplicateQueryCompiler;
|
|
147
|
+
let TableQueryCompiler = class TableQueryCompiler {
|
|
148
|
+
};
|
|
149
|
+
TableQueryCompiler = __decorate([
|
|
150
|
+
(0, di_1.NewInstance)()
|
|
151
|
+
], TableQueryCompiler);
|
|
152
|
+
exports.TableQueryCompiler = TableQueryCompiler;
|
|
153
|
+
let TableHistoryQueryCompiler = class TableHistoryQueryCompiler {
|
|
154
|
+
};
|
|
155
|
+
TableHistoryQueryCompiler = __decorate([
|
|
156
|
+
(0, di_1.NewInstance)()
|
|
157
|
+
], TableHistoryQueryCompiler);
|
|
158
|
+
exports.TableHistoryQueryCompiler = TableHistoryQueryCompiler;
|
|
159
|
+
let TruncateTableQueryCompiler = class TruncateTableQueryCompiler {
|
|
160
|
+
};
|
|
161
|
+
TruncateTableQueryCompiler = __decorate([
|
|
162
|
+
(0, di_1.NewInstance)()
|
|
163
|
+
], TruncateTableQueryCompiler);
|
|
164
|
+
exports.TruncateTableQueryCompiler = TruncateTableQueryCompiler;
|
|
165
|
+
let TableCloneQueryCompiler = class TableCloneQueryCompiler {
|
|
166
|
+
};
|
|
167
|
+
TableCloneQueryCompiler = __decorate([
|
|
168
|
+
(0, di_1.NewInstance)()
|
|
169
|
+
], TableCloneQueryCompiler);
|
|
170
|
+
exports.TableCloneQueryCompiler = TableCloneQueryCompiler;
|
|
171
|
+
let EventQueryCompiler = class EventQueryCompiler {
|
|
172
|
+
};
|
|
173
|
+
EventQueryCompiler = __decorate([
|
|
174
|
+
(0, di_1.NewInstance)()
|
|
175
|
+
], EventQueryCompiler);
|
|
176
|
+
exports.EventQueryCompiler = EventQueryCompiler;
|
|
177
|
+
let DropEventQueryCompiler = class DropEventQueryCompiler {
|
|
178
|
+
};
|
|
179
|
+
DropEventQueryCompiler = __decorate([
|
|
180
|
+
(0, di_1.NewInstance)()
|
|
181
|
+
], DropEventQueryCompiler);
|
|
182
|
+
exports.DropEventQueryCompiler = DropEventQueryCompiler;
|
|
183
|
+
let AlterTableQueryCompiler = class AlterTableQueryCompiler {
|
|
184
|
+
};
|
|
185
|
+
AlterTableQueryCompiler = __decorate([
|
|
186
|
+
(0, di_1.NewInstance)()
|
|
187
|
+
], AlterTableQueryCompiler);
|
|
188
|
+
exports.AlterTableQueryCompiler = AlterTableQueryCompiler;
|
|
189
|
+
let TableExistsCompiler = class TableExistsCompiler {
|
|
190
|
+
};
|
|
191
|
+
TableExistsCompiler = __decorate([
|
|
192
|
+
(0, di_1.NewInstance)()
|
|
193
|
+
], TableExistsCompiler);
|
|
194
|
+
exports.TableExistsCompiler = TableExistsCompiler;
|
|
195
|
+
let DropTableCompiler = class DropTableCompiler {
|
|
196
|
+
};
|
|
197
|
+
DropTableCompiler = __decorate([
|
|
198
|
+
(0, di_1.NewInstance)()
|
|
199
|
+
], DropTableCompiler);
|
|
200
|
+
exports.DropTableCompiler = DropTableCompiler;
|
|
201
|
+
let ColumnQueryCompiler = class ColumnQueryCompiler {
|
|
202
|
+
};
|
|
203
|
+
ColumnQueryCompiler = __decorate([
|
|
204
|
+
(0, di_1.NewInstance)()
|
|
205
|
+
], ColumnQueryCompiler);
|
|
206
|
+
exports.ColumnQueryCompiler = ColumnQueryCompiler;
|
|
207
|
+
let AlterColumnQueryCompiler = class AlterColumnQueryCompiler {
|
|
208
|
+
};
|
|
209
|
+
AlterColumnQueryCompiler = __decorate([
|
|
210
|
+
(0, di_1.NewInstance)()
|
|
211
|
+
], AlterColumnQueryCompiler);
|
|
212
|
+
exports.AlterColumnQueryCompiler = AlterColumnQueryCompiler;
|
|
213
|
+
let OrderByQueryCompiler = class OrderByQueryCompiler {
|
|
214
|
+
};
|
|
215
|
+
OrderByQueryCompiler = __decorate([
|
|
216
|
+
(0, di_1.NewInstance)()
|
|
217
|
+
], OrderByQueryCompiler);
|
|
218
|
+
exports.OrderByQueryCompiler = OrderByQueryCompiler;
|
|
219
|
+
let GroupByQueryCompiler = class GroupByQueryCompiler {
|
|
220
|
+
};
|
|
221
|
+
GroupByQueryCompiler = __decorate([
|
|
222
|
+
(0, di_1.NewInstance)()
|
|
223
|
+
], GroupByQueryCompiler);
|
|
224
|
+
exports.GroupByQueryCompiler = GroupByQueryCompiler;
|
|
225
|
+
class QueryMiddleware {
|
|
226
|
+
}
|
|
227
|
+
exports.QueryMiddleware = QueryMiddleware;
|
|
228
|
+
class ModelMiddleware {
|
|
229
|
+
}
|
|
230
|
+
exports.ModelMiddleware = ModelMiddleware;
|
|
231
|
+
class ValueConverter {
|
|
232
|
+
/**
|
|
233
|
+
* Converts value to database type
|
|
234
|
+
*
|
|
235
|
+
* @param value - value to convert
|
|
236
|
+
*/
|
|
237
|
+
toDB(_value, _model, _options) {
|
|
238
|
+
throw new exceptions_1.MethodNotImplemented();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Converts value from database type eg. mysql timestamp to DateTime
|
|
242
|
+
*
|
|
243
|
+
* @param value - value to convert
|
|
244
|
+
*/
|
|
245
|
+
fromDB(_value, _rawData, _options) {
|
|
246
|
+
throw new exceptions_1.MethodNotImplemented();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
exports.ValueConverter = ValueConverter;
|
|
250
|
+
/**
|
|
251
|
+
* Converter for DATETIME field (eg. mysql datetime)
|
|
252
|
+
*/
|
|
253
|
+
class DatetimeValueConverter extends ValueConverter {
|
|
254
|
+
}
|
|
255
|
+
exports.DatetimeValueConverter = DatetimeValueConverter;
|
|
256
|
+
class JsonValueConverter extends ValueConverter {
|
|
257
|
+
/**
|
|
258
|
+
* Converts value to database type
|
|
259
|
+
*
|
|
260
|
+
* @param value - value to convert
|
|
261
|
+
*/
|
|
262
|
+
toDB(value) {
|
|
263
|
+
return JSON.stringify(value);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Converts value from database type eg. mysql timestamp to DateTime
|
|
267
|
+
*
|
|
268
|
+
* @param value - value to convert
|
|
269
|
+
*/
|
|
270
|
+
fromDB(value) {
|
|
271
|
+
return JSON.parse(value);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.JsonValueConverter = JsonValueConverter;
|
|
275
|
+
/**
|
|
276
|
+
* Converter for set field (eg. mysql SET)
|
|
277
|
+
*/
|
|
278
|
+
class SetValueConverter extends ValueConverter {
|
|
279
|
+
}
|
|
280
|
+
exports.SetValueConverter = SetValueConverter;
|
|
281
|
+
let TableAliasCompiler = class TableAliasCompiler {
|
|
282
|
+
};
|
|
283
|
+
TableAliasCompiler = __decorate([
|
|
284
|
+
(0, di_1.Singleton)()
|
|
285
|
+
], TableAliasCompiler);
|
|
286
|
+
exports.TableAliasCompiler = TableAliasCompiler;
|
|
287
|
+
/**
|
|
288
|
+
* base class for select & where builder for defining scopes
|
|
289
|
+
*/
|
|
290
|
+
class QueryScope {
|
|
291
|
+
}
|
|
292
|
+
exports.QueryScope = QueryScope;
|
|
293
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../orm/src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAQA,oCAA8E;AAE9E,oDAA2D;AAG3D,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,6DAAW,CAAA;AACb,CAAC,EAPW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAOvB;AAED,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,6DAAG,CAAA;IACH,mEAAM,CAAA;IACN,mEAAM,CAAA;AACR,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAED,MAAsB,mBAAmB;CA2BxC;AA3BD,kDA2BC;AAED,IAAY,eAiBX;AAjBD,WAAY,eAAe;IACzB;;OAEG;IACH,yEAAc,CAAA;IAEd;;OAEG;IACH,yEAAc,CAAA;IAEd;;OAEG;IACH,2EAAe,CAAA;IAEf,qDAAI,CAAA;AACN,CAAC,EAjBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAiB1B;AAED;;GAEG;AACH,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,yCAAoB,CAAA;IACpB,0CAAqB,CAAA;IACrB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;AAC5B,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAED;;GAEG;AACH,IAAY,wBAUX;AAVD,WAAY,wBAAwB;IAClC;;OAEG;IACH,uEAAI,CAAA;IAEJ;;OAEG;IACH,uFAAY,CAAA;AACd,CAAC,EAVW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAUnC;AA0MD,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6CAAG,CAAA;IACH,+CAAI,CAAA;IACJ,2DAAU,CAAA;AACZ,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AA0MD,IAAsB,YAAY,GAAlC,MAAsB,YAAY;CAajC,CAAA;AAbqB,YAAY;IADjC,IAAA,gBAAW,GAAE;GACQ,YAAY,CAajC;AAbqB,oCAAY;AAsQlC;;;GAGG;AAEH,IAAsB,sBAAsB,GAA5C,MAAsB,sBAAsB;CAE3C,CAAA;AAFqB,sBAAsB;IAD3C,IAAA,gBAAW,GAAE;GACQ,sBAAsB,CAE3C;AAFqB,wDAAsB;AAI5C,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,iBAAiB,GAAvC,MAAsB,iBAAiB;CAEtC,CAAA;AAFqB,iBAAiB;IADtC,IAAA,gBAAW,GAAE;GACQ,iBAAiB,CAEtC;AAFqB,8CAAiB;AAKvC,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,uBAAuB,GAA7C,MAAsB,uBAAuB;CAE5C,CAAA;AAFqB,uBAAuB;IAD5C,IAAA,gBAAW,GAAE;GACQ,uBAAuB,CAE5C;AAFqB,0DAAuB;AAK7C,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,wBAAwB,GAA9C,MAAsB,wBAAwB;CAE7C,CAAA;AAFqB,wBAAwB;IAD7C,IAAA,gBAAW,GAAE;GACQ,wBAAwB,CAE7C;AAFqB,4DAAwB;AAK9C,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,yBAAyB,GAA/C,MAAsB,yBAAyB;CAE9C,CAAA;AAFqB,yBAAyB;IAD9C,IAAA,gBAAW,GAAE;GACQ,yBAAyB,CAE9C;AAFqB,8DAAyB;AAK/C,IAAsB,0BAA0B,GAAhD,MAAsB,0BAA0B;CAE/C,CAAA;AAFqB,0BAA0B;IAD/C,IAAA,gBAAW,GAAE;GACQ,0BAA0B,CAE/C;AAFqB,gEAA0B;AAKhD,IAAsB,uBAAuB,GAA7C,MAAsB,uBAAuB;CAE5C,CAAA;AAFqB,uBAAuB;IAD5C,IAAA,gBAAW,GAAE;GACQ,uBAAuB,CAE5C;AAFqB,0DAAuB;AAK7C,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,sBAAsB,GAA5C,MAAsB,sBAAsB;CAE3C,CAAA;AAFqB,sBAAsB;IAD3C,IAAA,gBAAW,GAAE;GACQ,sBAAsB,CAE3C;AAFqB,wDAAsB;AAK5C,IAAsB,uBAAuB,GAA7C,MAAsB,uBAAuB;CAE5C,CAAA;AAFqB,uBAAuB;IAD5C,IAAA,gBAAW,GAAE;GACQ,uBAAuB,CAE5C;AAFqB,0DAAuB;AAK7C,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,iBAAiB,GAAvC,MAAsB,iBAAiB;CAEtC,CAAA;AAFqB,iBAAiB;IADtC,IAAA,gBAAW,GAAE;GACQ,iBAAiB,CAEtC;AAFqB,8CAAiB;AAKvC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,wBAAwB,GAA9C,MAAsB,wBAAwB;CAE7C,CAAA;AAFqB,wBAAwB;IAD7C,IAAA,gBAAW,GAAE;GACQ,wBAAwB,CAE7C;AAFqB,4DAAwB;AAK9C,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,IAAA,gBAAW,GAAE;GACQ,oBAAoB,CAEzC;AAFqB,oDAAoB;AAK1C,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,IAAA,gBAAW,GAAE;GACQ,oBAAoB,CAEzC;AAFqB,oDAAoB;AAsC1C,MAAsB,eAAe;CAEpC;AAFD,0CAEC;AAED,MAAsB,eAAe;CAKpC;AALD,0CAKC;AAED,MAAa,cAAc;IACzB;;;;OAIG;IACI,IAAI,CAAC,MAAW,EAAE,MAAsB,EAAE,QAAa;QAC5D,MAAM,IAAI,iCAAoB,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAW,EAAE,QAAa,EAAE,QAAa;QACrD,MAAM,IAAI,iCAAoB,EAAE,CAAC;IACnC,CAAC;CACF;AAlBD,wCAkBC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,cAAc;CAAG;AAA7D,wDAA6D;AAE7D,MAAa,kBAAmB,SAAQ,cAAc;IACpD;;;;OAIG;IACI,IAAI,CAAC,KAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF;AAlBD,gDAkBC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,cAAc;CAAG;AAAxD,8CAAwD;AAGxD,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,cAAS,GAAE;GACU,kBAAkB,CAEvC;AAFqB,gDAAkB;AAQxC;;GAEG;AACH,MAAsB,UAAU;CAAG;AAAnC,gCAAmC"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { PickRelations } from './types';
|
|
2
|
+
import { Relation } from './relations';
|
|
3
|
+
import { IModelDescriptor, InsertBehaviour, IUpdateResult, IWhereBuilder, QueryScope, IHistoricalModel } from './interfaces';
|
|
4
|
+
import { WhereFunction } from './types';
|
|
5
|
+
import { RawQuery, UpdateQueryBuilder, TruncateTableQueryBuilder, QueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder } from './builders';
|
|
6
|
+
import { Op } from './enums';
|
|
7
|
+
import { Class, IContainer } from '@spinajs/di';
|
|
8
|
+
import { Wrap } from './statements';
|
|
9
|
+
import { DateTime } from 'luxon';
|
|
10
|
+
import { OrmDriver } from './driver';
|
|
11
|
+
export declare function extractModelDescriptor(targetOrForward: any): IModelDescriptor;
|
|
12
|
+
export interface IModelBase {
|
|
13
|
+
ModelDescriptor: IModelDescriptor;
|
|
14
|
+
Container: IContainer;
|
|
15
|
+
PrimaryKeyName: string;
|
|
16
|
+
PrimaryKeyValue: any;
|
|
17
|
+
getFlattenRelationModels(): IModelBase[];
|
|
18
|
+
/**
|
|
19
|
+
* Fills model with data. It only fills properties that exists in database
|
|
20
|
+
*
|
|
21
|
+
* @param data - data to fill
|
|
22
|
+
*/
|
|
23
|
+
hydrate(data: Partial<this>): void;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* Attachess model to proper relation an sets foreign key
|
|
27
|
+
*
|
|
28
|
+
* @param data - model to attach
|
|
29
|
+
*/
|
|
30
|
+
attach(data: ModelBase): void;
|
|
31
|
+
/**
|
|
32
|
+
* Extracts all data from model. It takes only properties that exists in DB
|
|
33
|
+
*/
|
|
34
|
+
dehydrate(omit?: string[]): Partial<this>;
|
|
35
|
+
/**
|
|
36
|
+
* deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
|
|
37
|
+
*/
|
|
38
|
+
destroy(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* If model can be in achived state - sets archived at date and saves it to db
|
|
41
|
+
*/
|
|
42
|
+
archive(): Promise<void>;
|
|
43
|
+
update(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Save all changes to db. It creates new entry id db or updates existing one if
|
|
46
|
+
* primary key exists
|
|
47
|
+
*/
|
|
48
|
+
insert(insertBehaviour: InsertBehaviour): Promise<IUpdateResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Gets model data from database and returns as fresh instance.
|
|
51
|
+
*
|
|
52
|
+
* If primary key is not fetched, tries to load by columns with unique constraint.
|
|
53
|
+
* If there is no unique columns or primary key, throws error
|
|
54
|
+
*/
|
|
55
|
+
fresh(): Promise<this>;
|
|
56
|
+
/**
|
|
57
|
+
* Refresh model from database.
|
|
58
|
+
*
|
|
59
|
+
* If no primary key is set, tries to fetch data base on columns
|
|
60
|
+
* with unique constraints. If none exists, throws exception
|
|
61
|
+
*/
|
|
62
|
+
refresh(): Promise<void>;
|
|
63
|
+
toJSON(): any;
|
|
64
|
+
driver(): OrmDriver;
|
|
65
|
+
}
|
|
66
|
+
export declare class ModelBase<M = unknown> implements IModelBase {
|
|
67
|
+
private _container;
|
|
68
|
+
/**
|
|
69
|
+
* List of hidden properties from JSON / dehydrations
|
|
70
|
+
* eg. password field of user
|
|
71
|
+
*/
|
|
72
|
+
protected _hidden: string[];
|
|
73
|
+
static readonly _queryScopes: QueryScope;
|
|
74
|
+
/**
|
|
75
|
+
* Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
|
|
76
|
+
* db table attached, column information and others.
|
|
77
|
+
*/
|
|
78
|
+
get ModelDescriptor(): IModelDescriptor;
|
|
79
|
+
/**
|
|
80
|
+
* Gets di container associated with this model ( via connection object eg. different drivers have their own implementation of things)
|
|
81
|
+
*/
|
|
82
|
+
get Container(): IContainer;
|
|
83
|
+
get PrimaryKeyName(): string;
|
|
84
|
+
get PrimaryKeyValue(): any;
|
|
85
|
+
set PrimaryKeyValue(newVal: any);
|
|
86
|
+
driver(): OrmDriver;
|
|
87
|
+
/**
|
|
88
|
+
* Recursivelly takes all relation data and returns as single array
|
|
89
|
+
*/
|
|
90
|
+
getFlattenRelationModels(recursive?: boolean): ModelBase[];
|
|
91
|
+
/**
|
|
92
|
+
* Clears all data in table
|
|
93
|
+
*/
|
|
94
|
+
static truncate(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get all data from db
|
|
97
|
+
*/
|
|
98
|
+
static all<T extends typeof ModelBase>(this: T, _page?: number, _perPage?: number): SelectQueryBuilder<Array<InstanceType<T>>>;
|
|
99
|
+
/**
|
|
100
|
+
* Inserts data to DB.
|
|
101
|
+
*
|
|
102
|
+
* @param _data - data to insert
|
|
103
|
+
*/
|
|
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;
|
|
105
|
+
/**
|
|
106
|
+
* Search entities in db
|
|
107
|
+
*
|
|
108
|
+
* @param column - column to search or function
|
|
109
|
+
* @param operator - boolean operator
|
|
110
|
+
* @param value - value to compare
|
|
111
|
+
*/
|
|
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'];
|
|
119
|
+
/**
|
|
120
|
+
* Updates single or multiple records at once with provided value based on condition
|
|
121
|
+
*
|
|
122
|
+
* @param _data - data to set
|
|
123
|
+
*/
|
|
124
|
+
static update<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): UpdateQueryBuilder<InstanceType<T>> & T['_queryScopes'];
|
|
125
|
+
/**
|
|
126
|
+
* Tries to find all models with given primary keys
|
|
127
|
+
*/
|
|
128
|
+
static find<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
|
|
129
|
+
/**
|
|
130
|
+
* Tries to get first result from db
|
|
131
|
+
*
|
|
132
|
+
* Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
|
|
133
|
+
*/
|
|
134
|
+
static first<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<number>;
|
|
135
|
+
/**
|
|
136
|
+
* Tries to get first result from db
|
|
137
|
+
*
|
|
138
|
+
* Orders by Primary key, if pk not exists then by unique constraints and lastly by CreateAt if no unique columns exists.
|
|
139
|
+
*/
|
|
140
|
+
static last<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
|
|
141
|
+
/**
|
|
142
|
+
* Tries to get newest result from db. It throws if model dont have CreatedAt decorated property
|
|
143
|
+
*/
|
|
144
|
+
static newest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
|
|
145
|
+
/**
|
|
146
|
+
* Tries to get oldest result from db. It throws if model dont have CreatedAt decorated property
|
|
147
|
+
*/
|
|
148
|
+
static oldest<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
|
|
149
|
+
/**
|
|
150
|
+
* Returns total count of entries in db for this model
|
|
151
|
+
*/
|
|
152
|
+
static count<T extends typeof ModelBase>(this: T, callback?: (builder: IWhereBuilder<T> & T['_queryScopes']) => void): Promise<InstanceType<T>>;
|
|
153
|
+
/**
|
|
154
|
+
* Tries to find all models in db. If not all exists, throws exception
|
|
155
|
+
*/
|
|
156
|
+
static findOrFail<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
|
|
157
|
+
/**
|
|
158
|
+
* gets model by specified pk, if not exists, returns null
|
|
159
|
+
*
|
|
160
|
+
*/
|
|
161
|
+
static get<T extends typeof ModelBase>(this: T, _pk: any): Promise<InstanceType<T>>;
|
|
162
|
+
/**
|
|
163
|
+
* Finds model by specified pk. If model not exists in db throws exception
|
|
164
|
+
*
|
|
165
|
+
*/
|
|
166
|
+
static getOrFail<T extends typeof ModelBase>(this: T, _pk: any): Promise<InstanceType<T>>;
|
|
167
|
+
/**
|
|
168
|
+
*
|
|
169
|
+
* Checks if model with pk key or unique fields exists and if not creates one AND NOT save in db
|
|
170
|
+
* NOTE: it checks for unique fields constraint
|
|
171
|
+
*/
|
|
172
|
+
static getOrNew<T extends typeof ModelBase>(this: T, _pk?: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
173
|
+
/**
|
|
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
|
|
176
|
+
*/
|
|
177
|
+
static query<T extends typeof ModelBase>(this: T): SelectQueryBuilder<InstanceType<T>> & T['_queryScopes'];
|
|
178
|
+
/**
|
|
179
|
+
*
|
|
180
|
+
* Checks if model with pk key / unique fields exists and if not creates one and saves to db
|
|
181
|
+
* NOTE: it checks for unique fields too.
|
|
182
|
+
*
|
|
183
|
+
* @param data - model width data to check
|
|
184
|
+
*/
|
|
185
|
+
static getOrCreate<T extends typeof ModelBase>(this: T, _pk: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
186
|
+
/**
|
|
187
|
+
* Creates new model & saves is to db
|
|
188
|
+
*
|
|
189
|
+
* @param data - initial model data
|
|
190
|
+
*/
|
|
191
|
+
static create<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
192
|
+
/**
|
|
193
|
+
* Deletes model from db
|
|
194
|
+
*
|
|
195
|
+
* @param pk - primary key
|
|
196
|
+
*/
|
|
197
|
+
static destroy<T extends typeof ModelBase>(this: T, _pk?: any | any[]): DeleteQueryBuilder<InstanceType<T>> & T['_queryScopes'];
|
|
198
|
+
constructor(data?: Partial<M>);
|
|
199
|
+
/**
|
|
200
|
+
* Fills model with data. It only fills properties that exists in database
|
|
201
|
+
*
|
|
202
|
+
* @param data - data to fill
|
|
203
|
+
*/
|
|
204
|
+
hydrate(data: Partial<this>): void;
|
|
205
|
+
/**
|
|
206
|
+
*
|
|
207
|
+
* Attachess model to proper relation an sets foreign key
|
|
208
|
+
*
|
|
209
|
+
* @param data - model to attach
|
|
210
|
+
*/
|
|
211
|
+
attach(data: ModelBase): void;
|
|
212
|
+
/**
|
|
213
|
+
* Extracts all data from model. It takes only properties that exists in DB
|
|
214
|
+
*/
|
|
215
|
+
dehydrate(omit?: string[]): Partial<this>;
|
|
216
|
+
toSql(): Partial<this>;
|
|
217
|
+
/**
|
|
218
|
+
* deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
|
|
219
|
+
*/
|
|
220
|
+
destroy(): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* If model can be in achived state - sets archived at date and saves it to db
|
|
223
|
+
*/
|
|
224
|
+
archive(): Promise<void>;
|
|
225
|
+
update(): Promise<void>;
|
|
226
|
+
/**
|
|
227
|
+
* Save all changes to db. It creates new entry id db or updates existing one if
|
|
228
|
+
* primary key exists
|
|
229
|
+
*/
|
|
230
|
+
insert(insertBehaviour?: InsertBehaviour): Promise<IUpdateResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Gets model data from database and returns as fresh instance.
|
|
233
|
+
*
|
|
234
|
+
* If primary key is not fetched, tries to load by columns with unique constraint.
|
|
235
|
+
* If there is no unique columns or primary key, throws error
|
|
236
|
+
*/
|
|
237
|
+
fresh(): Promise<this>;
|
|
238
|
+
/**
|
|
239
|
+
* Refresh model from database.
|
|
240
|
+
*
|
|
241
|
+
* If no primary key is set, tries to fetch data base on columns
|
|
242
|
+
* with unique constraints. If none exists, throws exception
|
|
243
|
+
*/
|
|
244
|
+
refresh(): Promise<void>;
|
|
245
|
+
toJSON(): Partial<this>;
|
|
246
|
+
/**
|
|
247
|
+
* sets default values for model. values are taken from DB default column prop
|
|
248
|
+
*/
|
|
249
|
+
protected setDefaults(): void;
|
|
250
|
+
protected createSelectQuery(): {
|
|
251
|
+
query: SelectQueryBuilder<unknown>;
|
|
252
|
+
description: IModelDescriptor;
|
|
253
|
+
model: Class<any>;
|
|
254
|
+
};
|
|
255
|
+
protected createUpdateQuery(): {
|
|
256
|
+
query: UpdateQueryBuilder<unknown>;
|
|
257
|
+
description: IModelDescriptor;
|
|
258
|
+
model: Class<any>;
|
|
259
|
+
};
|
|
260
|
+
protected createInsertQuery(): {
|
|
261
|
+
query: InsertQueryBuilder;
|
|
262
|
+
description: IModelDescriptor;
|
|
263
|
+
model: Class<any>;
|
|
264
|
+
};
|
|
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
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Helper function to create query based on model
|
|
274
|
+
*
|
|
275
|
+
* @param model - source model for query
|
|
276
|
+
* @param query - query class
|
|
277
|
+
* @param injectModel - should inject model information into query, if not, query will return raw data
|
|
278
|
+
*
|
|
279
|
+
* @returns
|
|
280
|
+
*/
|
|
281
|
+
export declare function createQuery<T extends QueryBuilder>(model: Class<any>, query: Class<T>, injectModel?: boolean): {
|
|
282
|
+
query: T extends import("@spinajs/di").AsyncService ? Promise<T> : T;
|
|
283
|
+
description: IModelDescriptor;
|
|
284
|
+
model: Class<any>;
|
|
285
|
+
};
|
|
286
|
+
export declare const MODEL_STATIC_MIXINS: {
|
|
287
|
+
truncate(): TruncateTableQueryBuilder;
|
|
288
|
+
driver(): OrmDriver;
|
|
289
|
+
query(): SelectQueryBuilder;
|
|
290
|
+
where(column: string | boolean | WhereFunction<any> | RawQuery | Wrap | {}, operator?: Op | any, value?: any): SelectQueryBuilder;
|
|
291
|
+
update<T extends typeof ModelBase>(data: Partial<InstanceType<T>>): UpdateQueryBuilder<unknown>;
|
|
292
|
+
all(page?: number, perPage?: number): SelectQueryBuilder<unknown>;
|
|
293
|
+
/**
|
|
294
|
+
* Try to insert new value
|
|
295
|
+
*/
|
|
296
|
+
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>;
|
|
297
|
+
find<T_2 extends typeof ModelBase>(this: T_2, pks: any[]): Promise<InstanceType<T_2>[]>;
|
|
298
|
+
findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
|
|
299
|
+
get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
|
|
300
|
+
getOrFail<T_5 extends typeof ModelBase>(this: T_5, pk: any): Promise<InstanceType<T_5>>;
|
|
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>;
|
|
310
|
+
};
|