joist-orm 1.37.7 → 1.37.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/BaseEntity.js +9 -2
- package/build/src/BaseEntity.js.map +1 -1
- package/build/src/Entity.d.ts +1 -1
- package/build/src/dataloaders/oneToManyDataLoader.js +0 -1
- package/build/src/dataloaders/oneToManyDataLoader.js.map +1 -1
- package/build/src/getProperties.js +2 -1
- package/build/src/getProperties.js.map +1 -1
- package/build/src/relations/CustomCollection.d.ts +1 -1
- package/build/src/relations/CustomCollection.js +26 -14
- package/build/src/relations/CustomCollection.js.map +1 -1
- package/build/src/relations/CustomReference.d.ts +1 -1
- package/build/src/relations/CustomReference.js +25 -13
- package/build/src/relations/CustomReference.js.map +1 -1
- package/build/src/relations/ManyToManyCollection.d.ts +3 -2
- package/build/src/relations/ManyToManyCollection.js +52 -33
- package/build/src/relations/ManyToManyCollection.js.map +1 -1
- package/build/src/relations/ManyToOneReference.d.ts +2 -2
- package/build/src/relations/ManyToOneReference.js +44 -28
- package/build/src/relations/ManyToOneReference.js.map +1 -1
- package/build/src/relations/OneToManyCollection.d.ts +3 -4
- package/build/src/relations/OneToManyCollection.js +56 -36
- package/build/src/relations/OneToManyCollection.js.map +1 -1
- package/build/src/relations/OneToOneReference.d.ts +3 -2
- package/build/src/relations/OneToOneReference.js +35 -16
- package/build/src/relations/OneToOneReference.js.map +1 -1
- package/build/src/relations/hasAsyncProperty.d.ts +1 -1
- package/build/src/relations/hasAsyncProperty.js +18 -5
- package/build/src/relations/hasAsyncProperty.js.map +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.d.ts +1 -1
- package/build/src/relations/hasPersistedAsyncProperty.js +25 -11
- package/build/src/relations/hasPersistedAsyncProperty.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/build/src/BaseEntity.js
CHANGED
|
@@ -9,14 +9,21 @@ const index_1 = require("./index");
|
|
|
9
9
|
*/
|
|
10
10
|
class BaseEntity {
|
|
11
11
|
constructor(em, metadata, defaultValues, opts) {
|
|
12
|
-
this
|
|
12
|
+
Object.defineProperty(this, "__orm", {
|
|
13
|
+
value: { em, metadata, data: { ...defaultValues }, originalData: {}, isNew: true, isTouched: false },
|
|
14
|
+
enumerable: false,
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "entity", {
|
|
17
|
+
value: this,
|
|
18
|
+
enumerable: false,
|
|
19
|
+
writable: false,
|
|
20
|
+
});
|
|
13
21
|
// Ensure we have at least id set so the `EntityManager.register` works
|
|
14
22
|
if (typeof opts === "string") {
|
|
15
23
|
this.__orm.data["id"] = opts;
|
|
16
24
|
this.__orm.isNew = false;
|
|
17
25
|
}
|
|
18
26
|
em.register(metadata, this);
|
|
19
|
-
this.entity = this;
|
|
20
27
|
}
|
|
21
28
|
get idUntagged() {
|
|
22
29
|
if (this.id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":";;;AAAA,mCAWiB;AAEjB;;;;GAIG;AACH,MAAsB,UAAU;IAS9B,YAAsB,EAAiB,EAAE,QAAa,EAAE,aAAqB,EAAE,IAAS;QACtF,
|
|
1
|
+
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":";;;AAAA,mCAWiB;AAEjB;;;;GAIG;AACH,MAAsB,UAAU;IAS9B,YAAsB,EAAiB,EAAE,QAAa,EAAE,aAAqB,EAAE,IAAS;QACtF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;YACpG,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;YACpC,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,uEAAuE;QACvE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1B;QACD,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,OAAO,IAAA,gBAAQ,EAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAA,YAAI,EAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;IAaD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;IAC1C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAChG,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,sDAAsD;YACtD,MAAM,EAAE,GAAG,IAAA,mBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;YAC/C,8GAA8G;YAC9G,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;SAC7B;aAAM;YACL,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,uEAAuE;YACvE,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;SACrD;IACH,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,EAAQ,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM;QACX,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,QAAQ,CAAC,CAAC,IAAI,EAAE;gBACd,KAAK,YAAY,CAAC;gBAClB,KAAK,MAAM;oBACT,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAG,IAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC7D,KAAK,WAAW;oBACd,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;wBACzB,0DAA0D;wBAC1D,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAG,IAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;qBACvE;yBAAM;wBACL,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAG,IAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;qBAC5D;gBACH,KAAK,KAAK;oBACR,mEAAmE;oBACnE,MAAM,KAAK,GAAI,IAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnD,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrE;oBACE,OAAO,EAAE,CAAC;aACb;QACH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,CACX,CAAC;IACJ,CAAC;IAED,CAAC,MAAM,CAAC,WAAW,CAAC;QAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AAxID,gCAwIC"}
|
package/build/src/Entity.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface Entity {
|
|
|
15
15
|
idTaggedOrFail: string;
|
|
16
16
|
idOrFail: string;
|
|
17
17
|
/** Joist internal metadata, should be considered a private implementation detail. */
|
|
18
|
-
__orm: EntityOrmField;
|
|
18
|
+
readonly __orm: EntityOrmField;
|
|
19
19
|
readonly em: EntityManager<any>;
|
|
20
20
|
readonly isNewEntity: boolean;
|
|
21
21
|
readonly isDeletedEntity: boolean;
|
|
@@ -16,7 +16,6 @@ function oneToManyDataLoader(em, collection) {
|
|
|
16
16
|
const { otherMeta } = collection;
|
|
17
17
|
(0, index_1.assertIdsAreTagged)(_keys);
|
|
18
18
|
const keys = (0, index_1.deTagIds)(meta, _keys);
|
|
19
|
-
const { em } = collection.entity;
|
|
20
19
|
const rows = await em.driver.loadOneToMany(em, collection, keys);
|
|
21
20
|
const entities = rows.map((row) => em.hydrate(otherMeta.cstr, row, { overwriteExisting: false }));
|
|
22
21
|
// .filter((e) => !e.isDeletedEntity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneToManyDataLoader.js","sourceRoot":"","sources":["../../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAGpC,oCAAwG;AACxG,oCAA6C;AAE7C,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,UAAqC;IAErC,2DAA2D;IAC3D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IACvC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACpD,OAAO,IAAA,gBAAQ,EAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE;QAC/C,OAAO,IAAI,oBAAU,CAAc,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;YAEjC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEnC,MAAM,
|
|
1
|
+
{"version":3,"file":"oneToManyDataLoader.js","sourceRoot":"","sources":["../../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAGpC,oCAAwG;AACxG,oCAA6C;AAE7C,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,UAAqC;IAErC,2DAA2D;IAC3D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IACvC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACpD,OAAO,IAAA,gBAAQ,EAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE;QAC/C,OAAO,IAAI,oBAAU,CAAc,KAAK,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;YAEjC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEnC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAClG,sCAAsC;YAEtC,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC5C,wEAAwE;gBACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxF,yFAAyF;gBACzF,uFAAuF;gBACvF,0FAA0F;gBAC1F,sFAAsF;gBACtF,0FAA0F;gBAC1F,qFAAqF;gBACrF,eAAe;gBACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAlCD,kDAkCC"}
|
|
@@ -66,7 +66,8 @@ function getFakeInstance(meta) {
|
|
|
66
66
|
return (fakeInstances[_a = meta.cstr.name] ?? (fakeInstances[_a] = new meta.cstr({
|
|
67
67
|
register: (metadata, entity) => {
|
|
68
68
|
em.currentlyInstantiatingEntity = entity;
|
|
69
|
-
entity.__orm =
|
|
69
|
+
entity.__orm.metadata = meta;
|
|
70
|
+
entity.__orm.data = {};
|
|
70
71
|
},
|
|
71
72
|
}, {})));
|
|
72
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProperties.js","sourceRoot":"","sources":["../../src/getProperties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AAGtC,uDAAuD;AACvD,MAAM,EAAE,GAAG,EAAE,CAAC;AAEd;;;;;GAKG;AACH,SAAgB,aAAa,CAAmB,IAAuB;IACrE,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,CAChD,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,8EAA8E;QAC9E,sEAAsE;QACtE,IAAI;YACF,OAAO,CAAC,GAAG,EAAG,QAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;SACtC;QAAC,MAAM;YACN,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACzB;IACH,CAAC,CAAC;QACF,sGAAsG;SACrG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CACvC,CAAC;IACF,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AArBD,sCAqBC;AAED,MAAM,eAAe,GAAwB,EAAE,CAAC;AAChD,MAAM,aAAa,GAA2B,EAAE,CAAC;AAEjD;;;GAGG;AACH,SAAgB,eAAe,CAAmB,IAAuB;;IACvE,OAAO,CAAC,aAAa,MAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAA5B,aAAa,OAAqB,IAAI,IAAI,CAAC,IAAI,CACrD;QACE,QAAQ,EAAE,CAAC,QAAa,EAAE,MAAW,EAAE,EAAE;YACvC,EAAE,CAAC,4BAA4B,GAAG,MAAM,CAAC;YACzC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"getProperties.js","sourceRoot":"","sources":["../../src/getProperties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AAGtC,uDAAuD;AACvD,MAAM,EAAE,GAAG,EAAE,CAAC;AAEd;;;;;GAKG;AACH,SAAgB,aAAa,CAAmB,IAAuB;IACrE,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,CAChD,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,8EAA8E;QAC9E,sEAAsE;QACtE,IAAI;YACF,OAAO,CAAC,GAAG,EAAG,QAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;SACtC;QAAC,MAAM;YACN,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACzB;IACH,CAAC,CAAC;QACF,sGAAsG;SACrG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CACvC,CAAC;IACF,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AArBD,sCAqBC;AAED,MAAM,eAAe,GAAwB,EAAE,CAAC;AAChD,MAAM,aAAa,GAA2B,EAAE,CAAC;AAEjD;;;GAGG;AACH,SAAgB,eAAe,CAAmB,IAAuB;;IACvE,OAAO,CAAC,aAAa,MAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAA5B,aAAa,OAAqB,IAAI,IAAI,CAAC,IAAI,CACrD;QACE,QAAQ,EAAE,CAAC,QAAa,EAAE,MAAW,EAAE,EAAE;YACvC,EAAE,CAAC,4BAA4B,GAAG,MAAM,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACzB,CAAC;KACK,EACR,EAAE,CACH,EAAM,CAAC;AACV,CAAC;AAXD,0CAWC"}
|
|
@@ -27,7 +27,7 @@ export declare type CustomCollectionOpts<T extends Entity, U extends Entity> = {
|
|
|
27
27
|
* abstractions like `hasManyThrough`, which are built on `CustomCollection`.
|
|
28
28
|
*/
|
|
29
29
|
export declare class CustomCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<U[]> implements Collection<T, U> {
|
|
30
|
-
|
|
30
|
+
#private;
|
|
31
31
|
private opts;
|
|
32
32
|
private loadPromise;
|
|
33
33
|
private _isLoaded;
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _CustomCollection_entity, _a, _b;
|
|
3
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
15
|
exports.CustomCollection = void 0;
|
|
5
16
|
const index_1 = require("../index");
|
|
@@ -19,11 +30,12 @@ const Relation_1 = require("./Relation");
|
|
|
19
30
|
class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
20
31
|
constructor(entity, opts) {
|
|
21
32
|
super();
|
|
22
|
-
this.entity = entity;
|
|
23
33
|
this.opts = opts;
|
|
34
|
+
_CustomCollection_entity.set(this, void 0);
|
|
24
35
|
this._isLoaded = false;
|
|
25
36
|
this[_a] = null;
|
|
26
37
|
this[_b] = null;
|
|
38
|
+
__classPrivateFieldSet(this, _CustomCollection_entity, entity, "f");
|
|
27
39
|
}
|
|
28
40
|
get get() {
|
|
29
41
|
return this.doGet({ withDeleted: false });
|
|
@@ -35,10 +47,10 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
35
47
|
return this._isLoaded;
|
|
36
48
|
}
|
|
37
49
|
async load(opts = {}) {
|
|
38
|
-
(0, index_1.ensureNotDeleted)(this
|
|
50
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), { ignore: "pending" });
|
|
39
51
|
if (!this.isLoaded || opts.forceReload) {
|
|
40
52
|
if (this.loadPromise === undefined) {
|
|
41
|
-
this.loadPromise = this.opts.load(this
|
|
53
|
+
this.loadPromise = this.opts.load(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), opts);
|
|
42
54
|
await this.loadPromise;
|
|
43
55
|
this.loadPromise = undefined;
|
|
44
56
|
this._isLoaded = true;
|
|
@@ -60,7 +72,7 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
60
72
|
this.ensureNewOrLoaded();
|
|
61
73
|
const { set, add, remove } = this.opts;
|
|
62
74
|
if (set !== undefined) {
|
|
63
|
-
set(this
|
|
75
|
+
set(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), values);
|
|
64
76
|
}
|
|
65
77
|
else if (add !== undefined && remove !== undefined) {
|
|
66
78
|
const current = this.get;
|
|
@@ -83,7 +95,7 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
83
95
|
return this.doGet().find((other) => other.id === id);
|
|
84
96
|
}
|
|
85
97
|
else {
|
|
86
|
-
return find(this
|
|
98
|
+
return find(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), id);
|
|
87
99
|
}
|
|
88
100
|
}
|
|
89
101
|
async includes(other) {
|
|
@@ -95,7 +107,7 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
95
107
|
if (add === undefined) {
|
|
96
108
|
(0, index_1.fail)(`'add' not implemented on ${this}`);
|
|
97
109
|
}
|
|
98
|
-
add(this
|
|
110
|
+
add(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), other);
|
|
99
111
|
}
|
|
100
112
|
remove(other) {
|
|
101
113
|
this.ensureNewOrLoaded();
|
|
@@ -103,22 +115,22 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
103
115
|
if (remove === undefined) {
|
|
104
116
|
(0, index_1.fail)(`'add' not implemented on ${this}`);
|
|
105
117
|
}
|
|
106
|
-
remove(this
|
|
118
|
+
remove(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), other);
|
|
107
119
|
}
|
|
108
120
|
// these callbacks should be no-ops as they ought to be handled by the underlying relations
|
|
109
121
|
async cleanupOnEntityDeleted() { }
|
|
110
122
|
maybeCascadeDelete() { }
|
|
111
123
|
/** Finds this CustomCollections field name by looking in the entity for the key that we're assigned to. */
|
|
112
124
|
get fieldName() {
|
|
113
|
-
return Object.entries(this
|
|
125
|
+
return Object.entries(__classPrivateFieldGet(this, _CustomCollection_entity, "f")).filter((e) => e[1] === this)[0][0];
|
|
114
126
|
}
|
|
115
127
|
toString() {
|
|
116
|
-
return `CustomCollection(entity: ${this
|
|
128
|
+
return `CustomCollection(entity: ${__classPrivateFieldGet(this, _CustomCollection_entity, "f")}, fieldName: ${this.fieldName})`;
|
|
117
129
|
}
|
|
118
130
|
doGet(opts) {
|
|
119
|
-
(0, index_1.ensureNotDeleted)(this
|
|
131
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _CustomCollection_entity, "f"), { ignore: "pending" });
|
|
120
132
|
this.ensureNewOrLoaded();
|
|
121
|
-
return this.filterDeleted(this.opts.get(this
|
|
133
|
+
return this.filterDeleted(this.opts.get(__classPrivateFieldGet(this, _CustomCollection_entity, "f")), opts);
|
|
122
134
|
}
|
|
123
135
|
filterDeleted(entities, opts) {
|
|
124
136
|
return entities.filter((entity) => opts?.withDeleted === true || !entity.isDeletedEntity);
|
|
@@ -128,9 +140,9 @@ class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
128
140
|
if (this.isLoaded || (this.opts.isLoaded && this.opts.isLoaded())) {
|
|
129
141
|
return;
|
|
130
142
|
}
|
|
131
|
-
(0, index_1.fail)(`${this
|
|
143
|
+
(0, index_1.fail)(`${__classPrivateFieldGet(this, _CustomCollection_entity, "f")}.${this.fieldName} was not loaded`);
|
|
132
144
|
}
|
|
133
145
|
}
|
|
134
146
|
exports.CustomCollection = CustomCollection;
|
|
135
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
147
|
+
_CustomCollection_entity = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
136
148
|
//# sourceMappingURL=CustomCollection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomCollection.js","sourceRoot":"","sources":["../../../src/relations/CustomCollection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomCollection.js","sourceRoot":"","sources":["../../../src/relations/CustomCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export declare type CustomReferenceOpts<T extends Entity, U extends Entity, N ex
|
|
|
25
25
|
* abstractions like `hasOneThrough`, which are built on `CustomReference.
|
|
26
26
|
*/
|
|
27
27
|
export declare class CustomReference<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<U> implements Reference<T, U, N> {
|
|
28
|
-
|
|
28
|
+
#private;
|
|
29
29
|
private opts;
|
|
30
30
|
private loadPromise;
|
|
31
31
|
private _isLoaded;
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _CustomReference_entity, _a, _b, _c;
|
|
3
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
15
|
exports.CustomReference = void 0;
|
|
5
16
|
const index_1 = require("../index");
|
|
@@ -20,12 +31,13 @@ const Relation_1 = require("./Relation");
|
|
|
20
31
|
class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
21
32
|
constructor(entity, opts) {
|
|
22
33
|
super();
|
|
23
|
-
this.entity = entity;
|
|
24
34
|
this.opts = opts;
|
|
35
|
+
_CustomReference_entity.set(this, void 0);
|
|
25
36
|
this._isLoaded = false;
|
|
26
37
|
this[_a] = null;
|
|
27
38
|
this[_b] = null;
|
|
28
39
|
this[_c] = null;
|
|
40
|
+
__classPrivateFieldSet(this, _CustomReference_entity, entity, "f");
|
|
29
41
|
}
|
|
30
42
|
get get() {
|
|
31
43
|
return this.doGet({ withDeleted: false });
|
|
@@ -37,10 +49,10 @@ class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
37
49
|
return this._isLoaded;
|
|
38
50
|
}
|
|
39
51
|
async load(opts = {}) {
|
|
40
|
-
(0, index_1.ensureNotDeleted)(this
|
|
52
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _CustomReference_entity, "f"), { ignore: "pending" });
|
|
41
53
|
if (!this.isLoaded || opts.forceReload) {
|
|
42
54
|
if (this.loadPromise === undefined) {
|
|
43
|
-
this.loadPromise = this.opts.load(this
|
|
55
|
+
this.loadPromise = this.opts.load(__classPrivateFieldGet(this, _CustomReference_entity, "f"), opts);
|
|
44
56
|
await this.loadPromise;
|
|
45
57
|
this.loadPromise = undefined;
|
|
46
58
|
this._isLoaded = true;
|
|
@@ -74,18 +86,18 @@ class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
74
86
|
get isSet() {
|
|
75
87
|
this.ensureNewOrLoaded();
|
|
76
88
|
const { get } = this.opts;
|
|
77
|
-
return get(this
|
|
89
|
+
return get(__classPrivateFieldGet(this, _CustomReference_entity, "f")) !== undefined;
|
|
78
90
|
}
|
|
79
91
|
set(value) {
|
|
80
92
|
// We allow setting CustomReferences on new entities w/o being loaded
|
|
81
|
-
if (!this.
|
|
93
|
+
if (!__classPrivateFieldGet(this, _CustomReference_entity, "f").isNewEntity) {
|
|
82
94
|
this.ensureNewOrLoaded();
|
|
83
95
|
}
|
|
84
96
|
const { set } = this.opts;
|
|
85
97
|
if (set === undefined) {
|
|
86
98
|
throw new Error(`'set' not implemented on ${this}`);
|
|
87
99
|
}
|
|
88
|
-
set(this
|
|
100
|
+
set(__classPrivateFieldGet(this, _CustomReference_entity, "f"), value);
|
|
89
101
|
}
|
|
90
102
|
setFromOpts(value) {
|
|
91
103
|
this.set(value);
|
|
@@ -95,15 +107,15 @@ class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
95
107
|
maybeCascadeDelete() { }
|
|
96
108
|
/** Finds this CustomReferences field name by looking in the entity for the key that we're assigned to. */
|
|
97
109
|
get fieldName() {
|
|
98
|
-
return Object.entries(this
|
|
110
|
+
return Object.entries(__classPrivateFieldGet(this, _CustomReference_entity, "f")).filter((e) => e[1] === this)[0][0];
|
|
99
111
|
}
|
|
100
112
|
toString() {
|
|
101
|
-
return `CustomReference(entity: ${this
|
|
113
|
+
return `CustomReference(entity: ${__classPrivateFieldGet(this, _CustomReference_entity, "f")}, fieldName: ${this.fieldName})`;
|
|
102
114
|
}
|
|
103
115
|
doGet(opts) {
|
|
104
|
-
(0, index_1.ensureNotDeleted)(this
|
|
116
|
+
(0, index_1.ensureNotDeleted)(__classPrivateFieldGet(this, _CustomReference_entity, "f"), { ignore: "pending" });
|
|
105
117
|
this.ensureNewOrLoaded();
|
|
106
|
-
return this.filterDeleted(this.opts.get(this
|
|
118
|
+
return this.filterDeleted(this.opts.get(__classPrivateFieldGet(this, _CustomReference_entity, "f")), opts);
|
|
107
119
|
}
|
|
108
120
|
filterDeleted(entity, opts) {
|
|
109
121
|
return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
|
|
@@ -113,9 +125,9 @@ class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
113
125
|
if (this.isLoaded || (this.opts.isLoaded && this.opts.isLoaded())) {
|
|
114
126
|
return;
|
|
115
127
|
}
|
|
116
|
-
(0, index_1.fail)(`${this
|
|
128
|
+
(0, index_1.fail)(`${__classPrivateFieldGet(this, _CustomReference_entity, "f")}.${this.fieldName} was not loaded`);
|
|
117
129
|
}
|
|
118
130
|
}
|
|
119
131
|
exports.CustomReference = CustomReference;
|
|
120
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
|
|
132
|
+
_CustomReference_entity = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU, _c = Reference_1.ReferenceN;
|
|
121
133
|
//# sourceMappingURL=CustomReference.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomReference.js","sourceRoot":"","sources":["../../../src/relations/CustomReference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomReference.js","sourceRoot":"","sources":["../../../src/relations/CustomReference.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,10 @@ import { RelationT, RelationU } from "./Relation";
|
|
|
4
4
|
/** An alias for creating `ManyToManyCollections`s. */
|
|
5
5
|
export declare function hasManyToMany<T extends Entity, U extends Entity>(joinTableName: string, fieldName: keyof T & string, columnName: string, otherMeta: EntityMetadata<U>, otherFieldName: keyof U & string, otherColumnName: string): Collection<T, U>;
|
|
6
6
|
export declare class ManyToManyCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<U[]> implements Collection<T, U> {
|
|
7
|
+
#private;
|
|
7
8
|
joinTableName: string;
|
|
8
|
-
entity: T;
|
|
9
9
|
fieldName: keyof T & string;
|
|
10
10
|
columnName: string;
|
|
11
|
-
otherMeta: EntityMetadata<U>;
|
|
12
11
|
otherFieldName: keyof U & string;
|
|
13
12
|
otherColumnName: string;
|
|
14
13
|
private loaded;
|
|
@@ -39,7 +38,9 @@ export declare class ManyToManyCollection<T extends Entity, U extends Entity> ex
|
|
|
39
38
|
current(opts?: {
|
|
40
39
|
withDeleted?: boolean;
|
|
41
40
|
}): U[];
|
|
41
|
+
get entity(): T;
|
|
42
42
|
get meta(): EntityMetadata<T>;
|
|
43
|
+
get otherMeta(): EntityMetadata<U>;
|
|
43
44
|
toString(): string;
|
|
44
45
|
[RelationT]: T;
|
|
45
46
|
[RelationU]: U;
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _ManyToManyCollection_entity, _ManyToManyCollection_otherMeta, _a, _b;
|
|
3
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
15
|
exports.ManyToManyCollection = exports.hasManyToMany = void 0;
|
|
5
16
|
const __1 = require("../");
|
|
@@ -24,32 +35,34 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
24
35
|
entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName) {
|
|
25
36
|
super();
|
|
26
37
|
this.joinTableName = joinTableName;
|
|
27
|
-
this.entity = entity;
|
|
28
38
|
this.fieldName = fieldName;
|
|
29
39
|
this.columnName = columnName;
|
|
30
|
-
this.otherMeta = otherMeta;
|
|
31
40
|
this.otherFieldName = otherFieldName;
|
|
32
41
|
this.otherColumnName = otherColumnName;
|
|
42
|
+
_ManyToManyCollection_entity.set(this, void 0);
|
|
33
43
|
this.addedBeforeLoaded = [];
|
|
34
44
|
this.removedBeforeLoaded = [];
|
|
45
|
+
_ManyToManyCollection_otherMeta.set(this, void 0);
|
|
35
46
|
this[_a] = null;
|
|
36
47
|
this[_b] = null;
|
|
48
|
+
__classPrivateFieldSet(this, _ManyToManyCollection_entity, entity, "f");
|
|
49
|
+
__classPrivateFieldSet(this, _ManyToManyCollection_otherMeta, otherMeta, "f");
|
|
37
50
|
this.isCascadeDelete = otherMeta?.config.__data.cascadeDeleteFields.includes(fieldName);
|
|
38
51
|
}
|
|
39
52
|
filterDeleted(entities, opts) {
|
|
40
53
|
return opts?.withDeleted === true ? [...entities] : entities.filter((e) => !e.isDeletedEntity);
|
|
41
54
|
}
|
|
42
55
|
async load(opts = {}) {
|
|
43
|
-
(0, __1.ensureNotDeleted)(this
|
|
56
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), { ignore: "pending" });
|
|
44
57
|
if (this.loaded === undefined || opts.forceReload) {
|
|
45
|
-
const key = `${this.columnName}=${this.
|
|
46
|
-
this.loaded = await (0, manyToManyDataLoader_1.manyToManyDataLoader)(this.
|
|
58
|
+
const key = `${this.columnName}=${__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").id}`;
|
|
59
|
+
this.loaded = await (0, manyToManyDataLoader_1.manyToManyDataLoader)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em, this).load(key);
|
|
47
60
|
this.maybeApplyAddedAndRemovedBeforeLoaded();
|
|
48
61
|
}
|
|
49
62
|
return this.filterDeleted(this.loaded, opts);
|
|
50
63
|
}
|
|
51
64
|
async find(id) {
|
|
52
|
-
(0, __1.ensureNotDeleted)(this
|
|
65
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), { ignore: "pending" });
|
|
53
66
|
if (this.loaded !== undefined) {
|
|
54
67
|
return this.loaded.find((u) => u.id === id);
|
|
55
68
|
}
|
|
@@ -59,13 +72,13 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
59
72
|
return added;
|
|
60
73
|
}
|
|
61
74
|
// Make a cacheable tuple to look up this specific m2m row
|
|
62
|
-
const key = `${this.columnName}=${this.
|
|
63
|
-
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.
|
|
64
|
-
return includes ? this.
|
|
75
|
+
const key = `${this.columnName}=${__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").id},${this.otherColumnName}=${id}`;
|
|
76
|
+
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em, this).load(key);
|
|
77
|
+
return includes ? __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em.load(id) : undefined;
|
|
65
78
|
}
|
|
66
79
|
}
|
|
67
80
|
async includes(other) {
|
|
68
|
-
(0, __1.ensureNotDeleted)(this
|
|
81
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), { ignore: "pending" });
|
|
69
82
|
if (this.loaded !== undefined) {
|
|
70
83
|
return this.loaded.includes(other);
|
|
71
84
|
}
|
|
@@ -77,12 +90,12 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
77
90
|
return false;
|
|
78
91
|
}
|
|
79
92
|
// Make a cacheable tuple to look up this specific m2m row
|
|
80
|
-
const key = `${this.columnName}=${this.
|
|
81
|
-
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.
|
|
93
|
+
const key = `${this.columnName}=${__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").idOrFail},${this.otherColumnName}=${other.idOrFail}`;
|
|
94
|
+
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em, this).load(key);
|
|
82
95
|
}
|
|
83
96
|
}
|
|
84
97
|
add(other, percolated = false) {
|
|
85
|
-
(0, __1.ensureNotDeleted)(this
|
|
98
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
86
99
|
if (this.loaded !== undefined) {
|
|
87
100
|
if (this.loaded.includes(other)) {
|
|
88
101
|
return;
|
|
@@ -99,18 +112,18 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
99
112
|
const joinRow = {
|
|
100
113
|
id: undefined,
|
|
101
114
|
m2m: this,
|
|
102
|
-
[this.columnName]: this
|
|
115
|
+
[this.columnName]: __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"),
|
|
103
116
|
[this.otherColumnName]: other,
|
|
104
117
|
};
|
|
105
|
-
(0, utils_1.getOrSet)(this.
|
|
106
|
-
other[this.otherFieldName].add(this
|
|
118
|
+
(0, utils_1.getOrSet)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em.__data.joinRows, this.joinTableName, []).push(joinRow);
|
|
119
|
+
other[this.otherFieldName].add(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), true);
|
|
107
120
|
}
|
|
108
121
|
}
|
|
109
122
|
remove(other, percolated = false) {
|
|
110
|
-
(0, __1.ensureNotDeleted)(this
|
|
123
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), { ignore: "pending" });
|
|
111
124
|
if (!percolated) {
|
|
112
|
-
const joinRows = (0, utils_1.getOrSet)(this.
|
|
113
|
-
const row = joinRows.find((r) => r[this.columnName] === this
|
|
125
|
+
const joinRows = (0, utils_1.getOrSet)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em.__data.joinRows, this.joinTableName, []);
|
|
126
|
+
const row = joinRows.find((r) => r[this.columnName] === __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f") && r[this.otherColumnName] === other);
|
|
114
127
|
if (row) {
|
|
115
128
|
row.deleted = true;
|
|
116
129
|
}
|
|
@@ -119,13 +132,13 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
119
132
|
// Use -1 to force the sortJoinRows to notice us as dirty ("delete: true but id is set")
|
|
120
133
|
id: -1,
|
|
121
134
|
m2m: this,
|
|
122
|
-
[this.columnName]: this
|
|
135
|
+
[this.columnName]: __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"),
|
|
123
136
|
[this.otherColumnName]: other,
|
|
124
137
|
deleted: true,
|
|
125
138
|
};
|
|
126
|
-
(0, utils_1.getOrSet)(this.
|
|
139
|
+
(0, utils_1.getOrSet)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em.__data.joinRows, this.joinTableName, []).push(joinRow);
|
|
127
140
|
}
|
|
128
|
-
other[this.otherFieldName].remove(this
|
|
141
|
+
other[this.otherFieldName].remove(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"), true);
|
|
129
142
|
}
|
|
130
143
|
if (this.loaded !== undefined) {
|
|
131
144
|
(0, utils_1.remove)(this.loaded, other);
|
|
@@ -141,7 +154,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
141
154
|
return this.loaded !== undefined;
|
|
142
155
|
}
|
|
143
156
|
doGet() {
|
|
144
|
-
(0, __1.ensureNotDeleted)(this
|
|
157
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
145
158
|
if (this.loaded === undefined) {
|
|
146
159
|
// This should only be callable in the type system if we've already resolved this to an instance
|
|
147
160
|
throw new Error("get was called when not loaded");
|
|
@@ -155,7 +168,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
155
168
|
return this.filterDeleted(this.doGet(), { withDeleted: false });
|
|
156
169
|
}
|
|
157
170
|
set(values) {
|
|
158
|
-
(0, __1.ensureNotDeleted)(this
|
|
171
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
159
172
|
if (this.loaded === undefined) {
|
|
160
173
|
throw new Error("set was called when not loaded");
|
|
161
174
|
}
|
|
@@ -174,7 +187,7 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
174
187
|
}
|
|
175
188
|
}
|
|
176
189
|
removeAll() {
|
|
177
|
-
(0, __1.ensureNotDeleted)(this
|
|
190
|
+
(0, __1.ensureNotDeleted)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
178
191
|
if (this.loaded === undefined) {
|
|
179
192
|
throw new Error("removeAll was called when not loaded");
|
|
180
193
|
}
|
|
@@ -195,14 +208,14 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
195
208
|
}
|
|
196
209
|
maybeCascadeDelete() {
|
|
197
210
|
if (this.isCascadeDelete) {
|
|
198
|
-
this.current({ withDeleted: true }).forEach((e) => this.
|
|
211
|
+
this.current({ withDeleted: true }).forEach((e) => __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f").em.delete(e));
|
|
199
212
|
}
|
|
200
213
|
}
|
|
201
214
|
async cleanupOnEntityDeleted() {
|
|
202
215
|
const entities = await this.load({ withDeleted: true });
|
|
203
216
|
entities.forEach((other) => {
|
|
204
217
|
const m2m = other[this.otherFieldName];
|
|
205
|
-
m2m.remove(this
|
|
218
|
+
m2m.remove(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
206
219
|
});
|
|
207
220
|
this.loaded = [];
|
|
208
221
|
}
|
|
@@ -212,8 +225,8 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
212
225
|
// this.addedBeforeLoaded = [];
|
|
213
226
|
this.removedBeforeLoaded.forEach((e) => {
|
|
214
227
|
(0, utils_1.remove)(this.loaded, e);
|
|
215
|
-
const { em } = this
|
|
216
|
-
const row = em.__data.joinRows[this.joinTableName].find((r) => r[this.columnName] === this
|
|
228
|
+
const { em } = __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f");
|
|
229
|
+
const row = em.__data.joinRows[this.joinTableName].find((r) => r[this.columnName] === __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f") && r[this.otherColumnName] === e);
|
|
217
230
|
if (row) {
|
|
218
231
|
row.deleted = true;
|
|
219
232
|
}
|
|
@@ -224,13 +237,19 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
|
224
237
|
current(opts) {
|
|
225
238
|
return this.filterDeleted(this.loaded || this.addedBeforeLoaded, opts);
|
|
226
239
|
}
|
|
240
|
+
get entity() {
|
|
241
|
+
return __classPrivateFieldGet(this, _ManyToManyCollection_entity, "f");
|
|
242
|
+
}
|
|
227
243
|
get meta() {
|
|
228
|
-
return (0, __1.getMetadata)(this
|
|
244
|
+
return (0, __1.getMetadata)(__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f"));
|
|
245
|
+
}
|
|
246
|
+
get otherMeta() {
|
|
247
|
+
return __classPrivateFieldGet(this, _ManyToManyCollection_otherMeta, "f");
|
|
229
248
|
}
|
|
230
249
|
toString() {
|
|
231
|
-
return `OneToManyCollection(entity: ${this
|
|
250
|
+
return `OneToManyCollection(entity: ${__classPrivateFieldGet(this, _ManyToManyCollection_entity, "f")}, fieldName: ${this.fieldName}, otherType: ${__classPrivateFieldGet(this, _ManyToManyCollection_otherMeta, "f").type}, otherFieldName: ${this.otherFieldName})`;
|
|
232
251
|
}
|
|
233
252
|
}
|
|
234
253
|
exports.ManyToManyCollection = ManyToManyCollection;
|
|
235
|
-
_a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
254
|
+
_ManyToManyCollection_entity = new WeakMap(), _ManyToManyCollection_otherMeta = new WeakMap(), _a = Relation_1.RelationT, _b = Relation_1.RelationU;
|
|
236
255
|
//# sourceMappingURL=ManyToManyCollection.js.map
|