joist-orm 1.0.677 → 1.0.681

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 (67) hide show
  1. package/build/src/EntityManager.d.ts +7 -4
  2. package/build/src/EntityManager.js +25 -12
  3. package/build/src/EntityManager.js.map +1 -1
  4. package/build/src/QueryBuilder.js +8 -10
  5. package/build/src/QueryBuilder.js.map +1 -1
  6. package/build/src/dataloaders/oneToManyDataLoader.js +1 -1
  7. package/build/src/dataloaders/oneToManyDataLoader.js.map +1 -1
  8. package/build/src/dataloaders/oneToOneDataLoader.d.ts +2 -2
  9. package/build/src/dataloaders/oneToOneDataLoader.js +2 -2
  10. package/build/src/dataloaders/oneToOneDataLoader.js.map +1 -1
  11. package/build/src/drivers/InMemoryDriver.d.ts +3 -2
  12. package/build/src/drivers/InMemoryDriver.js +4 -7
  13. package/build/src/drivers/InMemoryDriver.js.map +1 -1
  14. package/build/src/drivers/PostgresDriver.d.ts +3 -2
  15. package/build/src/drivers/PostgresDriver.js +2 -3
  16. package/build/src/drivers/PostgresDriver.js.map +1 -1
  17. package/build/src/drivers/driver.d.ts +2 -2
  18. package/build/src/index.d.ts +3 -73
  19. package/build/src/index.js +2 -49
  20. package/build/src/index.js.map +1 -1
  21. package/build/src/keys.js +2 -2
  22. package/build/src/keys.js.map +1 -1
  23. package/build/src/loadLens.d.ts +2 -2
  24. package/build/src/loadLens.js +1 -1
  25. package/build/src/loadLens.js.map +1 -1
  26. package/build/src/relations/Collection.d.ts +23 -0
  27. package/build/src/relations/Collection.js +19 -0
  28. package/build/src/relations/Collection.js.map +1 -0
  29. package/build/src/relations/CustomCollection.d.ts +3 -0
  30. package/build/src/relations/CustomCollection.js +6 -1
  31. package/build/src/relations/CustomCollection.js.map +1 -1
  32. package/build/src/relations/CustomReference.d.ts +5 -0
  33. package/build/src/relations/CustomReference.js +8 -1
  34. package/build/src/relations/CustomReference.js.map +1 -1
  35. package/build/src/relations/ManyToManyCollection.d.ts +5 -0
  36. package/build/src/relations/ManyToManyCollection.js +13 -2
  37. package/build/src/relations/ManyToManyCollection.js.map +1 -1
  38. package/build/src/relations/ManyToOneReference.d.ts +21 -2
  39. package/build/src/relations/ManyToOneReference.js +25 -9
  40. package/build/src/relations/ManyToOneReference.js.map +1 -1
  41. package/build/src/relations/OneToManyCollection.d.ts +5 -0
  42. package/build/src/relations/OneToManyCollection.js +14 -3
  43. package/build/src/relations/OneToManyCollection.js.map +1 -1
  44. package/build/src/relations/OneToOneReference.d.ts +31 -2
  45. package/build/src/relations/OneToOneReference.js +30 -6
  46. package/build/src/relations/OneToOneReference.js.map +1 -1
  47. package/build/src/relations/PolymorphicReference.d.ts +19 -1
  48. package/build/src/relations/PolymorphicReference.js +28 -15
  49. package/build/src/relations/PolymorphicReference.js.map +1 -1
  50. package/build/src/relations/Reference.d.ts +29 -0
  51. package/build/src/relations/Reference.js +23 -0
  52. package/build/src/relations/Reference.js.map +1 -0
  53. package/build/src/relations/Relation.d.ts +10 -0
  54. package/build/src/relations/Relation.js +13 -0
  55. package/build/src/relations/Relation.js.map +1 -0
  56. package/build/src/relations/hasAsyncProperty.d.ts +4 -0
  57. package/build/src/relations/hasAsyncProperty.js +13 -4
  58. package/build/src/relations/hasAsyncProperty.js.map +1 -1
  59. package/build/src/relations/hasManyDerived.js +1 -1
  60. package/build/src/relations/hasManyDerived.js.map +1 -1
  61. package/build/src/relations/index.d.ts +9 -15
  62. package/build/src/relations/index.js +21 -34
  63. package/build/src/relations/index.js.map +1 -1
  64. package/build/src/serde.js +8 -16
  65. package/build/src/serde.js.map +1 -1
  66. package/build/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +2 -2
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
+ var _a, _b, _c;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PolymorphicReference = void 0;
4
+ exports.PolymorphicReferenceImpl = exports.isPolymorphicReference = exports.hasOnePolymorphic = void 0;
4
5
  const EntityManager_1 = require("../EntityManager");
5
6
  const index_1 = require("../index");
6
7
  const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
7
8
  const OneToManyCollection_1 = require("./OneToManyCollection");
9
+ const Reference_1 = require("./Reference");
10
+ const Relation_1 = require("./Relation");
11
+ function hasOnePolymorphic(fieldName) {
12
+ const entity = EntityManager_1.currentlyInstantiatingEntity;
13
+ return new PolymorphicReferenceImpl(entity, fieldName);
14
+ }
15
+ exports.hasOnePolymorphic = hasOnePolymorphic;
16
+ /** Type guard utility for determining if an entity field is a PolymorphicReference. */
17
+ function isPolymorphicReference(maybeReference) {
18
+ return maybeReference instanceof PolymorphicReferenceImpl;
19
+ }
20
+ exports.isPolymorphicReference = isPolymorphicReference;
8
21
  /**
9
22
  * Manages a set of foreign keys from one entity to another, i.e. `Comment.parent --> Book | BookReview`.
10
23
  *
@@ -16,13 +29,16 @@ const OneToManyCollection_1 = require("./OneToManyCollection");
16
29
  * essentially be half of a one-to-one relationship, but we'll keep using this reference on the "owning" side; the other
17
30
  * side, i.e. `BookReview.comment` will use a `OneToOneReference` to point back to us.
18
31
  */
19
- class PolymorphicReference extends AbstractRelationImpl_1.AbstractRelationImpl {
32
+ class PolymorphicReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
20
33
  constructor(entity, fieldName) {
21
34
  super();
22
35
  this.entity = entity;
23
36
  this.fieldName = fieldName;
24
37
  // We need a separate boolean to b/c loaded == undefined can still mean "_isLoaded" for nullable fks.
25
38
  this._isLoaded = false;
39
+ this[_a] = null;
40
+ this[_b] = null;
41
+ this[_c] = null;
26
42
  this.field = (0, EntityManager_1.getMetadata)(entity).fields.find((f) => f.fieldName === this.fieldName);
27
43
  }
28
44
  get currentComponent() {
@@ -30,8 +46,7 @@ class PolymorphicReference extends AbstractRelationImpl_1.AbstractRelationImpl {
30
46
  return this.field.components.find((c) => c.otherMetadata().cstr === cstr);
31
47
  }
32
48
  get isCascadeDelete() {
33
- var _a, _b;
34
- return ((_b = (_a = this.currentComponent) === null || _a === void 0 ? void 0 : _a.otherMetadata().config.__data.cascadeDeleteFields.includes(this.fieldName)) !== null && _b !== void 0 ? _b : false);
49
+ return (this.currentComponent?.otherMetadata().config.__data.cascadeDeleteFields.includes(this.fieldName) ?? false);
35
50
  }
36
51
  async load(opts) {
37
52
  (0, index_1.ensureNotDeleted)(this.entity, { ignore: "pending" });
@@ -131,18 +146,17 @@ class PolymorphicReference extends AbstractRelationImpl_1.AbstractRelationImpl {
131
146
  }
132
147
  // Internal method used by PolymorphicReference
133
148
  setImpl(other) {
134
- var _a, _b;
135
- if ((other === null || other === void 0 ? void 0 : other.isNewEntity) ? other === this.loaded : this.id === (other === null || other === void 0 ? void 0 : other.id)) {
149
+ if (other?.isNewEntity ? other === this.loaded : this.id === other?.id) {
136
150
  return;
137
151
  }
138
152
  if (other !== undefined && !this.field.components.some((c) => other instanceof c.otherMetadata().cstr)) {
139
153
  (0, index_1.fail)(`${other} cannot be set as '${this.field.fieldName}' on ${this.entity}`);
140
154
  }
141
155
  // we may not be loaded yet, but our previous entity might already be in the UoW
142
- const previousLoaded = (_a = this.loaded) !== null && _a !== void 0 ? _a : this.maybeFindExisting();
156
+ const previousLoaded = this.loaded ?? this.maybeFindExisting();
143
157
  (0, index_1.ensureNotDeleted)(this.entity, { ignore: "pending" });
144
158
  // Prefer to keep the id in our data hash, but if this is a new entity w/o an id, use the entity itself
145
- const changed = (0, index_1.setField)(this.entity, this.fieldName, (_b = other === null || other === void 0 ? void 0 : other.id) !== null && _b !== void 0 ? _b : other);
159
+ const changed = (0, index_1.setField)(this.entity, this.fieldName, other?.id ?? other);
146
160
  if (!changed) {
147
161
  return;
148
162
  }
@@ -170,28 +184,27 @@ class PolymorphicReference extends AbstractRelationImpl_1.AbstractRelationImpl {
170
184
  }
171
185
  // We need to keep U in data[fieldName] to handle entities without an id assigned yet.
172
186
  current(opts) {
173
- var _a;
174
- const current = this.entity.__orm.data[(_a = this.fieldName) !== null && _a !== void 0 ? _a : ""];
187
+ const current = this.entity.__orm.data[this.fieldName ?? ""];
175
188
  if (current !== undefined && (0, EntityManager_1.isEntity)(current)) {
176
189
  return this.filterDeleted(current, opts);
177
190
  }
178
191
  return current;
179
192
  }
180
193
  toString() {
181
- var _a, _b;
182
- return `PolymorphicReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${(_a = this.currentComponent) === null || _a === void 0 ? void 0 : _a.otherMetadata().type}, otherFieldName: ${(_b = this.currentComponent) === null || _b === void 0 ? void 0 : _b.otherFieldName}, id: ${this.id})`;
194
+ return `PolymorphicReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.currentComponent?.otherMetadata().type}, otherFieldName: ${this.currentComponent?.otherFieldName}, id: ${this.id})`;
183
195
  }
184
196
  filterDeleted(entity, opts) {
185
- return (opts === null || opts === void 0 ? void 0 : opts.withDeleted) === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
197
+ return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
186
198
  }
187
199
  /** Returns the other relation that points back at us, i.e. we're `comment.parent_book_id` and this is `Book.comments`. */
188
200
  getOtherRelation(other) {
189
201
  const component = this.field.components.find((c) => c.otherMetadata().cstr === other.constructor);
190
- return other[component === null || component === void 0 ? void 0 : component.otherFieldName];
202
+ return other[component?.otherFieldName];
191
203
  }
192
204
  maybeFindExisting() {
193
205
  return this.id !== undefined ? (0, index_1.getEm)(this.entity)["findExistingInstance"](this.id) : undefined;
194
206
  }
195
207
  }
196
- exports.PolymorphicReference = PolymorphicReference;
208
+ exports.PolymorphicReferenceImpl = PolymorphicReferenceImpl;
209
+ _a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
197
210
  //# sourceMappingURL=PolymorphicReference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Entity, IdOf } from "../EntityManager";
2
+ import { Relation } from "./Relation";
3
+ export declare const ReferenceN: unique symbol;
4
+ /**
5
+ * A many-to-one / foreign key from `T` to `U`, i.e. book to author.
6
+ *
7
+ * The `N` generic is for whether the field is optional (i.e. the foreign key column is
8
+ * nullable). If it is optional, `N` will be `undefined`, which makes the return types
9
+ * `U | undefined`. If it is not optional, `N` will be `never`, making the return types
10
+ * `U | never` which becomes just `U`.
11
+ */
12
+ export interface Reference<T extends Entity, U extends Entity, N extends never | undefined> extends Relation<T, U> {
13
+ readonly isLoaded: boolean;
14
+ load(opts?: {
15
+ withDeleted: boolean;
16
+ }): Promise<U | N>;
17
+ set(other: U | N): void;
18
+ [ReferenceN]: N;
19
+ }
20
+ /** Adds a known-safe `get` accessor. */
21
+ export interface LoadedReference<T extends Entity, U extends Entity, N extends never | undefined> extends Reference<T, U, N> {
22
+ id: IdOf<U> | N;
23
+ get: U | N;
24
+ getWithDeleted: U | N;
25
+ }
26
+ /** Type guard utility for determining if an entity field is a Reference. */
27
+ export declare function isReference(maybeReference: any): maybeReference is Reference<any, any, any>;
28
+ /** Type guard utility for determining if an entity field is a loaded Reference. */
29
+ export declare function isLoadedReference(maybeReference: any): maybeReference is Reference<any, any, any> & LoadedReference<any, any, any>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLoadedReference = exports.isReference = exports.ReferenceN = void 0;
4
+ const CustomReference_1 = require("./CustomReference");
5
+ const ManyToOneReference_1 = require("./ManyToOneReference");
6
+ const OneToOneReference_1 = require("./OneToOneReference");
7
+ const PolymorphicReference_1 = require("./PolymorphicReference");
8
+ // Exported and used in sub-interfaces/types per https://stackoverflow.com/a/70437874/355031
9
+ exports.ReferenceN = Symbol();
10
+ /** Type guard utility for determining if an entity field is a Reference. */
11
+ function isReference(maybeReference) {
12
+ return (maybeReference instanceof OneToOneReference_1.OneToOneReferenceImpl ||
13
+ maybeReference instanceof ManyToOneReference_1.ManyToOneReferenceImpl ||
14
+ maybeReference instanceof CustomReference_1.CustomReference ||
15
+ maybeReference instanceof PolymorphicReference_1.PolymorphicReferenceImpl);
16
+ }
17
+ exports.isReference = isReference;
18
+ /** Type guard utility for determining if an entity field is a loaded Reference. */
19
+ function isLoadedReference(maybeReference) {
20
+ return isReference(maybeReference) && maybeReference.isLoaded;
21
+ }
22
+ exports.isLoadedReference = isLoadedReference;
23
+ //# sourceMappingURL=Reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../../src/relations/Reference.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,6DAA8D;AAC9D,2DAA4D;AAC5D,iEAAkE;AAGlE,4FAA4F;AAC/E,QAAA,UAAU,GAAG,MAAM,EAAE,CAAC;AAqCnC,4EAA4E;AAC5E,SAAgB,WAAW,CAAC,cAAmB;IAC7C,OAAO,CACL,cAAc,YAAY,yCAAqB;QAC/C,cAAc,YAAY,2CAAsB;QAChD,cAAc,YAAY,iCAAe;QACzC,cAAc,YAAY,+CAAwB,CACnD,CAAC;AACJ,CAAC;AAPD,kCAOC;AAED,mFAAmF;AACnF,SAAgB,iBAAiB,CAC/B,cAAmB;IAEnB,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC;AAChE,CAAC;AAJD,8CAIC"}
@@ -0,0 +1,10 @@
1
+ import { Entity } from "../EntityManager";
2
+ export declare const RelationT: unique symbol;
3
+ export declare const RelationU: unique symbol;
4
+ /** A relationship from `T` to `U`, could be any of many-to-one, one-to-many, or many-to-many. */
5
+ export interface Relation<T extends Entity, U extends Entity> {
6
+ [RelationT]: T;
7
+ [RelationU]: U;
8
+ }
9
+ /** Type guard utility for determining if an entity field is a Relation. */
10
+ export declare function isRelation(maybeRelation: any): maybeRelation is Relation<any, any>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRelation = exports.RelationU = exports.RelationT = void 0;
4
+ const Collection_1 = require("./Collection");
5
+ const Reference_1 = require("./Reference");
6
+ exports.RelationT = Symbol();
7
+ exports.RelationU = Symbol();
8
+ /** Type guard utility for determining if an entity field is a Relation. */
9
+ function isRelation(maybeRelation) {
10
+ return (0, Reference_1.isReference)(maybeRelation) || (0, Collection_1.isCollection)(maybeRelation);
11
+ }
12
+ exports.isRelation = isRelation;
13
+ //# sourceMappingURL=Relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relation.js","sourceRoot":"","sources":["../../../src/relations/Relation.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAC5C,2CAA0C;AAE7B,QAAA,SAAS,GAAG,MAAM,EAAE,CAAC;AACrB,QAAA,SAAS,GAAG,MAAM,EAAE,CAAC;AAclC,2EAA2E;AAC3E,SAAgB,UAAU,CAAC,aAAkB;IAC3C,OAAO,IAAA,uBAAW,EAAC,aAAa,CAAC,IAAI,IAAA,yBAAY,EAAC,aAAa,CAAC,CAAC;AACnE,CAAC;AAFD,gCAEC"}
@@ -28,4 +28,8 @@ export declare class AsyncPropertyImpl<T extends Entity, H extends LoadHint<T>,
28
28
  get get(): V;
29
29
  get isLoaded(): boolean;
30
30
  }
31
+ /** Type guard utility for determining if an entity field is an AsyncProperty. */
32
+ export declare function isAsyncProperty(maybeAsyncProperty: any): maybeAsyncProperty is AsyncProperty<any, any>;
33
+ /** Type guard utility for determining if an entity field is a loaded AsyncProperty. */
34
+ export declare function isLoadedAsyncProperty(maybeAsyncProperty: any): maybeAsyncProperty is AsyncProperty<any, any> & LoadedProperty<any, any>;
31
35
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncPropertyImpl = exports.hasAsyncProperty = void 0;
3
+ exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.AsyncPropertyImpl = exports.hasAsyncProperty = void 0;
4
4
  const index_1 = require("../index");
5
5
  const I = Symbol();
6
6
  /**
@@ -23,15 +23,14 @@ class AsyncPropertyImpl {
23
23
  this.loaded = false;
24
24
  }
25
25
  load() {
26
- var _a;
27
26
  const { entity, loadHint, fn } = this;
28
27
  if (!this.loaded) {
29
- return (_a = this.loadPromise) !== null && _a !== void 0 ? _a : (this.loadPromise = (0, index_1.getEm)(entity)
28
+ return (this.loadPromise ?? (this.loadPromise = (0, index_1.getEm)(entity)
30
29
  .populate(entity, loadHint)
31
30
  .then((loaded) => {
32
31
  this.loaded = true;
33
32
  return fn(loaded);
34
- }));
33
+ })));
35
34
  }
36
35
  return Promise.resolve(this.get);
37
36
  }
@@ -44,4 +43,14 @@ class AsyncPropertyImpl {
44
43
  }
45
44
  }
46
45
  exports.AsyncPropertyImpl = AsyncPropertyImpl;
46
+ /** Type guard utility for determining if an entity field is an AsyncProperty. */
47
+ function isAsyncProperty(maybeAsyncProperty) {
48
+ return maybeAsyncProperty instanceof AsyncPropertyImpl;
49
+ }
50
+ exports.isAsyncProperty = isAsyncProperty;
51
+ /** Type guard utility for determining if an entity field is a loaded AsyncProperty. */
52
+ function isLoadedAsyncProperty(maybeAsyncProperty) {
53
+ return isAsyncProperty(maybeAsyncProperty) && maybeAsyncProperty.isLoaded;
54
+ }
55
+ exports.isLoadedAsyncProperty = isLoadedAsyncProperty;
47
56
  //# sourceMappingURL=hasAsyncProperty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasAsyncProperty.js","sourceRoot":"","sources":["../../../src/relations/hasAsyncProperty.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAYnB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,MAAS,EACT,QAAW,EACX,EAA+B;IAE/B,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAND,4CAMC;AAED,MAAa,iBAAiB;IAG5B,YAAoB,MAAS,EAAU,QAAW,EAAU,EAA+B;QAAvE,WAAM,GAAN,MAAM,CAAG;QAAU,aAAQ,GAAR,QAAQ,CAAG;QAAU,OAAE,GAAF,EAAE,CAA6B;QAFnF,WAAM,GAAG,KAAK,CAAC;IAEuE,CAAC;IAE/F,IAAI;;QACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,aAAO,IAAI,CAAC,WAAW,oCAAhB,IAAI,CAAC,WAAW,GAAK,IAAA,aAAK,EAAC,MAAM,CAAC;iBACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,EAAC;SACN;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG;QACL,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAsB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA1BD,8CA0BC"}
1
+ {"version":3,"file":"hasAsyncProperty.js","sourceRoot":"","sources":["../../../src/relations/hasAsyncProperty.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAYnB;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,MAAS,EACT,QAAW,EACX,EAA+B;IAE/B,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAND,4CAMC;AAED,MAAa,iBAAiB;IAG5B,YAAoB,MAAS,EAAU,QAAW,EAAU,EAA+B;QAAvE,WAAM,GAAN,MAAM,CAAG;QAAU,aAAQ,GAAR,QAAQ,CAAG;QAAU,OAAE,GAAF,EAAE,CAA6B;QAFnF,WAAM,GAAG,KAAK,CAAC;IAEuE,CAAC;IAE/F,IAAI;QACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,WAAW,KAAhB,IAAI,CAAC,WAAW,GAAK,IAAA,aAAK,EAAC,MAAM,CAAC;iBACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,EAAC,CAAC;SACP;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG;QACL,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAsB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA1BD,8CA0BC;AAED,iFAAiF;AACjF,SAAgB,eAAe,CAAC,kBAAuB;IACrD,OAAO,kBAAkB,YAAY,iBAAiB,CAAC;AACzD,CAAC;AAFD,0CAEC;AAED,uFAAuF;AACvF,SAAgB,qBAAqB,CACnC,kBAAuB;IAEvB,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC;AAC5E,CAAC;AAJD,sDAIC"}
@@ -14,7 +14,7 @@ function hasManyDerived(loadHint, opts) {
14
14
  const entity = __1.currentlyInstantiatingEntity;
15
15
  const { load, ...rest } = opts;
16
16
  return new CustomCollection_1.CustomCollection(entity, {
17
- load: load !== null && load !== void 0 ? load : ((entity) => (0, __1.getEm)(entity).populate(entity, loadHint)),
17
+ load: load ?? ((entity) => (0, __1.getEm)(entity).populate(entity, loadHint)),
18
18
  ...rest,
19
19
  });
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasManyDerived.js","sourceRoot":"","sources":["../../../src/relations/hasManyDerived.ts"],"names":[],"mappings":";;;AAAA,2BAAsE;AAEtE,yDAAsD;AAUtD;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAW,EACX,IAAiC;IAEjC,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,mCAAgB,CAAO,MAAM,EAAE;QACxC,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,GAAI,IAAY;KACjB,CAAC,CAAC;AACL,CAAC;AAVD,wCAUC"}
1
+ {"version":3,"file":"hasManyDerived.js","sourceRoot":"","sources":["../../../src/relations/hasManyDerived.ts"],"names":[],"mappings":";;;AAAA,2BAAsE;AAEtE,yDAAsD;AAUtD;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAW,EACX,IAAiC;IAEjC,MAAM,MAAM,GAAM,gCAAiC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,mCAAgB,CAAO,MAAM,EAAE;QACxC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,SAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,GAAI,IAAY;KACjB,CAAC,CAAC;AACL,CAAC;AAVD,wCAUC"}
@@ -1,21 +1,15 @@
1
- import { Collection, Entity, EntityMetadata, Reference } from "../";
1
+ export { Collection, isCollection, isLoadedCollection, LoadedCollection } from "./Collection";
2
2
  export { CustomCollection } from "./CustomCollection";
3
3
  export { CustomReference } from "./CustomReference";
4
- export { AsyncProperty, hasAsyncProperty, LoadedProperty } from "./hasAsyncProperty";
4
+ export { AsyncProperty, hasAsyncProperty, isAsyncProperty, isLoadedAsyncProperty, LoadedProperty, } from "./hasAsyncProperty";
5
5
  export { hasManyDerived } from "./hasManyDerived";
6
6
  export { hasManyThrough } from "./hasManyThrough";
7
7
  export { hasOneDerived } from "./hasOneDerived";
8
8
  export { hasOneThrough } from "./hasOneThrough";
9
- export { ManyToManyCollection } from "./ManyToManyCollection";
10
- export { ManyToOneReference } from "./ManyToOneReference";
11
- export { OneToManyCollection } from "./OneToManyCollection";
12
- export { OneToOneReference } from "./OneToOneReference";
13
- /** An alias for creating `OneToManyCollection`s. */
14
- export declare function hasMany<T extends Entity, U extends Entity>(otherMeta: EntityMetadata<U>, fieldName: keyof T, otherFieldName: keyof U, otherColumnName: string): Collection<T, U>;
15
- /** An alias for creating `ManyToOneReference`s. */
16
- export declare function hasOne<T extends Entity, U extends Entity, N extends never | undefined>(otherMeta: EntityMetadata<U>, fieldName: keyof T, otherFieldName: keyof U): Reference<T, U, N>;
17
- export declare function hasOnePolymorphic<T extends Entity, U extends Entity, N extends never | undefined>(fieldName: keyof T): Reference<T, U, N>;
18
- /** An alias for creating `OneToOneReference`s. */
19
- export declare function hasOneToOne<T extends Entity, U extends Entity>(otherMeta: EntityMetadata<U>, fieldName: keyof T, otherFieldName: keyof U, otherColumnName: string): Reference<T, U, undefined>;
20
- /** An alias for creating `ManyToManyCollections`s. */
21
- export declare function hasManyToMany<T extends Entity, U extends Entity>(joinTableName: string, fieldName: keyof T, columnName: string, otherMeta: EntityMetadata<U>, otherFieldName: keyof U, otherColumnName: string): Collection<T, U>;
9
+ export { hasManyToMany, ManyToManyCollection } from "./ManyToManyCollection";
10
+ export { hasOne, isManyToOneReference, ManyToOneReference } from "./ManyToOneReference";
11
+ export { hasMany, OneToManyCollection } from "./OneToManyCollection";
12
+ export { hasOneToOne, isLoadedOneToOneReference, isOneToOneReference, OneToOneReference } from "./OneToOneReference";
13
+ export { hasOnePolymorphic, isPolymorphicReference, PolymorphicReference } from "./PolymorphicReference";
14
+ export { isLoadedReference, isReference, LoadedReference, Reference } from "./Reference";
15
+ export { isRelation, Relation } from "./Relation";
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasManyToMany = exports.hasOneToOne = exports.hasOnePolymorphic = exports.hasOne = exports.hasMany = exports.OneToOneReference = exports.OneToManyCollection = exports.ManyToOneReference = exports.ManyToManyCollection = exports.hasOneThrough = exports.hasOneDerived = exports.hasManyThrough = exports.hasManyDerived = exports.hasAsyncProperty = exports.CustomReference = exports.CustomCollection = void 0;
4
- const __1 = require("../");
5
- const PolymorphicReference_1 = require("./PolymorphicReference");
3
+ exports.isRelation = exports.isReference = exports.isLoadedReference = exports.isPolymorphicReference = exports.hasOnePolymorphic = exports.isOneToOneReference = exports.isLoadedOneToOneReference = exports.hasOneToOne = exports.OneToManyCollection = exports.hasMany = exports.isManyToOneReference = exports.hasOne = exports.ManyToManyCollection = exports.hasManyToMany = exports.hasOneThrough = exports.hasOneDerived = exports.hasManyThrough = exports.hasManyDerived = exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.hasAsyncProperty = exports.CustomReference = exports.CustomCollection = exports.isLoadedCollection = exports.isCollection = void 0;
4
+ var Collection_1 = require("./Collection");
5
+ Object.defineProperty(exports, "isCollection", { enumerable: true, get: function () { return Collection_1.isCollection; } });
6
+ Object.defineProperty(exports, "isLoadedCollection", { enumerable: true, get: function () { return Collection_1.isLoadedCollection; } });
6
7
  var CustomCollection_1 = require("./CustomCollection");
7
8
  Object.defineProperty(exports, "CustomCollection", { enumerable: true, get: function () { return CustomCollection_1.CustomCollection; } });
8
9
  var CustomReference_1 = require("./CustomReference");
9
10
  Object.defineProperty(exports, "CustomReference", { enumerable: true, get: function () { return CustomReference_1.CustomReference; } });
10
11
  var hasAsyncProperty_1 = require("./hasAsyncProperty");
11
12
  Object.defineProperty(exports, "hasAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.hasAsyncProperty; } });
13
+ Object.defineProperty(exports, "isAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.isAsyncProperty; } });
14
+ Object.defineProperty(exports, "isLoadedAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.isLoadedAsyncProperty; } });
12
15
  var hasManyDerived_1 = require("./hasManyDerived");
13
16
  Object.defineProperty(exports, "hasManyDerived", { enumerable: true, get: function () { return hasManyDerived_1.hasManyDerived; } });
14
17
  var hasManyThrough_1 = require("./hasManyThrough");
@@ -18,40 +21,24 @@ Object.defineProperty(exports, "hasOneDerived", { enumerable: true, get: functio
18
21
  var hasOneThrough_1 = require("./hasOneThrough");
19
22
  Object.defineProperty(exports, "hasOneThrough", { enumerable: true, get: function () { return hasOneThrough_1.hasOneThrough; } });
20
23
  var ManyToManyCollection_1 = require("./ManyToManyCollection");
24
+ Object.defineProperty(exports, "hasManyToMany", { enumerable: true, get: function () { return ManyToManyCollection_1.hasManyToMany; } });
21
25
  Object.defineProperty(exports, "ManyToManyCollection", { enumerable: true, get: function () { return ManyToManyCollection_1.ManyToManyCollection; } });
22
26
  var ManyToOneReference_1 = require("./ManyToOneReference");
23
- Object.defineProperty(exports, "ManyToOneReference", { enumerable: true, get: function () { return ManyToOneReference_1.ManyToOneReference; } });
27
+ Object.defineProperty(exports, "hasOne", { enumerable: true, get: function () { return ManyToOneReference_1.hasOne; } });
28
+ Object.defineProperty(exports, "isManyToOneReference", { enumerable: true, get: function () { return ManyToOneReference_1.isManyToOneReference; } });
24
29
  var OneToManyCollection_1 = require("./OneToManyCollection");
30
+ Object.defineProperty(exports, "hasMany", { enumerable: true, get: function () { return OneToManyCollection_1.hasMany; } });
25
31
  Object.defineProperty(exports, "OneToManyCollection", { enumerable: true, get: function () { return OneToManyCollection_1.OneToManyCollection; } });
26
32
  var OneToOneReference_1 = require("./OneToOneReference");
27
- Object.defineProperty(exports, "OneToOneReference", { enumerable: true, get: function () { return OneToOneReference_1.OneToOneReference; } });
28
- /** An alias for creating `OneToManyCollection`s. */
29
- function hasMany(otherMeta, fieldName, otherFieldName, otherColumnName) {
30
- const entity = __1.currentlyInstantiatingEntity;
31
- return new __1.OneToManyCollection(entity, otherMeta, fieldName, otherFieldName, otherColumnName);
32
- }
33
- exports.hasMany = hasMany;
34
- /** An alias for creating `ManyToOneReference`s. */
35
- function hasOne(otherMeta, fieldName, otherFieldName) {
36
- const entity = __1.currentlyInstantiatingEntity;
37
- return new __1.ManyToOneReference(entity, otherMeta, fieldName, otherFieldName);
38
- }
39
- exports.hasOne = hasOne;
40
- function hasOnePolymorphic(fieldName) {
41
- const entity = __1.currentlyInstantiatingEntity;
42
- return new PolymorphicReference_1.PolymorphicReference(entity, fieldName);
43
- }
44
- exports.hasOnePolymorphic = hasOnePolymorphic;
45
- /** An alias for creating `OneToOneReference`s. */
46
- function hasOneToOne(otherMeta, fieldName, otherFieldName, otherColumnName) {
47
- const entity = __1.currentlyInstantiatingEntity;
48
- return new __1.OneToOneReference(entity, otherMeta, fieldName, otherFieldName, otherColumnName);
49
- }
50
- exports.hasOneToOne = hasOneToOne;
51
- /** An alias for creating `ManyToManyCollections`s. */
52
- function hasManyToMany(joinTableName, fieldName, columnName, otherMeta, otherFieldName, otherColumnName) {
53
- const entity = __1.currentlyInstantiatingEntity;
54
- return new __1.ManyToManyCollection(joinTableName, entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName);
55
- }
56
- exports.hasManyToMany = hasManyToMany;
33
+ Object.defineProperty(exports, "hasOneToOne", { enumerable: true, get: function () { return OneToOneReference_1.hasOneToOne; } });
34
+ Object.defineProperty(exports, "isLoadedOneToOneReference", { enumerable: true, get: function () { return OneToOneReference_1.isLoadedOneToOneReference; } });
35
+ Object.defineProperty(exports, "isOneToOneReference", { enumerable: true, get: function () { return OneToOneReference_1.isOneToOneReference; } });
36
+ var PolymorphicReference_1 = require("./PolymorphicReference");
37
+ Object.defineProperty(exports, "hasOnePolymorphic", { enumerable: true, get: function () { return PolymorphicReference_1.hasOnePolymorphic; } });
38
+ Object.defineProperty(exports, "isPolymorphicReference", { enumerable: true, get: function () { return PolymorphicReference_1.isPolymorphicReference; } });
39
+ var Reference_1 = require("./Reference");
40
+ Object.defineProperty(exports, "isLoadedReference", { enumerable: true, get: function () { return Reference_1.isLoadedReference; } });
41
+ Object.defineProperty(exports, "isReference", { enumerable: true, get: function () { return Reference_1.isReference; } });
42
+ var Relation_1 = require("./Relation");
43
+ Object.defineProperty(exports, "isRelation", { enumerable: true, get: function () { return Relation_1.isRelation; } });
57
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/index.ts"],"names":[],"mappings":";;;AAAA,2BAUa;AACb,iEAA8D;AAE9D,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAqF;AAA7D,oHAAA,gBAAgB,OAAA;AACxC,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,oDAAoD;AACpD,SAAgB,OAAO,CACrB,SAA4B,EAC5B,SAAkB,EAClB,cAAuB,EACvB,eAAuB;IAEvB,MAAM,MAAM,GAAG,gCAAiC,CAAC;IACjD,OAAO,IAAI,uBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AAChG,CAAC;AARD,0BAQC;AAED,mDAAmD;AACnD,SAAgB,MAAM,CACpB,SAA4B,EAC5B,SAAkB,EAClB,cAAuB;IAEvB,MAAM,MAAM,GAAG,gCAAiC,CAAC;IACjD,OAAO,IAAI,sBAAkB,CAAU,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACvF,CAAC;AAPD,wBAOC;AAED,SAAgB,iBAAiB,CAC/B,SAAkB;IAElB,MAAM,MAAM,GAAG,gCAAiC,CAAC;IACjD,OAAO,IAAI,2CAAoB,CAAU,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AALD,8CAKC;AAED,kDAAkD;AAClD,SAAgB,WAAW,CACzB,SAA4B,EAC5B,SAAkB,EAClB,cAAuB,EACvB,eAAuB;IAEvB,MAAM,MAAM,GAAG,gCAAiC,CAAC;IACjD,OAAO,IAAI,qBAAiB,CAAO,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AACpG,CAAC;AARD,kCAQC;AAED,sDAAsD;AACtD,SAAgB,aAAa,CAC3B,aAAqB,EACrB,SAAkB,EAClB,UAAkB,EAClB,SAA4B,EAC5B,cAAuB,EACvB,eAAuB;IAEvB,MAAM,MAAM,GAAG,gCAAiC,CAAC;IACjD,OAAO,IAAI,wBAAoB,CAC7B,aAAa,EACb,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,EACd,eAAe,CAChB,CAAC;AACJ,CAAC;AAlBD,sCAkBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/index.ts"],"names":[],"mappings":";;;AAAA,2CAA8F;AAAzE,0GAAA,YAAY,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACrD,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAM4B;AAJ1B,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AACf,yHAAA,qBAAqB,OAAA;AAGvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+DAA6E;AAApE,qHAAA,aAAa,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AAC5C,2DAAwF;AAA/E,4GAAA,MAAM,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACrC,6DAAqE;AAA5D,8GAAA,OAAO,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AACrC,yDAAqH;AAA5G,gHAAA,WAAW,OAAA;AAAE,8HAAA,yBAAyB,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AACpE,+DAAyG;AAAhG,yHAAA,iBAAiB,OAAA;AAAE,8HAAA,sBAAsB,OAAA;AAClD,yCAAyF;AAAhF,8GAAA,iBAAiB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACvC,uCAAkD;AAAzC,sGAAA,UAAU,OAAA"}
@@ -101,8 +101,7 @@ class PolymorphicKeySerde {
101
101
  }
102
102
  setOnEntity(data, row) {
103
103
  var _a;
104
- var _b;
105
- (_a = data[_b = this.fieldName]) !== null && _a !== void 0 ? _a : (data[_b] = (0, index_1.keyToString)(this.otherMeta(), row[this.columnName]));
104
+ data[_a = this.fieldName] ?? (data[_a] = (0, index_1.keyToString)(this.otherMeta(), row[this.columnName]));
106
105
  }
107
106
  setOnRow(data, row) {
108
107
  const id = (0, index_1.maybeResolveReferenceToId)(data[this.fieldName]);
@@ -128,20 +127,16 @@ class EnumFieldSerde {
128
127
  this.enumObject = enumObject;
129
128
  }
130
129
  setOnEntity(data, row) {
131
- var _a;
132
- data[this.fieldName] = (_a = this.enumObject.findById(row[this.columnName])) === null || _a === void 0 ? void 0 : _a.code;
130
+ data[this.fieldName] = this.enumObject.findById(row[this.columnName])?.code;
133
131
  }
134
132
  setOnRow(data, row) {
135
- var _a;
136
- row[this.columnName] = (_a = this.enumObject.findByCode(data[this.fieldName])) === null || _a === void 0 ? void 0 : _a.id;
133
+ row[this.columnName] = this.enumObject.findByCode(data[this.fieldName])?.id;
137
134
  }
138
135
  getFromEntity(data) {
139
- var _a;
140
- return (_a = this.enumObject.findByCode(data[this.fieldName])) === null || _a === void 0 ? void 0 : _a.id;
136
+ return this.enumObject.findByCode(data[this.fieldName])?.id;
141
137
  }
142
138
  mapToDb(value) {
143
- var _a;
144
- return (_a = this.enumObject.findByCode(value)) === null || _a === void 0 ? void 0 : _a.id;
139
+ return this.enumObject.findByCode(value)?.id;
145
140
  }
146
141
  }
147
142
  exports.EnumFieldSerde = EnumFieldSerde;
@@ -152,16 +147,13 @@ class EnumArrayFieldSerde {
152
147
  this.enumObject = enumObject;
153
148
  }
154
149
  setOnEntity(data, row) {
155
- var _a;
156
- data[this.fieldName] = ((_a = row[this.columnName]) === null || _a === void 0 ? void 0 : _a.map((id) => this.enumObject.findById(id).code)) || [];
150
+ data[this.fieldName] = row[this.columnName]?.map((id) => this.enumObject.findById(id).code) || [];
157
151
  }
158
152
  setOnRow(data, row) {
159
- var _a;
160
- row[this.columnName] = ((_a = data[this.fieldName]) === null || _a === void 0 ? void 0 : _a.map((code) => this.enumObject.getByCode(code).id)) || [];
153
+ row[this.columnName] = data[this.fieldName]?.map((code) => this.enumObject.getByCode(code).id) || [];
161
154
  }
162
155
  getFromEntity(data) {
163
- var _a;
164
- return ((_a = data[this.fieldName]) === null || _a === void 0 ? void 0 : _a.map((code) => this.enumObject.getByCode(code).id)) || [];
156
+ return data[this.fieldName]?.map((code) => this.enumObject.getByCode(code).id) || [];
165
157
  }
166
158
  mapToDb(value) {
167
159
  return !value ? [] : value.map((code) => this.enumObject.getByCode(code).id);
@@ -1 +1 @@
1
- {"version":3,"file":"serde.js","sourceRoot":"","sources":["../../src/serde.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serde.js","sourceRoot":"","sources":["../../src/serde.ts"],"names":[],"mappings":"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"}