@spinajs/orm 1.2.48 → 1.2.59

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.
Files changed (63) hide show
  1. package/lib/builders.d.ts +8 -0
  2. package/lib/builders.js +25 -1
  3. package/lib/builders.js.map +1 -1
  4. package/lib/interfaces.d.ts +3 -0
  5. package/lib/interfaces.js +7 -1
  6. package/lib/interfaces.js.map +1 -1
  7. package/lib/orm.js +2 -3
  8. package/lib/orm.js.map +1 -1
  9. package/package.json +5 -5
  10. package/lib/helpers.d.ts +0 -1
  11. package/lib/helpers.js +0 -14
  12. package/lib/helpers.js.map +0 -1
  13. package/lib/log-common/src/index.d.ts +0 -180
  14. package/lib/log-common/src/index.js +0 -49
  15. package/lib/log-common/src/index.js.map +0 -1
  16. package/lib/orm/src/builders.d.ts +0 -429
  17. package/lib/orm/src/builders.js +0 -1082
  18. package/lib/orm/src/builders.js.map +0 -1
  19. package/lib/orm/src/cli.d.ts +0 -1
  20. package/lib/orm/src/cli.js +0 -2
  21. package/lib/orm/src/cli.js.map +0 -1
  22. package/lib/orm/src/converters.d.ts +0 -9
  23. package/lib/orm/src/converters.js +0 -22
  24. package/lib/orm/src/converters.js.map +0 -1
  25. package/lib/orm/src/decorators.d.ts +0 -122
  26. package/lib/orm/src/decorators.js +0 -380
  27. package/lib/orm/src/decorators.js.map +0 -1
  28. package/lib/orm/src/driver.d.ts +0 -77
  29. package/lib/orm/src/driver.js +0 -84
  30. package/lib/orm/src/driver.js.map +0 -1
  31. package/lib/orm/src/enums.d.ts +0 -111
  32. package/lib/orm/src/enums.js +0 -122
  33. package/lib/orm/src/enums.js.map +0 -1
  34. package/lib/orm/src/exceptions.d.ts +0 -6
  35. package/lib/orm/src/exceptions.js +0 -11
  36. package/lib/orm/src/exceptions.js.map +0 -1
  37. package/lib/orm/src/hydrators.d.ts +0 -16
  38. package/lib/orm/src/hydrators.js +0 -70
  39. package/lib/orm/src/hydrators.js.map +0 -1
  40. package/lib/orm/src/index.d.ts +0 -12
  41. package/lib/orm/src/index.js +0 -25
  42. package/lib/orm/src/index.js.map +0 -1
  43. package/lib/orm/src/interfaces.d.ts +0 -615
  44. package/lib/orm/src/interfaces.js +0 -186
  45. package/lib/orm/src/interfaces.js.map +0 -1
  46. package/lib/orm/src/model.d.ts +0 -135
  47. package/lib/orm/src/model.js +0 -449
  48. package/lib/orm/src/model.js.map +0 -1
  49. package/lib/orm/src/orm.d.ts +0 -59
  50. package/lib/orm/src/orm.js +0 -278
  51. package/lib/orm/src/orm.js.map +0 -1
  52. package/lib/orm/src/relations.d.ts +0 -96
  53. package/lib/orm/src/relations.js +0 -503
  54. package/lib/orm/src/relations.js.map +0 -1
  55. package/lib/orm/src/statements.d.ts +0 -132
  56. package/lib/orm/src/statements.js +0 -257
  57. package/lib/orm/src/statements.js.map +0 -1
  58. package/lib/orm/src/types.d.ts +0 -2
  59. package/lib/orm/src/types.js +0 -3
  60. package/lib/orm/src/types.js.map +0 -1
  61. package/lib/orm/src/wrappers.d.ts +0 -5
  62. package/lib/orm/src/wrappers.js +0 -13
  63. package/lib/orm/src/wrappers.js.map +0 -1
@@ -1,449 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODEL_STATIC_MIXINS = exports.ModelBase = exports.extractModelDescriptor = void 0;
4
- /* eslint-disable prettier/prettier */
5
- const relations_1 = require("./relations");
6
- const decorators_1 = require("./decorators");
7
- const interfaces_1 = require("./interfaces");
8
- const builders_1 = require("./builders");
9
- const di_1 = require("@spinajs/di");
10
- const orm_1 = require("./orm");
11
- const hydrators_1 = require("./hydrators");
12
- const _ = require("lodash");
13
- const uuid_1 = require("uuid");
14
- const exceptions_1 = require("./exceptions");
15
- function extractModelDescriptor(targetOrForward) {
16
- const target = !(0, di_1.isConstructor)(targetOrForward) && targetOrForward ? targetOrForward() : targetOrForward;
17
- if (!target) {
18
- return null;
19
- }
20
- let descriptor = null;
21
- _reduce(target);
22
- return descriptor;
23
- function _reduce(t) {
24
- if (!t) {
25
- return;
26
- }
27
- if (t[decorators_1.MODEL_DESCTRIPTION_SYMBOL]) {
28
- descriptor = descriptor !== null && descriptor !== void 0 ? descriptor : {};
29
- _.mergeWith(descriptor, t[decorators_1.MODEL_DESCTRIPTION_SYMBOL], (a, b) => {
30
- if (!a) {
31
- return b;
32
- }
33
- if (Array.isArray(a)) {
34
- return a.concat(b);
35
- }
36
- return a;
37
- });
38
- }
39
- _reduce(t.prototype);
40
- _reduce(t.__proto__);
41
- }
42
- }
43
- exports.extractModelDescriptor = extractModelDescriptor;
44
- class ModelBase {
45
- /**
46
- * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
47
- * db table attached, column information and others.
48
- */
49
- get ModelDescriptor() {
50
- return extractModelDescriptor(this.constructor);
51
- }
52
- get PrimaryKeyName() {
53
- return this.ModelDescriptor.PrimaryKey;
54
- }
55
- get PrimaryKeyValue() {
56
- return this[this.PrimaryKeyName];
57
- }
58
- set PrimaryKeyValue(newVal) {
59
- this[this.PrimaryKeyName] = newVal;
60
- }
61
- /**
62
- * Get all data from db
63
- */
64
- static all(_page, _perPage) {
65
- throw Error('Not implemented');
66
- }
67
- /**
68
- * Inserts data to DB.
69
- *
70
- * @param _data - data to insert
71
- */
72
- static insert(_data) {
73
- throw Error('Not implemented');
74
- }
75
- /**
76
- * Search entities in db
77
- *
78
- * @param column - column to search or function
79
- * @param operator - boolean operator
80
- * @param value - value to compare
81
- */
82
- static where(_column, _operator, _value) {
83
- throw Error('Not implemented');
84
- }
85
- /**
86
- * Updates single or multiple records at once with provided value based on condition
87
- *
88
- * @param _data - data to set
89
- */
90
- static update(_data) {
91
- throw Error('Not implemented');
92
- }
93
- /**
94
- * Tries to find all models with given primary keys
95
- */
96
- static find(_pks) {
97
- throw Error('Not implemented');
98
- }
99
- /**
100
- * Tries to find all models in db. If not all exists, throws exception
101
- */
102
- static findOrFail(_pks) {
103
- throw Error('Not implemented');
104
- }
105
- /**
106
- * gets model by specified pk, if not exists, returns null
107
- *
108
- */
109
- static get(_pk) {
110
- throw Error('Not implemented');
111
- }
112
- /**
113
- * Finds model by specified pk. If model not exists in db throws exception
114
- *
115
- */
116
- static getOrFail(_pk) {
117
- throw Error('Not implemented');
118
- }
119
- /**
120
- *
121
- * Checks if model with pk key or unique fields exists and if not creates one AND NOT save in db
122
- * NOTE: it checks for unique fields constraint
123
- */
124
- static getOrNew(_pk, _data) {
125
- throw Error('Not implemented');
126
- }
127
- /**
128
- * Creates raw query on this model. used for quering db for partial data or to perform some kind of operations
129
- * that dont need full ORM model to involve
130
- */
131
- static query() {
132
- throw Error('Not implemented');
133
- }
134
- /**
135
- *
136
- * Checks if model with pk key / unique fields exists and if not creates one and saves to db
137
- * NOTE: it checks for unique fields too.
138
- *
139
- * @param data - model width data to check
140
- */
141
- static getOrCreate(_pk, _data) {
142
- throw Error('Not implemented');
143
- }
144
- /**
145
- * Creates new model & saves is to db
146
- *
147
- * @param data - initial model data
148
- */
149
- static create(_data) {
150
- throw Error('Not implemented');
151
- }
152
- /**
153
- * Deletes model from db
154
- *
155
- * @param pk - primary key
156
- */
157
- static destroy(_pk) {
158
- throw Error('Not implemented');
159
- }
160
- constructor(data) {
161
- this.setDefaults();
162
- if (data) {
163
- Object.assign(this, data);
164
- }
165
- }
166
- /**
167
- * Fills model with data. It only fills properties that exists in database
168
- *
169
- * @param data - data to fill
170
- */
171
- hydrate(data) {
172
- di_1.DI.resolve(Array.ofType(hydrators_1.ModelHydrator)).forEach((h) => h.hydrate(this, data));
173
- }
174
- /**
175
- * Extracts all data from model. It takes only properties that exists in DB
176
- */
177
- dehydrate() {
178
- var _a;
179
- const obj = {};
180
- (_a = this.ModelDescriptor.Columns) === null || _a === void 0 ? void 0 : _a.forEach((c) => {
181
- const val = this[c.Name];
182
- if (!c.Nullable && (val === null || val === undefined || val === '')) {
183
- throw new exceptions_1.OrmException(`Field ${c.Name} cannot be null`);
184
- }
185
- obj[c.Name] = c.Converter ? c.Converter.toDB(val) : val;
186
- });
187
- for (const [, val] of this.ModelDescriptor.Relations) {
188
- if (val.Type === interfaces_1.RelationType.One) {
189
- if (this[val.Name]) {
190
- obj[val.ForeignKey] = this[val.Name].PrimaryKeyValue;
191
- }
192
- }
193
- }
194
- return obj;
195
- }
196
- /**
197
- * deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
198
- */
199
- async destroy() {
200
- if (!this.PrimaryKeyValue) {
201
- return;
202
- }
203
- await this.constructor.destroy(this.PrimaryKeyValue);
204
- }
205
- async update() {
206
- const { query } = _createQuery(this.constructor, builders_1.UpdateQueryBuilder);
207
- if (this.ModelDescriptor.Timestamps.UpdatedAt) {
208
- this[this.ModelDescriptor.Timestamps.UpdatedAt] = new Date();
209
- }
210
- await query.update(this.dehydrate()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
211
- }
212
- /**
213
- * Save all changes to db. It creates new entry id db or updates existing one if
214
- * primary key exists
215
- */
216
- async insert(insertBehaviour = interfaces_1.InsertBehaviour.None) {
217
- const self = this;
218
- const { query, description } = _createQuery(this.constructor, builders_1.InsertQueryBuilder);
219
- switch (insertBehaviour) {
220
- case interfaces_1.InsertBehaviour.OnDuplicateIgnore:
221
- query.ignore();
222
- break;
223
- case interfaces_1.InsertBehaviour.OnDuplicateUpdate:
224
- query.onDuplicate().update(description.Columns.filter((c) => !c.PrimaryKey).map((c) => c.Name));
225
- break;
226
- }
227
- const id = await query.values(this.dehydrate());
228
- // ignore fired, we dont have insert ID
229
- if (insertBehaviour !== interfaces_1.InsertBehaviour.None && id === 0 && !this.PrimaryKeyValue) {
230
- const { query, description } = _createQuery(this.constructor, builders_1.SelectQueryBuilder, false);
231
- const idRes = await query
232
- .columns([this.PrimaryKeyName])
233
- .where(function () {
234
- description.Columns.filter((c) => c.Unique).forEach((c) => {
235
- this.where(c, self[c.Name]);
236
- });
237
- })
238
- .first();
239
- this.PrimaryKeyValue = idRes[this.PrimaryKeyName];
240
- }
241
- else {
242
- this.PrimaryKeyValue = id;
243
- }
244
- }
245
- /**
246
- * Gets model data from database and returns as fresh instance.
247
- */
248
- async fresh() {
249
- return this.constructor.get(this.PrimaryKeyValue);
250
- }
251
- /**
252
- * sets default values for model. values are taken from DB default column prop
253
- */
254
- setDefaults() {
255
- var _a;
256
- (_a = this.ModelDescriptor.Columns) === null || _a === void 0 ? void 0 : _a.forEach((c) => {
257
- if (c.Uuid) {
258
- this[c.Name] = (0, uuid_1.v4)();
259
- }
260
- else {
261
- this[c.Name] = c.DefaultValue;
262
- }
263
- });
264
- if (this.ModelDescriptor.Timestamps.CreatedAt) {
265
- this[this.ModelDescriptor.Timestamps.CreatedAt] = new Date();
266
- }
267
- for (const [, rel] of this.ModelDescriptor.Relations) {
268
- if (rel.Type === interfaces_1.RelationType.Many) {
269
- this[rel.Name] = new relations_1.OneToManyRelationList(this, rel.TargetModel, rel, []);
270
- }
271
- else if (rel.Type === interfaces_1.RelationType.ManyToMany) {
272
- this[rel.Name] = new relations_1.ManyToManyRelationList(this, rel.TargetModel, rel, []);
273
- }
274
- else {
275
- this[rel.Name] = null;
276
- }
277
- }
278
- }
279
- }
280
- exports.ModelBase = ModelBase;
281
- function _descriptor(model) {
282
- return model[decorators_1.MODEL_DESCTRIPTION_SYMBOL];
283
- }
284
- function _createQuery(model, query, injectModel = true) {
285
- const dsc = _descriptor(model);
286
- if (!dsc) {
287
- throw new Error(`model ${model.name} does not have model descriptor. Use @model decorator on class`);
288
- }
289
- const orm = di_1.DI.get(orm_1.Orm);
290
- const driver = orm.Connections.get(dsc.Connection);
291
- if (!driver) {
292
- throw new Error(`model ${model.name} have invalid connection ${dsc.Connection}, please check your db config file or model connection name`);
293
- }
294
- const cnt = driver.Container;
295
- const qr = cnt.resolve(query, [driver, injectModel ? model : null]);
296
- qr.middleware(new relations_1.DiscriminationMapMiddleware(dsc));
297
- qr.setTable(dsc.TableName);
298
- if (driver.Options.Database) {
299
- qr.schema(driver.Options.Database);
300
- }
301
- return {
302
- query: qr,
303
- description: dsc,
304
- model,
305
- };
306
- }
307
- exports.MODEL_STATIC_MIXINS = {
308
- query() {
309
- const { query } = _createQuery(this, builders_1.SelectQueryBuilder, false);
310
- return query;
311
- },
312
- where(column, operator, value) {
313
- const { query } = _createQuery(this, builders_1.SelectQueryBuilder);
314
- query.select('*');
315
- return query.where(column, operator, value);
316
- },
317
- update(data) {
318
- const { query } = _createQuery(this, builders_1.UpdateQueryBuilder);
319
- return query.update(data);
320
- },
321
- all(page, perPage) {
322
- const { query } = _createQuery(this, builders_1.SelectQueryBuilder);
323
- query.select('*');
324
- if (page >= 0 && perPage > 0) {
325
- query.take(perPage).skip(page * perPage);
326
- }
327
- return query;
328
- },
329
- /**
330
- * Try to insert new value
331
- */
332
- insert(data) {
333
- const { query } = _createQuery(this, builders_1.InsertQueryBuilder);
334
- if (Array.isArray(data)) {
335
- query.values(data.map((d) => {
336
- if (d instanceof ModelBase) {
337
- return d.dehydrate();
338
- }
339
- return d;
340
- }));
341
- }
342
- else {
343
- if (data instanceof ModelBase) {
344
- query.values(data.dehydrate());
345
- }
346
- else {
347
- query.values(data);
348
- }
349
- }
350
- return query;
351
- },
352
- async find(pks) {
353
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
354
- const pkey = description.PrimaryKey;
355
- query.select('*');
356
- query.whereIn(pkey, pks);
357
- return await query;
358
- },
359
- async findOrFail(pks) {
360
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
361
- const pkey = description.PrimaryKey;
362
- const middleware = {
363
- afterData(data) {
364
- if (data.length !== pks.length) {
365
- throw new Error(`could not find all of pkeys in model ${this.model.name}`);
366
- }
367
- return data;
368
- },
369
- modelCreation(_) {
370
- return null;
371
- },
372
- // tslint:disable-next-line: no-empty
373
- async afterHydration(_data) { },
374
- };
375
- query.select('*');
376
- query.whereIn(pkey, pks);
377
- query.middleware(middleware);
378
- return await query;
379
- },
380
- async get(pk) {
381
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
382
- const pkey = description.PrimaryKey;
383
- query.select('*');
384
- query.where(pkey, pk);
385
- return await query.first();
386
- },
387
- async getOrFail(pk) {
388
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
389
- const pkey = description.PrimaryKey;
390
- query.select('*');
391
- query.where(pkey, pk);
392
- return await query.firstOrFail();
393
- },
394
- async destroy(pks) {
395
- var _a;
396
- const description = _descriptor(this);
397
- const orm = di_1.DI.get(orm_1.Orm);
398
- const driver = orm.Connections.get(description.Connection);
399
- const converter = driver.Container.resolve(interfaces_1.DatetimeValueConverter);
400
- const data = Array.isArray(pks) ? pks : [pks];
401
- if ((_a = description.SoftDelete) === null || _a === void 0 ? void 0 : _a.DeletedAt) {
402
- const { query } = _createQuery(this, builders_1.UpdateQueryBuilder);
403
- await query.whereIn(description.PrimaryKey, data).update({
404
- [description.SoftDelete.DeletedAt]: converter.toDB(new Date()),
405
- });
406
- }
407
- else {
408
- const { query } = _createQuery(this, builders_1.DeleteQueryBuilder);
409
- await query.whereIn(description.PrimaryKey, data);
410
- }
411
- },
412
- async create(data) {
413
- const entity = new (Function.prototype.bind.apply(this))(data);
414
- await entity.insert();
415
- return entity;
416
- },
417
- async getOrCreate(pk, data) {
418
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
419
- // pk constrain
420
- query.where(description.PrimaryKey, pk);
421
- // check for all unique columns ( unique constrain )
422
- description.Columns.filter((c) => c.Unique).forEach((c) => {
423
- query.andWhere(c, data[c.Name]);
424
- });
425
- let entity = (await query.first());
426
- if (!entity) {
427
- entity = new (Function.prototype.bind.apply(this))(data);
428
- await entity.insert();
429
- return entity;
430
- }
431
- return entity;
432
- },
433
- async getOrNew(pk, data) {
434
- const { query, description } = _createQuery(this, builders_1.SelectQueryBuilder);
435
- // pk constrain
436
- query.where(description.PrimaryKey, pk);
437
- // check for all unique columns ( unique constrain )
438
- description.Columns.filter((c) => c.Unique).forEach((c) => {
439
- query.andWhere(c, data[c.Name]);
440
- });
441
- let entity = (await query.first());
442
- if (!entity) {
443
- entity = new (Function.prototype.bind.apply(this))(data);
444
- return entity;
445
- }
446
- return entity;
447
- },
448
- };
449
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { Configuration } from '@spinajs/configuration';
2
- import { AsyncModule, Container, Class } from '@spinajs/di';
3
- import { Log } from '@spinajs/log';
4
- import { ClassInfo } from '@spinajs/reflection';
5
- import { OrmMigration } from './interfaces';
6
- import { ModelBase } from './model';
7
- import { OrmDriver } from './driver';
8
- export declare class Orm extends AsyncModule {
9
- Models: Array<ClassInfo<ModelBase>>;
10
- Migrations: Array<ClassInfo<OrmMigration>>;
11
- Connections: Map<string, OrmDriver>;
12
- Container: Container;
13
- protected Log: Log;
14
- protected Configuration: Configuration;
15
- /**
16
- *
17
- * Migrates schema up ( fill function is not executed )
18
- *
19
- * @param name - migration file name
20
- */
21
- migrateUp(name?: string): Promise<void>;
22
- /**
23
- *
24
- * Migrates schema up ( fill function is not executed )
25
- *
26
- * @param name - migration file name
27
- */
28
- migrateDown(name?: string): Promise<void>;
29
- /**
30
- * This function is exposed mainly for unit testing purposes. It reloads table information for models
31
- * ORM always try to load table at resolve time
32
- */
33
- reloadTableInfo(): Promise<void>;
34
- resolveAsync(): Promise<void>;
35
- /**
36
- *
37
- * Register model to ORM programatically so ORM can see it and use it. Sometimes dynamical model discovery is not possible eg.
38
- * in webpack evnironment. In such case we must tell ORM manually what to load.
39
- *
40
- * NOTE: use it in ORM constructor before ORM is resolved & model list used.
41
- *
42
- * @param model - model to register
43
- */
44
- protected registerModel<T extends ModelBase>(model: Class<T>): void;
45
- /**
46
- *
47
- * Register migration to ORM programatically so ORM can see it and use it. Sometimes dynamical migration discovery is not possible eg.
48
- * in webpack evnironment. In such case we must tell ORM manually what to load.
49
- *
50
- * NOTE: use it in ORM constructor before ORM is resolved & migrate function used.
51
- *
52
- * @param model - model to register
53
- */
54
- protected registerMigration<T extends OrmMigration>(migration: Class<T>): void;
55
- private createConnections;
56
- private applyModelMixins;
57
- private executeAvaibleMigrations;
58
- private prepareMigrations;
59
- }