@spinajs/orm 2.0.185 → 2.0.186

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 (107) hide show
  1. package/lib/cjs/bootstrap.d.ts +5 -0
  2. package/lib/cjs/bootstrap.d.ts.map +1 -0
  3. package/lib/cjs/bootstrap.js +32 -0
  4. package/lib/cjs/bootstrap.js.map +1 -0
  5. package/lib/cjs/builders.d.ts +6 -2
  6. package/lib/cjs/builders.d.ts.map +1 -1
  7. package/lib/cjs/builders.js +33 -7
  8. package/lib/cjs/builders.js.map +1 -1
  9. package/lib/cjs/converters.d.ts.map +1 -1
  10. package/lib/cjs/converters.js +2 -1
  11. package/lib/cjs/converters.js.map +1 -1
  12. package/lib/cjs/decorators.d.ts +25 -9
  13. package/lib/cjs/decorators.d.ts.map +1 -1
  14. package/lib/cjs/decorators.js +12 -12
  15. package/lib/cjs/decorators.js.map +1 -1
  16. package/lib/cjs/dehydrators.d.ts.map +1 -1
  17. package/lib/cjs/dehydrators.js +7 -1
  18. package/lib/cjs/dehydrators.js.map +1 -1
  19. package/lib/cjs/fp.d.ts +23 -0
  20. package/lib/cjs/fp.d.ts.map +1 -0
  21. package/lib/cjs/fp.js +55 -0
  22. package/lib/cjs/fp.js.map +1 -0
  23. package/lib/cjs/hydrators.d.ts.map +1 -1
  24. package/lib/cjs/hydrators.js +4 -2
  25. package/lib/cjs/hydrators.js.map +1 -1
  26. package/lib/cjs/index.d.ts +3 -0
  27. package/lib/cjs/index.d.ts.map +1 -1
  28. package/lib/cjs/index.js +3 -0
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/cjs/interfaces.d.ts +25 -15
  31. package/lib/cjs/interfaces.d.ts.map +1 -1
  32. package/lib/cjs/interfaces.js +16 -1
  33. package/lib/cjs/interfaces.js.map +1 -1
  34. package/lib/cjs/metadata.d.ts +34 -0
  35. package/lib/cjs/metadata.d.ts.map +1 -0
  36. package/lib/cjs/metadata.js +114 -0
  37. package/lib/cjs/metadata.js.map +1 -0
  38. package/lib/cjs/middlewares.d.ts.map +1 -1
  39. package/lib/cjs/middlewares.js +25 -6
  40. package/lib/cjs/middlewares.js.map +1 -1
  41. package/lib/cjs/model.d.ts +11 -8
  42. package/lib/cjs/model.d.ts.map +1 -1
  43. package/lib/cjs/model.js +67 -43
  44. package/lib/cjs/model.js.map +1 -1
  45. package/lib/cjs/orm.d.ts +1 -1
  46. package/lib/cjs/orm.d.ts.map +1 -1
  47. package/lib/cjs/orm.js +38 -9
  48. package/lib/cjs/orm.js.map +1 -1
  49. package/lib/cjs/relation-objects.d.ts +34 -8
  50. package/lib/cjs/relation-objects.d.ts.map +1 -1
  51. package/lib/cjs/relation-objects.js +39 -18
  52. package/lib/cjs/relation-objects.js.map +1 -1
  53. package/lib/mjs/bootstrap.d.ts +5 -0
  54. package/lib/mjs/bootstrap.d.ts.map +1 -0
  55. package/lib/mjs/bootstrap.js +29 -0
  56. package/lib/mjs/bootstrap.js.map +1 -0
  57. package/lib/mjs/builders.d.ts +6 -2
  58. package/lib/mjs/builders.d.ts.map +1 -1
  59. package/lib/mjs/builders.js +33 -7
  60. package/lib/mjs/builders.js.map +1 -1
  61. package/lib/mjs/converters.d.ts.map +1 -1
  62. package/lib/mjs/converters.js +2 -1
  63. package/lib/mjs/converters.js.map +1 -1
  64. package/lib/mjs/decorators.d.ts +25 -9
  65. package/lib/mjs/decorators.d.ts.map +1 -1
  66. package/lib/mjs/decorators.js +12 -12
  67. package/lib/mjs/decorators.js.map +1 -1
  68. package/lib/mjs/dehydrators.d.ts.map +1 -1
  69. package/lib/mjs/dehydrators.js +7 -1
  70. package/lib/mjs/dehydrators.js.map +1 -1
  71. package/lib/mjs/fp.d.ts +23 -0
  72. package/lib/mjs/fp.d.ts.map +1 -0
  73. package/lib/mjs/fp.js +49 -0
  74. package/lib/mjs/fp.js.map +1 -0
  75. package/lib/mjs/hydrators.d.ts.map +1 -1
  76. package/lib/mjs/hydrators.js +4 -2
  77. package/lib/mjs/hydrators.js.map +1 -1
  78. package/lib/mjs/index.d.ts +3 -0
  79. package/lib/mjs/index.d.ts.map +1 -1
  80. package/lib/mjs/index.js +3 -0
  81. package/lib/mjs/index.js.map +1 -1
  82. package/lib/mjs/interfaces.d.ts +25 -15
  83. package/lib/mjs/interfaces.d.ts.map +1 -1
  84. package/lib/mjs/interfaces.js +14 -0
  85. package/lib/mjs/interfaces.js.map +1 -1
  86. package/lib/mjs/metadata.d.ts +34 -0
  87. package/lib/mjs/metadata.d.ts.map +1 -0
  88. package/lib/mjs/metadata.js +106 -0
  89. package/lib/mjs/metadata.js.map +1 -0
  90. package/lib/mjs/middlewares.d.ts.map +1 -1
  91. package/lib/mjs/middlewares.js +22 -6
  92. package/lib/mjs/middlewares.js.map +1 -1
  93. package/lib/mjs/model.d.ts +11 -8
  94. package/lib/mjs/model.d.ts.map +1 -1
  95. package/lib/mjs/model.js +69 -45
  96. package/lib/mjs/model.js.map +1 -1
  97. package/lib/mjs/orm.d.ts +1 -1
  98. package/lib/mjs/orm.d.ts.map +1 -1
  99. package/lib/mjs/orm.js +39 -10
  100. package/lib/mjs/orm.js.map +1 -1
  101. package/lib/mjs/relation-objects.d.ts +34 -8
  102. package/lib/mjs/relation-objects.d.ts.map +1 -1
  103. package/lib/mjs/relation-objects.js +39 -18
  104. package/lib/mjs/relation-objects.js.map +1 -1
  105. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  106. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  107. package/package.json +10 -12
@@ -0,0 +1,34 @@
1
+ import { IRelationDescriptor } from './interfaces.js';
2
+ import { ModelBase } from './model.js';
3
+ import { OneToManyRelationList } from './relation-objects.js';
4
+ /**
5
+ * Relation object for user metadata
6
+ * Base class for all metadata related models.
7
+ *
8
+ * Metadata is used to store additional information about particular model, that we dont know at design time.
9
+ */
10
+ export declare abstract class MetadataModel<T> extends ModelBase<MetadataModel<T>> {
11
+ protected _value: any;
12
+ Id: number;
13
+ Key: string;
14
+ Type: 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
15
+ get Value(): any;
16
+ set Value(value: any);
17
+ protected getType(val: any): 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
18
+ }
19
+ /**
20
+ *
21
+ * Base class for all metadata related relations.
22
+ * It allows to access metadata as relation object properties. use it for example like this:
23
+ *
24
+ * ```typescript
25
+ * const user = await User.find(1);
26
+ * user.Metadata['test:test'] = 'test';
27
+ * await user.Metadata.sync();
28
+ * ```
29
+ */
30
+ export declare class MetadataRelation<R extends MetadataModel<R>, O extends ModelBase<O>> extends OneToManyRelationList<R, O> {
31
+ [key: string]: any;
32
+ constructor(owner: O, relation: IRelationDescriptor, objects?: R[]);
33
+ }
34
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D;;;;;GAKG;AACH,8BAAsB,aAAa,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAGf,EAAE,EAAE,MAAM,CAAC;IAEX,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7E,IACW,KAAK,IAIQ,GAAG,CAF1B;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,GAAG,EAG1B;IAED,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU;CAW7F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;gBAEP,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;CAiDnE"}
@@ -0,0 +1,114 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MetadataRelation = exports.MetadataModel = void 0;
16
+ const decorators_js_1 = require("./decorators.js");
17
+ const model_js_1 = require("./model.js");
18
+ const relation_objects_js_1 = require("./relation-objects.js");
19
+ const glob_to_regexp_1 = __importDefault(require("glob-to-regexp"));
20
+ const lodash_1 = __importDefault(require("lodash"));
21
+ const luxon_1 = require("luxon");
22
+ /**
23
+ * Relation object for user metadata
24
+ * Base class for all metadata related models.
25
+ *
26
+ * Metadata is used to store additional information about particular model, that we dont know at design time.
27
+ */
28
+ class MetadataModel extends model_js_1.ModelBase {
29
+ get Value() {
30
+ return this._value;
31
+ }
32
+ set Value(value) {
33
+ this._value = value;
34
+ this.Type = this.getType(value);
35
+ }
36
+ getType(val) {
37
+ if (val instanceof luxon_1.DateTime) {
38
+ return 'datetime';
39
+ }
40
+ if (typeof val === 'object') {
41
+ return 'json';
42
+ }
43
+ return (typeof val).toLocaleLowerCase();
44
+ }
45
+ }
46
+ exports.MetadataModel = MetadataModel;
47
+ __decorate([
48
+ (0, decorators_js_1.Primary)(),
49
+ __metadata("design:type", Number)
50
+ ], MetadataModel.prototype, "Id", void 0);
51
+ __decorate([
52
+ (0, decorators_js_1.UniversalConverter)(),
53
+ __metadata("design:type", Object),
54
+ __metadata("design:paramtypes", [Object])
55
+ ], MetadataModel.prototype, "Value", null);
56
+ /**
57
+ *
58
+ * Base class for all metadata related relations.
59
+ * It allows to access metadata as relation object properties. use it for example like this:
60
+ *
61
+ * ```typescript
62
+ * const user = await User.find(1);
63
+ * user.Metadata['test:test'] = 'test';
64
+ * await user.Metadata.sync();
65
+ * ```
66
+ */
67
+ class MetadataRelation extends relation_objects_js_1.OneToManyRelationList {
68
+ constructor(owner, relation, objects) {
69
+ super(owner, relation, objects);
70
+ return new Proxy(this, {
71
+ set: (target, prop, value) => {
72
+ if (prop in target || !isNaN(parseFloat(prop))) {
73
+ target[prop] = value;
74
+ return true;
75
+ }
76
+ const g = (0, glob_to_regexp_1.default)(prop);
77
+ const test = (m) => g.test(m.Key);
78
+ if (lodash_1.default.isNil(value)) {
79
+ target.remove(test);
80
+ }
81
+ else {
82
+ const found = target.filter(test);
83
+ if (found.length === 0) {
84
+ const userMeta = new this.Relation.TargetModel();
85
+ userMeta.Key = prop;
86
+ userMeta.Value = value;
87
+ this.Owner.attach(userMeta);
88
+ }
89
+ else {
90
+ found.forEach((x) => (x.Value = value));
91
+ }
92
+ }
93
+ return true;
94
+ },
95
+ get: (target, prop) => {
96
+ if (prop in target) {
97
+ return target[prop];
98
+ }
99
+ const g = (0, glob_to_regexp_1.default)(prop);
100
+ const test = (m) => g.test(m.Key);
101
+ const found = target.filter(test);
102
+ if (found.length === 0) {
103
+ return null;
104
+ }
105
+ if (found.length === 1) {
106
+ return found[0].Value;
107
+ }
108
+ return found.map(x => x.Value);
109
+ },
110
+ });
111
+ }
112
+ }
113
+ exports.MetadataRelation = MetadataRelation;
114
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DiscriminationMapMiddleware = exports.BelongsToRelationResultTransformMiddleware = exports.BelongsToPopulateDataMiddleware = exports.HasManyToManyRelationMiddleware = exports.BelongsToRelationRecursiveMiddleware = exports.HasManyRelationMiddleware = void 0;
4
7
  /* eslint-disable prettier/prettier */
5
8
  const interfaces_js_1 = require("./interfaces.js");
9
+ const lodash_1 = __importDefault(require("lodash"));
6
10
  const relation_objects_js_1 = require("./relation-objects.js");
11
+ const di_1 = require("@spinajs/di");
12
+ const exceptions_js_1 = require("./exceptions.js");
7
13
  class HasManyRelationMiddleware {
8
14
  constructor(_relationQuery, _description, _path) {
9
15
  this._relationQuery = _relationQuery;
@@ -34,14 +40,27 @@ class HasManyRelationMiddleware {
34
40
  const relData = relationData.filter((rd) => {
35
41
  return d[self._description.PrimaryKey] === rd[self._description.ForeignKey];
36
42
  });
37
- d[self._description.Name] = new relation_objects_js_1.OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
43
+ if (self._description.Factory) {
44
+ d[self._description.Name] = self._description.Factory(d, self._description, d.Container, relData);
45
+ }
46
+ else {
47
+ if (!self._description.RelationClass) {
48
+ throw new exceptions_js_1.OrmException(`Relation class not defined for ${self._description.Name} in ${self._description.SourceModel.name}`);
49
+ }
50
+ if (lodash_1.default.isFunction(self._description.RelationClass)) {
51
+ d[self._description.Name] = di_1.DI.resolve(self._description.RelationClass(), [d, self._description, relData]);
52
+ }
53
+ else {
54
+ d[self._description.Name] = di_1.DI.resolve(self._description.RelationClass, [d, self._description, relData]);
55
+ }
56
+ }
38
57
  });
39
58
  },
40
59
  };
41
60
  if (pks.length !== 0) {
42
61
  this._relationQuery.whereIn(this._description.ForeignKey, pks);
43
62
  this._relationQuery.middleware(hydrateMiddleware);
44
- return await this._relationQuery;
63
+ return (await this._relationQuery);
45
64
  }
46
65
  return [];
47
66
  }
@@ -83,7 +102,7 @@ class BelongsToRelationRecursiveMiddleware {
83
102
  // TODO:
84
103
  // implement RecursiveRelation list to allow for
85
104
  // manipulation of the recursive data
86
- d[name] = new relation_objects_js_1.OneToManyRelationList(d, d.Model, {
105
+ d[name] = new relation_objects_js_1.OneToManyRelationList(d, {
87
106
  Name: name,
88
107
  Type: interfaces_js_1.RelationType.Many,
89
108
  TargetModelType: d.Model,
@@ -108,7 +127,7 @@ class BelongsToRelationRecursiveMiddleware {
108
127
  this._relationQuery.whereIn(this._description.PrimaryKey, pks);
109
128
  this._relationQuery.middleware(new DiscriminationMapMiddleware(this._targetModelDescriptor));
110
129
  this._relationQuery.middleware(hydrateMiddleware);
111
- return await this._relationQuery;
130
+ return (await this._relationQuery);
112
131
  }
113
132
  }
114
133
  exports.BelongsToRelationRecursiveMiddleware = BelongsToRelationRecursiveMiddleware;
@@ -138,7 +157,7 @@ class HasManyToManyRelationMiddleware {
138
157
  relationData.forEach((d) => (d.__relationKey__ = self._description.Name));
139
158
  data.forEach((d) => {
140
159
  const relData = relationData.filter((rd) => rd.JunctionModel[self._description.ForeignKey] === d[self._description.PrimaryKey]);
141
- d[self._description.Name] = new relation_objects_js_1.ManyToManyRelationList(d, self._description.TargetModel, self._description, relData);
160
+ d[self._description.Name] = new relation_objects_js_1.ManyToManyRelationList(d, self._description, relData);
142
161
  });
143
162
  relationData.forEach((d) => delete d.JunctionModel);
144
163
  },
@@ -148,7 +167,7 @@ class HasManyToManyRelationMiddleware {
148
167
  this._relationQuery.middleware(new BelongsToRelationResultTransformMiddleware());
149
168
  this._relationQuery.middleware(new DiscriminationMapMiddleware(this._targetModelDescriptor));
150
169
  this._relationQuery.middleware(hydrateMiddleware);
151
- return await this._relationQuery;
170
+ return (await this._relationQuery);
152
171
  }
153
172
  return [];
154
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { IModelDescriptor, InsertBehaviour, IUpdateResult, ISelectQueryBuilder,
3
3
  import { WhereFunction } from './types.js';
4
4
  import { RawQuery, UpdateQueryBuilder, TruncateTableQueryBuilder, QueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder } from './builders.js';
5
5
  import { Op } from './enums.js';
6
- import { Class, IContainer, Constructor } from '@spinajs/di';
7
6
  import { Wrap } from './statements.js';
8
- import { DateTime } from 'luxon';
9
7
  import { OrmDriver } from './driver.js';
8
+ import { Class, IContainer, Constructor } from '@spinajs/di';
9
+ import { DateTime } from 'luxon';
10
10
  export declare function extractModelDescriptor(targetOrForward: any): IModelDescriptor;
11
11
  export declare class ModelBase<M = unknown> implements IModelBase {
12
12
  /**
@@ -182,17 +182,20 @@ export declare class ModelBase<M = unknown> implements IModelBase {
182
182
  /**
183
183
  * deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
184
184
  */
185
- destroy(): Promise<void>;
185
+ destroy(): Promise<any>;
186
186
  /**
187
187
  * If model can be in achived state - sets archived at date and saves it to db
188
188
  */
189
- archive(): Promise<void>;
190
- update(): Promise<void>;
189
+ archive(): Promise<IUpdateResult>;
190
+ update(data?: Partial<this>): Promise<{
191
+ RowsAffected: number;
192
+ LastInsertId: number;
193
+ }>;
191
194
  /**
192
195
  * Save all changes to db. It creates new entry id db or updates existing one if
193
196
  * primary key exists
194
197
  */
195
- insert(insertBehaviour?: InsertBehaviour): Promise<IUpdateResult>;
198
+ insert(insertBehaviour?: InsertBehaviour): Promise<any>;
196
199
  /**
197
200
  *
198
201
  * Shorthand for inserting model when no primary key exists, or update
@@ -200,7 +203,7 @@ export declare class ModelBase<M = unknown> implements IModelBase {
200
203
  *
201
204
  * @param insertBehaviour - insert mode
202
205
  */
203
- insertOrUpdate(insertBehaviour?: InsertBehaviour): Promise<void>;
206
+ insertOrUpdate(): Promise<any>;
204
207
  /**
205
208
  * Gets model data from database and returns as fresh instance.
206
209
  *
@@ -272,7 +275,7 @@ export declare const MODEL_STATIC_MIXINS: {
272
275
  /**
273
276
  * Try to insert new value
274
277
  */
275
- 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>;
278
+ 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<any>;
276
279
  find<T_2 extends typeof ModelBase>(this: T_2, pks: any[]): Promise<InstanceType<T_2>[]>;
277
280
  findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
278
281
  get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI/F,OAAO,EAAE,gBAAgB,EAAgB,eAAe,EAAE,aAAa,EAAmB,mBAAmB,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAA6C,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAChQ,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClK,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAqB,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOhF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmBxC,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,CAmC7E;AAED,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,UAAU;IACvD;;OAEG;IACI,OAAO,UAAS;IAEvB,OAAO,CAAC,UAAU,CAAa;IAE/B;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEjC,gBAAuB,YAAY,EAAE,UAAU,CAAC;IAEhD;;;OAGG;IACH,IAAW,eAAe,qBAEzB;IAED;;OAEG;IACH,IAAW,SAAS,eAanB;IAED,IAAW,cAAc,WAExB;IAED,IAAW,eAAe,IAIS,GAAG,CAFrC;IAED,IAAW,eAAe,CAAC,MAAM,EAAE,GAAG,EAmBrC;IAEM,OAAO;IAIP,MAAM,IAAI,SAAS;IAM1B;;OAEG;IACI,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE;WAuBnD,kBAAkB;WAIlB,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAIrD;;OAEG;WACW,QAAQ;IAItB;;OAEG;WACW,GAAG,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAIrI;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,GAAE,eAAsC,GAAG,kBAAkB;IAIxQ;;;;;;OAMG;WACW,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WACzH,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WAClK,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WACjJ,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WACrJ,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WACvI,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;WAC5H,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAK3R;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAInJ;;OAEG;WACW,IAAI,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAIrG;;;;OAIG;WACW,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKtJ;;;;OAIG;WACW,IAAI,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKrJ;;OAEG;WACW,MAAM,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKvJ;;OAEG;WACW,MAAM,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKvJ;;OAEG;WACW,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7I;;OAEG;WACW,UAAU,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAI3G;;;OAGG;WACW,GAAG,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI1F;;;OAGG;WACW,SAAS,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIhG;;;;OAIG;WACW,QAAQ,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIlI;;;OAGG;WACW,KAAK,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAIzH;;;;;;OAMG;WACW,WAAW,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIpI;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIpH;;;;OAIG;WAEW,OAAO,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAItI;;OAEG;WACW,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;WAI1B,WAAW,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;WAI7H,cAAc,CAAC,CAAC,SAAS,OAAO,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAIlI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAU7B;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;OAKG;IACI,MAAM,CAAC,IAAI,EAAE,SAAS;IAsB7B;;OAEG;IACI,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;IAIlD;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAIjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACU,OAAO;IASpB;;OAEG;IACU,OAAO;IAWP,MAAM;IAYnB;;;OAGG;IACU,MAAM,CAAC,eAAe,GAAE,eAAsC;IAgC3E;;;;;;OAMG;IACU,cAAc,CAAC,eAAe,GAAE,eAAsC;IAQnF;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;;;;OAKG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,MAAM;IAIb;;OAEG;IACH,SAAS,CAAC,WAAW;IA4BrB,SAAS,CAAC,iBAAiB;;;;;;IAI3B,SAAS,CAAC,iBAAiB;;;;;;IAI3B,SAAS,CAAC,iBAAiB;;;;;;CAG5B;AAoCD,8BAAsB,eAAgB,YAAW,gBAAgB;IAC/D,SAAgB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3D,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,OAAO,EAAE,QAAQ,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,UAAO;;;;;EA2CzG;AAED,eAAO,MAAM,mBAAmB;0BACR,gBAAgB;oCAUN,MAAM,GAAG,mBAAmB;gBAiBhD,yBAAyB;cAK3B,SAAS;aAYV,kBAAkB;kBAKb,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,UAAU,GAAG,GAAG,kBAAkB;;eAYtH,MAAM,YAAY,MAAM;IAWnC;;OAEG;iLAC6K,eAAe;uDA6D1I,GAAG,EAAE;6DAQC,GAAG,EAAE;qDAgBb,GAAG;2DAYG,GAAG;gDAYlB,GAAG,GAAG,GAAG,EAAE;;6DA0BM,GAAG;0DA0BN,GAAG;0DAyBL,GAAG;;;kGA2BkC,IAAI;iGAWL,IAAI;mGAWF,IAAI;mGAgBJ,IAAI;kGAgBL,IAAI,GAAG,QAAQ,MAAM,CAAC;CAalH,CAAC;AAEF,eAAO,MAAM,kBAAkB,OAAQ,UAAU,SAAS,YAAY,SAAS,CAAC,uBAG/E,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
package/lib/cjs/model.js CHANGED
@@ -4,26 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports._modelProxyFactory = exports.MODEL_STATIC_MIXINS = exports.createQuery = exports.HistoricalModel = exports.ModelBase = exports.extractModelDescriptor = void 0;
7
- /* eslint-disable prettier/prettier */
8
7
  const enums_js_1 = require("./enums.js");
9
8
  const decorators_js_1 = require("./decorators.js");
10
9
  const interfaces_js_1 = require("./interfaces.js");
11
10
  const builders_js_1 = require("./builders.js");
12
- const di_1 = require("@spinajs/di");
13
11
  const orm_js_1 = require("./orm.js");
14
12
  const hydrators_js_1 = require("./hydrators.js");
15
- const lodash_1 = __importDefault(require("lodash"));
16
- const uuid_1 = require("uuid");
17
13
  const exceptions_js_1 = require("./exceptions.js");
18
14
  const dehydrators_js_1 = require("./dehydrators.js");
19
- const luxon_1 = require("luxon");
20
15
  const relation_objects_js_1 = require("./relation-objects.js");
21
16
  const middlewares_js_1 = require("./middlewares.js");
17
+ const di_1 = require("@spinajs/di");
18
+ const luxon_1 = require("luxon");
19
+ const lodash_1 = __importDefault(require("lodash"));
20
+ const uuid_1 = require("uuid");
22
21
  const MODEL_PROXY_HANDLER = {
23
22
  set: (target, p, value) => {
24
23
  if (target[p] !== value) {
25
24
  target[p] = value;
26
- if (p !== 'IsDirty') {
25
+ if (p !== 'IsDirty' && target.ModelDescriptor.Columns.find((x) => x.Name === p)) {
27
26
  target.IsDirty = true;
28
27
  }
29
28
  }
@@ -49,7 +48,7 @@ function extractModelDescriptor(targetOrForward) {
49
48
  return b;
50
49
  }
51
50
  if (Array.isArray(a)) {
52
- return a.concat(b);
51
+ return lodash_1.default.uniq(a.concat(b));
53
52
  }
54
53
  return a;
55
54
  });
@@ -72,8 +71,7 @@ class ModelBase {
72
71
  */
73
72
  get Container() {
74
73
  if (!this._container) {
75
- const orm = di_1.DI.get(orm_js_1.Orm);
76
- const driver = orm.Connections.get(this.ModelDescriptor.Connection);
74
+ const driver = di_1.DI.resolve('OrmConnection', [this.ModelDescriptor.Connection]);
77
75
  if (!driver) {
78
76
  throw new Error(`model ${this.constructor.name} have invalid connection ${this.ModelDescriptor.Connection}, please check your db config file or model connection name`);
79
77
  }
@@ -303,18 +301,24 @@ class ModelBase {
303
301
  if (v.TargetModel.name === data.constructor.name) {
304
302
  // TODO: refactor this, so we dont update foreign key
305
303
  // instead we must use belongsTo relation on data model to update
306
- data[v.ForeignKey] = this.PrimaryKeyValue;
304
+ //(data as any)[v.ForeignKey] = this.PrimaryKeyValue;
307
305
  switch (v.Type) {
308
306
  case interfaces_js_1.RelationType.One:
309
307
  this[v.Name].attach(data);
310
308
  break;
311
309
  case interfaces_js_1.RelationType.Many:
310
+ // attach to related model too
311
+ const rel = [...data.ModelDescriptor.Relations.entries()].find((e) => e[1].ForeignKey === v.ForeignKey);
312
+ if (rel) {
313
+ data[rel[0]].Value = this;
314
+ }
312
315
  case interfaces_js_1.RelationType.ManyToMany:
313
316
  this[v.Name].push(data);
314
317
  break;
315
318
  }
316
319
  }
317
320
  }
321
+ this.IsDirty = true;
318
322
  }
319
323
  /**
320
324
  * Extracts all data from model. It takes only properties that exists in DB
@@ -341,8 +345,9 @@ class ModelBase {
341
345
  if (!this.PrimaryKeyValue) {
342
346
  return;
343
347
  }
344
- await this.constructor.destroy(this.PrimaryKeyValue);
348
+ const result = await this.constructor.destroy(this.PrimaryKeyValue);
345
349
  this.IsDirty = false;
350
+ return result;
346
351
  }
347
352
  /**
348
353
  * If model can be in achived state - sets archived at date and saves it to db
@@ -355,15 +360,27 @@ class ModelBase {
355
360
  throw new exceptions_js_1.OrmException('archived at column not exists in model');
356
361
  }
357
362
  const { query } = this.createUpdateQuery();
358
- await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
363
+ return await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
359
364
  }
360
- async update() {
365
+ async update(data) {
361
366
  const { query } = this.createUpdateQuery();
367
+ let result = {
368
+ RowsAffected: 0,
369
+ LastInsertId: 0,
370
+ };
371
+ if (data) {
372
+ this.hydrate(data);
373
+ }
374
+ // if no changes, return without update
375
+ if (this.IsDirty === false) {
376
+ return result;
377
+ }
362
378
  if (this.ModelDescriptor.Timestamps.UpdatedAt) {
363
379
  this[this.ModelDescriptor.Timestamps.UpdatedAt] = luxon_1.DateTime.now();
364
380
  }
365
- await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
381
+ result = await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
366
382
  this.IsDirty = false;
383
+ return result;
367
384
  }
368
385
  /**
369
386
  * Save all changes to db. It creates new entry id db or updates existing one if
@@ -382,19 +399,26 @@ class ModelBase {
382
399
  query.orReplace();
383
400
  break;
384
401
  }
385
- const iMidleware = {
386
- afterQuery: (data) => {
387
- this.PrimaryKeyValue = this.PrimaryKeyValue ?? data.LastInsertId;
388
- return data;
389
- },
390
- modelCreation: () => null,
391
- afterHydration: () => null,
392
- };
393
- query.middleware(iMidleware);
394
- return query.values(this.toSql()).then((res) => {
395
- this.IsDirty = false;
396
- return res;
397
- });
402
+ query.QueryContext === interfaces_js_1.QueryContext.Upsert
403
+ // when upsert, we take affecter row ID from primary key returned ( returning statement)
404
+ ? query.middleware({
405
+ afterQuery: (data) => {
406
+ this.PrimaryKeyValue = this.PrimaryKeyValue ?? data[0][this.PrimaryKeyName];
407
+ },
408
+ modelCreation: () => null,
409
+ afterHydration: () => null,
410
+ })
411
+ : query.middleware({
412
+ afterQuery: (data) => {
413
+ this.PrimaryKeyValue = this.PrimaryKeyValue ?? data.LastInsertId;
414
+ return data;
415
+ },
416
+ modelCreation: () => null,
417
+ afterHydration: () => null,
418
+ });
419
+ const result = query.values(this.toSql());
420
+ this.IsDirty = false;
421
+ return result;
398
422
  }
399
423
  /**
400
424
  *
@@ -403,13 +427,11 @@ class ModelBase {
403
427
  *
404
428
  * @param insertBehaviour - insert mode
405
429
  */
406
- async insertOrUpdate(insertBehaviour = interfaces_js_1.InsertBehaviour.None) {
430
+ async insertOrUpdate() {
407
431
  if (this.PrimaryKeyValue) {
408
- await this.update();
409
- }
410
- else {
411
- await this.insert(insertBehaviour);
432
+ return await this.update();
412
433
  }
434
+ return await this.insert();
413
435
  }
414
436
  /**
415
437
  * Gets model data from database and returns as fresh instance.
@@ -458,16 +480,15 @@ class ModelBase {
458
480
  }
459
481
  for (const [, rel] of this.ModelDescriptor.Relations) {
460
482
  if (rel.Factory) {
461
- this[rel.Name] = rel.Factory(this, rel, this.Container);
483
+ this[rel.Name] = rel.Factory(this, rel, this.Container, []);
462
484
  }
463
485
  else if (rel.RelationClass) {
464
- this[rel.Name] = this.Container.resolve(rel.RelationClass, [this, rel.TargetModel, rel, []]);
465
- }
466
- else if (rel.Type === interfaces_js_1.RelationType.Many) {
467
- this[rel.Name] = new relation_objects_js_1.OneToManyRelationList(this, rel.TargetModel, rel, []);
468
- }
469
- else if (rel.Type === interfaces_js_1.RelationType.ManyToMany) {
470
- this[rel.Name] = new relation_objects_js_1.ManyToManyRelationList(this, rel.TargetModel, rel, []);
486
+ if (lodash_1.default.isFunction(rel.RelationClass)) {
487
+ this[rel.Name] = this.Container.resolve(rel.RelationClass(), [this, rel, []]);
488
+ }
489
+ else {
490
+ this[rel.Name] = this.Container.resolve(rel.RelationClass, [this, rel, []]);
491
+ }
471
492
  }
472
493
  else {
473
494
  this[rel.Name] = new relation_objects_js_1.SingleRelation(this, rel.TargetModel, rel, null);
@@ -538,13 +559,13 @@ function createQuery(model, query, injectModel = true) {
538
559
  if (!dsc) {
539
560
  throw new Error(`model ${model.name} does not have model descriptor. Use @model decorator on class`);
540
561
  }
541
- const orm = di_1.DI.get(orm_js_1.Orm);
542
- const driver = orm.Connections.get(dsc.Connection);
562
+ const driver = di_1.DI.resolve('OrmConnection', [dsc.Connection]);
543
563
  if (!driver) {
544
564
  throw new Error(`model ${model.name} have invalid connection ${dsc.Connection}, please check your db config file or model connection name`);
545
565
  }
546
566
  const cnt = driver.Container;
547
- const qr = cnt.resolve(query, [driver, injectModel ? orm.Models.find((x) => x.name === model.name).type : null]);
567
+ const models = di_1.DI.getRegisteredTypes('__models__');
568
+ const qr = cnt.resolve(query, [driver, injectModel ? models.find((x) => x.name === model.name) : null]);
548
569
  if (qr instanceof builders_js_1.SelectQueryBuilder) {
549
570
  const scope = model._queryScopes;
550
571
  if (scope) {
@@ -615,6 +636,9 @@ exports.MODEL_STATIC_MIXINS = {
615
636
  return query.where(column, operator, value);
616
637
  },
617
638
  update(data) {
639
+ if (data instanceof ModelBase) {
640
+ throw new exceptions_js_1.OrmException(`use model::update() function to update model`);
641
+ }
618
642
  const { query } = createQuery(this, builders_js_1.UpdateQueryBuilder);
619
643
  return query.update(data);
620
644
  },