@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,106 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Primary, UniversalConverter } from './decorators.js';
11
+ import { ModelBase } from './model.js';
12
+ import { OneToManyRelationList } from './relation-objects.js';
13
+ import GlobToRegExp from 'glob-to-regexp';
14
+ import _ from "lodash";
15
+ import { DateTime } from 'luxon';
16
+ /**
17
+ * Relation object for user metadata
18
+ * Base class for all metadata related models.
19
+ *
20
+ * Metadata is used to store additional information about particular model, that we dont know at design time.
21
+ */
22
+ export class MetadataModel extends ModelBase {
23
+ get Value() {
24
+ return this._value;
25
+ }
26
+ set Value(value) {
27
+ this._value = value;
28
+ this.Type = this.getType(value);
29
+ }
30
+ getType(val) {
31
+ if (val instanceof DateTime) {
32
+ return 'datetime';
33
+ }
34
+ if (typeof val === 'object') {
35
+ return 'json';
36
+ }
37
+ return (typeof val).toLocaleLowerCase();
38
+ }
39
+ }
40
+ __decorate([
41
+ Primary(),
42
+ __metadata("design:type", Number)
43
+ ], MetadataModel.prototype, "Id", void 0);
44
+ __decorate([
45
+ UniversalConverter(),
46
+ __metadata("design:type", Object),
47
+ __metadata("design:paramtypes", [Object])
48
+ ], MetadataModel.prototype, "Value", null);
49
+ /**
50
+ *
51
+ * Base class for all metadata related relations.
52
+ * It allows to access metadata as relation object properties. use it for example like this:
53
+ *
54
+ * ```typescript
55
+ * const user = await User.find(1);
56
+ * user.Metadata['test:test'] = 'test';
57
+ * await user.Metadata.sync();
58
+ * ```
59
+ */
60
+ export class MetadataRelation extends OneToManyRelationList {
61
+ constructor(owner, relation, objects) {
62
+ super(owner, relation, objects);
63
+ return new Proxy(this, {
64
+ set: (target, prop, value) => {
65
+ if (prop in target || !isNaN(parseFloat(prop))) {
66
+ target[prop] = value;
67
+ return true;
68
+ }
69
+ const g = GlobToRegExp(prop);
70
+ const test = (m) => g.test(m.Key);
71
+ if (_.isNil(value)) {
72
+ target.remove(test);
73
+ }
74
+ else {
75
+ const found = target.filter(test);
76
+ if (found.length === 0) {
77
+ const userMeta = new this.Relation.TargetModel();
78
+ userMeta.Key = prop;
79
+ userMeta.Value = value;
80
+ this.Owner.attach(userMeta);
81
+ }
82
+ else {
83
+ found.forEach((x) => (x.Value = value));
84
+ }
85
+ }
86
+ return true;
87
+ },
88
+ get: (target, prop) => {
89
+ if (prop in target) {
90
+ return target[prop];
91
+ }
92
+ const g = GlobToRegExp(prop);
93
+ const test = (m) => g.test(m.Key);
94
+ const found = target.filter(test);
95
+ if (found.length === 0) {
96
+ return null;
97
+ }
98
+ if (found.length === 1) {
99
+ return found[0].Value;
100
+ }
101
+ return found.map(x => x.Value);
102
+ },
103
+ });
104
+ }
105
+ }
106
+ //# 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,6 +1,9 @@
1
1
  /* eslint-disable prettier/prettier */
2
2
  import { RelationType } from './interfaces.js';
3
+ import _ from 'lodash';
3
4
  import { ManyToManyRelationList, OneToManyRelationList } from './relation-objects.js';
5
+ import { DI } from '@spinajs/di';
6
+ import { OrmException } from './exceptions.js';
4
7
  export class HasManyRelationMiddleware {
5
8
  constructor(_relationQuery, _description, _path) {
6
9
  this._relationQuery = _relationQuery;
@@ -31,14 +34,27 @@ export class HasManyRelationMiddleware {
31
34
  const relData = relationData.filter((rd) => {
32
35
  return d[self._description.PrimaryKey] === rd[self._description.ForeignKey];
33
36
  });
34
- d[self._description.Name] = new OneToManyRelationList(d, self._description.TargetModel, self._description, relData);
37
+ if (self._description.Factory) {
38
+ d[self._description.Name] = self._description.Factory(d, self._description, d.Container, relData);
39
+ }
40
+ else {
41
+ if (!self._description.RelationClass) {
42
+ throw new OrmException(`Relation class not defined for ${self._description.Name} in ${self._description.SourceModel.name}`);
43
+ }
44
+ if (_.isFunction(self._description.RelationClass)) {
45
+ d[self._description.Name] = DI.resolve(self._description.RelationClass(), [d, self._description, relData]);
46
+ }
47
+ else {
48
+ d[self._description.Name] = DI.resolve(self._description.RelationClass, [d, self._description, relData]);
49
+ }
50
+ }
35
51
  });
36
52
  },
37
53
  };
38
54
  if (pks.length !== 0) {
39
55
  this._relationQuery.whereIn(this._description.ForeignKey, pks);
40
56
  this._relationQuery.middleware(hydrateMiddleware);
41
- return await this._relationQuery;
57
+ return (await this._relationQuery);
42
58
  }
43
59
  return [];
44
60
  }
@@ -79,7 +95,7 @@ export class BelongsToRelationRecursiveMiddleware {
79
95
  // TODO:
80
96
  // implement RecursiveRelation list to allow for
81
97
  // manipulation of the recursive data
82
- d[name] = new OneToManyRelationList(d, d.Model, {
98
+ d[name] = new OneToManyRelationList(d, {
83
99
  Name: name,
84
100
  Type: RelationType.Many,
85
101
  TargetModelType: d.Model,
@@ -104,7 +120,7 @@ export class BelongsToRelationRecursiveMiddleware {
104
120
  this._relationQuery.whereIn(this._description.PrimaryKey, pks);
105
121
  this._relationQuery.middleware(new DiscriminationMapMiddleware(this._targetModelDescriptor));
106
122
  this._relationQuery.middleware(hydrateMiddleware);
107
- return await this._relationQuery;
123
+ return (await this._relationQuery);
108
124
  }
109
125
  }
110
126
  export class HasManyToManyRelationMiddleware {
@@ -133,7 +149,7 @@ export class HasManyToManyRelationMiddleware {
133
149
  relationData.forEach((d) => (d.__relationKey__ = self._description.Name));
134
150
  data.forEach((d) => {
135
151
  const relData = relationData.filter((rd) => rd.JunctionModel[self._description.ForeignKey] === d[self._description.PrimaryKey]);
136
- d[self._description.Name] = new ManyToManyRelationList(d, self._description.TargetModel, self._description, relData);
152
+ d[self._description.Name] = new ManyToManyRelationList(d, self._description, relData);
137
153
  });
138
154
  relationData.forEach((d) => delete d.JunctionModel);
139
155
  },
@@ -143,7 +159,7 @@ export class HasManyToManyRelationMiddleware {
143
159
  this._relationQuery.middleware(new BelongsToRelationResultTransformMiddleware());
144
160
  this._relationQuery.middleware(new DiscriminationMapMiddleware(this._targetModelDescriptor));
145
161
  this._relationQuery.middleware(hydrateMiddleware);
146
- return await this._relationQuery;
162
+ return (await this._relationQuery);
147
163
  }
148
164
  return [];
149
165
  }
@@ -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":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
package/lib/mjs/model.js CHANGED
@@ -1,23 +1,22 @@
1
- /* eslint-disable prettier/prettier */
2
1
  import { SortOrder } from './enums.js';
3
2
  import { MODEL_DESCTRIPTION_SYMBOL } from './decorators.js';
4
- import { RelationType, InsertBehaviour, ModelToSqlConverter, ObjectToSqlConverter } from './interfaces.js';
3
+ import { RelationType, InsertBehaviour, ModelToSqlConverter, ObjectToSqlConverter, QueryContext } from './interfaces.js';
5
4
  import { UpdateQueryBuilder, TruncateTableQueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder } from './builders.js';
6
- import { DI, isConstructor } from '@spinajs/di';
7
5
  import { Orm } from './orm.js';
8
6
  import { ModelHydrator } from './hydrators.js';
9
- import _ from 'lodash';
10
- import { v4 as uuidv4 } from 'uuid';
11
7
  import { OrmException } from './exceptions.js';
12
8
  import { StandardModelDehydrator, StandardModelWithRelationsDehydrator } from './dehydrators.js';
13
- import { DateTime } from 'luxon';
14
- import { ManyToManyRelationList, OneToManyRelationList, SingleRelation } from './relation-objects.js';
9
+ import { SingleRelation } from './relation-objects.js';
15
10
  import { DiscriminationMapMiddleware } from './middlewares.js';
11
+ import { DI, isConstructor } from '@spinajs/di';
12
+ import { DateTime } from 'luxon';
13
+ import _ from 'lodash';
14
+ import { v4 as uuidv4 } from 'uuid';
16
15
  const MODEL_PROXY_HANDLER = {
17
16
  set: (target, p, value) => {
18
17
  if (target[p] !== value) {
19
18
  target[p] = value;
20
- if (p !== 'IsDirty') {
19
+ if (p !== 'IsDirty' && target.ModelDescriptor.Columns.find((x) => x.Name === p)) {
21
20
  target.IsDirty = true;
22
21
  }
23
22
  }
@@ -43,7 +42,7 @@ export function extractModelDescriptor(targetOrForward) {
43
42
  return b;
44
43
  }
45
44
  if (Array.isArray(a)) {
46
- return a.concat(b);
45
+ return _.uniq(a.concat(b));
47
46
  }
48
47
  return a;
49
48
  });
@@ -65,8 +64,7 @@ export class ModelBase {
65
64
  */
66
65
  get Container() {
67
66
  if (!this._container) {
68
- const orm = DI.get(Orm);
69
- const driver = orm.Connections.get(this.ModelDescriptor.Connection);
67
+ const driver = DI.resolve('OrmConnection', [this.ModelDescriptor.Connection]);
70
68
  if (!driver) {
71
69
  throw new Error(`model ${this.constructor.name} have invalid connection ${this.ModelDescriptor.Connection}, please check your db config file or model connection name`);
72
70
  }
@@ -296,18 +294,24 @@ export class ModelBase {
296
294
  if (v.TargetModel.name === data.constructor.name) {
297
295
  // TODO: refactor this, so we dont update foreign key
298
296
  // instead we must use belongsTo relation on data model to update
299
- data[v.ForeignKey] = this.PrimaryKeyValue;
297
+ //(data as any)[v.ForeignKey] = this.PrimaryKeyValue;
300
298
  switch (v.Type) {
301
299
  case RelationType.One:
302
300
  this[v.Name].attach(data);
303
301
  break;
304
302
  case RelationType.Many:
303
+ // attach to related model too
304
+ const rel = [...data.ModelDescriptor.Relations.entries()].find((e) => e[1].ForeignKey === v.ForeignKey);
305
+ if (rel) {
306
+ data[rel[0]].Value = this;
307
+ }
305
308
  case RelationType.ManyToMany:
306
309
  this[v.Name].push(data);
307
310
  break;
308
311
  }
309
312
  }
310
313
  }
314
+ this.IsDirty = true;
311
315
  }
312
316
  /**
313
317
  * Extracts all data from model. It takes only properties that exists in DB
@@ -334,8 +338,9 @@ export class ModelBase {
334
338
  if (!this.PrimaryKeyValue) {
335
339
  return;
336
340
  }
337
- await this.constructor.destroy(this.PrimaryKeyValue);
341
+ const result = await this.constructor.destroy(this.PrimaryKeyValue);
338
342
  this.IsDirty = false;
343
+ return result;
339
344
  }
340
345
  /**
341
346
  * If model can be in achived state - sets archived at date and saves it to db
@@ -348,15 +353,27 @@ export class ModelBase {
348
353
  throw new OrmException('archived at column not exists in model');
349
354
  }
350
355
  const { query } = this.createUpdateQuery();
351
- await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
356
+ return await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
352
357
  }
353
- async update() {
358
+ async update(data) {
354
359
  const { query } = this.createUpdateQuery();
360
+ let result = {
361
+ RowsAffected: 0,
362
+ LastInsertId: 0,
363
+ };
364
+ if (data) {
365
+ this.hydrate(data);
366
+ }
367
+ // if no changes, return without update
368
+ if (this.IsDirty === false) {
369
+ return result;
370
+ }
355
371
  if (this.ModelDescriptor.Timestamps.UpdatedAt) {
356
372
  this[this.ModelDescriptor.Timestamps.UpdatedAt] = DateTime.now();
357
373
  }
358
- await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
374
+ result = await query.update(this.toSql()).where(this.PrimaryKeyName, this.PrimaryKeyValue);
359
375
  this.IsDirty = false;
376
+ return result;
360
377
  }
361
378
  /**
362
379
  * Save all changes to db. It creates new entry id db or updates existing one if
@@ -375,19 +392,26 @@ export class ModelBase {
375
392
  query.orReplace();
376
393
  break;
377
394
  }
378
- const iMidleware = {
379
- afterQuery: (data) => {
380
- this.PrimaryKeyValue = this.PrimaryKeyValue ?? data.LastInsertId;
381
- return data;
382
- },
383
- modelCreation: () => null,
384
- afterHydration: () => null,
385
- };
386
- query.middleware(iMidleware);
387
- return query.values(this.toSql()).then((res) => {
388
- this.IsDirty = false;
389
- return res;
390
- });
395
+ query.QueryContext === QueryContext.Upsert
396
+ // when upsert, we take affecter row ID from primary key returned ( returning statement)
397
+ ? query.middleware({
398
+ afterQuery: (data) => {
399
+ this.PrimaryKeyValue = this.PrimaryKeyValue ?? data[0][this.PrimaryKeyName];
400
+ },
401
+ modelCreation: () => null,
402
+ afterHydration: () => null,
403
+ })
404
+ : query.middleware({
405
+ afterQuery: (data) => {
406
+ this.PrimaryKeyValue = this.PrimaryKeyValue ?? data.LastInsertId;
407
+ return data;
408
+ },
409
+ modelCreation: () => null,
410
+ afterHydration: () => null,
411
+ });
412
+ const result = query.values(this.toSql());
413
+ this.IsDirty = false;
414
+ return result;
391
415
  }
392
416
  /**
393
417
  *
@@ -396,13 +420,11 @@ export class ModelBase {
396
420
  *
397
421
  * @param insertBehaviour - insert mode
398
422
  */
399
- async insertOrUpdate(insertBehaviour = InsertBehaviour.None) {
423
+ async insertOrUpdate() {
400
424
  if (this.PrimaryKeyValue) {
401
- await this.update();
402
- }
403
- else {
404
- await this.insert(insertBehaviour);
425
+ return await this.update();
405
426
  }
427
+ return await this.insert();
406
428
  }
407
429
  /**
408
430
  * Gets model data from database and returns as fresh instance.
@@ -451,16 +473,15 @@ export class ModelBase {
451
473
  }
452
474
  for (const [, rel] of this.ModelDescriptor.Relations) {
453
475
  if (rel.Factory) {
454
- this[rel.Name] = rel.Factory(this, rel, this.Container);
476
+ this[rel.Name] = rel.Factory(this, rel, this.Container, []);
455
477
  }
456
478
  else if (rel.RelationClass) {
457
- this[rel.Name] = this.Container.resolve(rel.RelationClass, [this, rel.TargetModel, rel, []]);
458
- }
459
- else if (rel.Type === RelationType.Many) {
460
- this[rel.Name] = new OneToManyRelationList(this, rel.TargetModel, rel, []);
461
- }
462
- else if (rel.Type === RelationType.ManyToMany) {
463
- this[rel.Name] = new ManyToManyRelationList(this, rel.TargetModel, rel, []);
479
+ if (_.isFunction(rel.RelationClass)) {
480
+ this[rel.Name] = this.Container.resolve(rel.RelationClass(), [this, rel, []]);
481
+ }
482
+ else {
483
+ this[rel.Name] = this.Container.resolve(rel.RelationClass, [this, rel, []]);
484
+ }
464
485
  }
465
486
  else {
466
487
  this[rel.Name] = new SingleRelation(this, rel.TargetModel, rel, null);
@@ -529,13 +550,13 @@ export function createQuery(model, query, injectModel = true) {
529
550
  if (!dsc) {
530
551
  throw new Error(`model ${model.name} does not have model descriptor. Use @model decorator on class`);
531
552
  }
532
- const orm = DI.get(Orm);
533
- const driver = orm.Connections.get(dsc.Connection);
553
+ const driver = DI.resolve('OrmConnection', [dsc.Connection]);
534
554
  if (!driver) {
535
555
  throw new Error(`model ${model.name} have invalid connection ${dsc.Connection}, please check your db config file or model connection name`);
536
556
  }
537
557
  const cnt = driver.Container;
538
- const qr = cnt.resolve(query, [driver, injectModel ? orm.Models.find((x) => x.name === model.name).type : null]);
558
+ const models = DI.getRegisteredTypes('__models__');
559
+ const qr = cnt.resolve(query, [driver, injectModel ? models.find((x) => x.name === model.name) : null]);
539
560
  if (qr instanceof SelectQueryBuilder) {
540
561
  const scope = model._queryScopes;
541
562
  if (scope) {
@@ -605,6 +626,9 @@ export const MODEL_STATIC_MIXINS = {
605
626
  return query.where(column, operator, value);
606
627
  },
607
628
  update(data) {
629
+ if (data instanceof ModelBase) {
630
+ throw new OrmException(`use model::update() function to update model`);
631
+ }
608
632
  const { query } = createQuery(this, UpdateQueryBuilder);
609
633
  return query.update(data);
610
634
  },