joist-core 2.0.3 → 2.1.0-next.2
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/AliasAssigner.d.ts +3 -0
- package/build/AliasAssigner.d.ts.map +1 -1
- package/build/AliasAssigner.js +12 -3
- package/build/AliasAssigner.js.map +1 -1
- package/build/EntityGraphQLFilter.d.ts.map +1 -1
- package/build/EntityGraphQLFilter.js +1 -2
- package/build/EntityGraphQLFilter.js.map +1 -1
- package/build/EntityManager.d.ts +25 -10
- package/build/EntityManager.d.ts.map +1 -1
- package/build/EntityManager.js +242 -159
- package/build/EntityManager.js.map +1 -1
- package/build/IndexManager.d.ts +1 -0
- package/build/IndexManager.d.ts.map +1 -1
- package/build/IndexManager.js +6 -3
- package/build/IndexManager.js.map +1 -1
- package/build/JoinRows.d.ts.map +1 -1
- package/build/JoinRows.js +1 -2
- package/build/JoinRows.js.map +1 -1
- package/build/PendingChanges.d.ts +26 -0
- package/build/PendingChanges.d.ts.map +1 -0
- package/build/PendingChanges.js +3 -0
- package/build/PendingChanges.js.map +1 -0
- package/build/ReactionsManager.d.ts +1 -1
- package/build/ReactionsManager.d.ts.map +1 -1
- package/build/ReactionsManager.js +8 -5
- package/build/ReactionsManager.js.map +1 -1
- package/build/batchloaders/BatchLoader.d.ts +14 -0
- package/build/batchloaders/BatchLoader.d.ts.map +1 -0
- package/build/batchloaders/BatchLoader.js +49 -0
- package/build/batchloaders/BatchLoader.js.map +1 -0
- package/build/batchloaders/loadBatchLoader.d.ts +17 -0
- package/build/batchloaders/loadBatchLoader.d.ts.map +1 -0
- package/build/batchloaders/loadBatchLoader.js +57 -0
- package/build/batchloaders/loadBatchLoader.js.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.d.ts +7 -0
- package/build/batchloaders/manyToManyBatchLoader.d.ts.map +1 -0
- package/build/batchloaders/manyToManyBatchLoader.js +59 -0
- package/build/batchloaders/manyToManyBatchLoader.js.map +1 -0
- package/build/batchloaders/oneToManyBatchLoader.d.ts +7 -0
- package/build/batchloaders/oneToManyBatchLoader.d.ts.map +1 -0
- package/build/{dataloaders/oneToManyDataLoader.js → batchloaders/oneToManyBatchLoader.js} +11 -18
- package/build/batchloaders/oneToManyBatchLoader.js.map +1 -0
- package/build/batchloaders/oneToOneBatchLoader.d.ts +7 -0
- package/build/batchloaders/oneToOneBatchLoader.d.ts.map +1 -0
- package/build/{dataloaders/oneToOneDataLoader.js → batchloaders/oneToOneBatchLoader.js} +12 -16
- package/build/batchloaders/oneToOneBatchLoader.js.map +1 -0
- package/build/{dataloaders/populateDataLoader.d.ts → batchloaders/populateBatchLoader.d.ts} +5 -5
- package/build/batchloaders/populateBatchLoader.d.ts.map +1 -0
- package/build/{dataloaders/populateDataLoader.js → batchloaders/populateBatchLoader.js} +97 -54
- package/build/batchloaders/populateBatchLoader.js.map +1 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts +7 -0
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +1 -0
- package/build/{dataloaders/recursiveChildrenDataLoader.js → batchloaders/recursiveChildrenBatchLoader.js} +6 -6
- package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts +7 -0
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +1 -0
- package/build/batchloaders/recursiveM2mBatchLoader.js +86 -0
- package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts +7 -0
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +1 -0
- package/build/{dataloaders/recursiveParentsDataLoader.js → batchloaders/recursiveParentsBatchLoader.js} +6 -5
- package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -0
- package/build/changes.js +2 -2
- package/build/changes.js.map +1 -1
- package/build/config.d.ts +13 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +26 -1
- package/build/config.js.map +1 -1
- package/build/dataloaders/findDataLoader.d.ts +1 -0
- package/build/dataloaders/findDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findDataLoader.js +1 -0
- package/build/dataloaders/findDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findIdsDataLoader.js +7 -5
- package/build/dataloaders/findIdsDataLoader.js.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.js +3 -2
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/logging/ReactionLogger.d.ts +8 -4
- package/build/logging/ReactionLogger.d.ts.map +1 -1
- package/build/logging/ReactionLogger.js +11 -4
- package/build/logging/ReactionLogger.js.map +1 -1
- package/build/newTestInstance.d.ts +15 -0
- package/build/newTestInstance.d.ts.map +1 -1
- package/build/newTestInstance.js +49 -6
- package/build/newTestInstance.js.map +1 -1
- package/build/preloading/JsonAggregatePreloader.js +29 -24
- package/build/preloading/JsonAggregatePreloader.js.map +1 -1
- package/build/reactiveHints.d.ts.map +1 -1
- package/build/reactiveHints.js +25 -0
- package/build/reactiveHints.js.map +1 -1
- package/build/relations/Collection.d.ts +6 -1
- package/build/relations/Collection.d.ts.map +1 -1
- package/build/relations/Collection.js.map +1 -1
- package/build/relations/ManyToManyCollection.d.ts +8 -1
- package/build/relations/ManyToManyCollection.d.ts.map +1 -1
- package/build/relations/ManyToManyCollection.js +338 -130
- package/build/relations/ManyToManyCollection.js.map +1 -1
- package/build/relations/ManyToOneReference.d.ts +2 -6
- package/build/relations/ManyToOneReference.d.ts.map +1 -1
- package/build/relations/ManyToOneReference.js +115 -78
- package/build/relations/ManyToOneReference.js.map +1 -1
- package/build/relations/OneToManyCollection.d.ts +8 -4
- package/build/relations/OneToManyCollection.d.ts.map +1 -1
- package/build/relations/OneToManyCollection.js +415 -173
- package/build/relations/OneToManyCollection.js.map +1 -1
- package/build/relations/OneToOneReference.d.ts.map +1 -1
- package/build/relations/OneToOneReference.js +12 -7
- package/build/relations/OneToOneReference.js.map +1 -1
- package/build/relations/ReactiveManyToMany.js +4 -4
- package/build/relations/ReactiveManyToMany.js.map +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.js +3 -3
- package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
- package/build/relations/ReadOnlyCollection.d.ts.map +1 -1
- package/build/relations/ReadOnlyCollection.js +2 -1
- package/build/relations/ReadOnlyCollection.js.map +1 -1
- package/build/relations/RecursiveCollection.d.ts +29 -1
- package/build/relations/RecursiveCollection.d.ts.map +1 -1
- package/build/relations/RecursiveCollection.js +160 -9
- package/build/relations/RecursiveCollection.js.map +1 -1
- package/build/relations/index.d.ts +1 -1
- package/build/relations/index.d.ts.map +1 -1
- package/build/relations/index.js +2 -1
- package/build/relations/index.js.map +1 -1
- package/package.json +2 -2
- package/build/dataloaders/loadDataLoader.d.ts +0 -11
- package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
- package/build/dataloaders/loadDataLoader.js +0 -54
- package/build/dataloaders/loadDataLoader.js.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.js +0 -74
- package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
- package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/populateDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
|
@@ -30,6 +30,7 @@ class ReactionsManager {
|
|
|
30
30
|
dirtyFields = new Map();
|
|
31
31
|
processedActions = new Set();
|
|
32
32
|
#needsRecalc = { populate: false, query: false, reaction: false };
|
|
33
|
+
// Accessible for EntityManager.runValidation to reuse
|
|
33
34
|
logger = ReactionLogger_1.globalLogger;
|
|
34
35
|
em;
|
|
35
36
|
/** These are NPEs that *might* have been from invalid m2o fields, so we only throw them after validation. */
|
|
@@ -78,6 +79,7 @@ class ReactionsManager {
|
|
|
78
79
|
// thinks we can dequeue the reactable
|
|
79
80
|
// - but actually our reactable needs to be re-run with the restored value
|
|
80
81
|
pending.todo.add(entity);
|
|
82
|
+
this.#needsRecalc[r.kind] = true;
|
|
81
83
|
}
|
|
82
84
|
else if (r.fields.length === 1) {
|
|
83
85
|
// We can only delete/dequeue a reaction if `fieldName` is the only or last field
|
|
@@ -157,7 +159,7 @@ class ReactionsManager {
|
|
|
157
159
|
const entities = (await (0, reactiveHints_1.followReverseHint)(r.name, todo, r.path))
|
|
158
160
|
.filter((entity) => !entity.isDeletedEntity)
|
|
159
161
|
.filter((e) => e instanceof r.cstr);
|
|
160
|
-
this.logger?.logWalked(todo, r, entities);
|
|
162
|
+
this.logger?.logWalked(todo, r, entities, "recalc");
|
|
161
163
|
entities.forEach((entity) => {
|
|
162
164
|
const key = `${entity.toTaggedString()}_${r.name}`;
|
|
163
165
|
// We could arrive at the same reactable from multiple paths (eg, 2 dependent fields changed), so we need to
|
|
@@ -171,13 +173,13 @@ class ReactionsManager {
|
|
|
171
173
|
});
|
|
172
174
|
}));
|
|
173
175
|
const actions = [...actionsMap.values()];
|
|
174
|
-
this.logger?.
|
|
176
|
+
this.logger?.logLoadingStart(this.em, actions);
|
|
175
177
|
// Use allSettled so that we can watch for derived values that want to use an entity's id
|
|
176
178
|
// i.e. they can fail, but we'll queue them from later.
|
|
177
179
|
const startTime = this.logger?.now() ?? 0;
|
|
178
180
|
const results = await (0, trusted_1.runInTrustedContext)(() => Promise.allSettled(actions.map((a) => this.#doAction(a))));
|
|
179
181
|
const endTime = this.logger?.now() ?? 0;
|
|
180
|
-
this.logger?.
|
|
182
|
+
this.logger?.logLoadingEnd(this.em, endTime - startTime);
|
|
181
183
|
const actionsPendingAssignedIds = new Map();
|
|
182
184
|
const failures = [];
|
|
183
185
|
results.forEach((result, i) => {
|
|
@@ -201,10 +203,11 @@ class ReactionsManager {
|
|
|
201
203
|
if (actionsPendingAssignedIds.size > 0) {
|
|
202
204
|
await this.em.assignNewIds();
|
|
203
205
|
const actions = [...actionsPendingAssignedIds.values()];
|
|
206
|
+
this.logger?.logLoadingStart(this.em, actions);
|
|
204
207
|
const startTime = this.logger?.now() ?? 0;
|
|
205
208
|
const results = await (0, trusted_1.runInTrustedContext)(() => Promise.allSettled(actions.map((a) => this.#doAction(a))));
|
|
206
209
|
const endTime = this.logger?.now() ?? 0;
|
|
207
|
-
this.logger?.
|
|
210
|
+
this.logger?.logLoadingEnd(this.em, endTime - startTime);
|
|
208
211
|
results.forEach((result, i) => {
|
|
209
212
|
if (result.status === "rejected") {
|
|
210
213
|
if (result.reason instanceof TypeError) {
|
|
@@ -238,7 +241,7 @@ class ReactionsManager {
|
|
|
238
241
|
const startTime = this.logger?.now() ?? 0;
|
|
239
242
|
const results = await (0, trusted_1.runInTrustedContext)(() => Promise.allSettled(actions.filter((a) => !a.entity.isDeletedEntity).map((a) => this.#doAction(a))));
|
|
240
243
|
const endTime = this.logger?.now() ?? 0;
|
|
241
|
-
this.logger?.
|
|
244
|
+
this.logger?.logLoadingEnd(this.em, endTime - startTime);
|
|
242
245
|
const failures = [];
|
|
243
246
|
results.forEach((result) => {
|
|
244
247
|
if (result.status === "rejected") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionsManager.js","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":";;;AACA,qDAA+D;AAC/D,qCAAyE;AAEzE,mCAAqE;AACrE,6DAAwE;AACxE,mDAAoD;AACpD,uCAAgD;AAGhD;;;;;;GAMG;AACH,MAAa,gBAAgB;IAC3B,iFAAiF;IACzE,iBAAiB,GAA6D,IAAI,GAAG,EAAE,CAAC;IACxF,wBAAwB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC1E;;;;;;;;OAQG;IACK,WAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;IAClD,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAClD,YAAY,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,GAA+B,6BAAY,CAAC;IAClD,EAAE,CAAgB;IAC1B,6GAA6G;IACrG,oBAAoB,GAAY,EAAE,CAAC;IAE3C,YAAY,EAAiB;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAc,EAAE,SAAiB;QACzD,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,8FAA8F;gBAC9F,uCAAuC;gBACvC,0EAA0E;gBAC1E,mFAAmF;gBACnF,yEAAyE;gBACzE,mFAAmF;gBACnF,2EAA2E;gBAC3E,iEAAiE;gBACjE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,2BAA2B,CAAC,MAAc,EAAE,SAAiB;QAC3D,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,oFAAoF;oBACpF,6FAA6F;oBAC7F,2BAA2B;oBAC3B,4DAA4D;oBAC5D,8EAA8E;oBAC9E,wCAAwC;oBACxC,0EAA0E;oBAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,iFAAiF;oBACjF,gFAAgF;oBAChF,8EAA8E;oBAC9E,sCAAsC;oBACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,wBAAwB,CAAC,MAAc,EAAE,MAA6B;QACpE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,MAAc,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,IAAsC;QAClE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,+FAA+F;YAC/F,yFAAyF;YACzF,wFAAwF;YACxF,6BAA6B;YAC7B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAC;YAE1D,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC/D,yCAAyC;gBACzC,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,EAAE,CAAC;gBAC3D,IAAI,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAC9F,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClD,uDAAuD;gBACvD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,iCAAiB,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;qBAC7D,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;qBAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACnD,4GAA4G;oBAC5G,sGAAsG;oBACtG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBAChC,0EAA0E;oBAC1E,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1C,yFAAyF;YACzF,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;YAE1D,MAAM,yBAAyB,GAAgC,IAAI,GAAG,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,mGAAmG;oBACnG,IAAI,MAAM,CAAC,MAAM,YAAY,iBAAS,EAAE,CAAC;wBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACpD,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;wBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,gHAAgH;YAChH,eAAe;YACf,IAAI,yBAAyB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;gBAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;4BACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,qFAAqF;YACrF,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,OAAO;oBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,sFAAsF;YACtF,qFAAqF;YACrF,+DAA+D;YAC/D,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAC7C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACnG,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;oBACvC,8CAA8C;oBAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,8BAA8B;QAC5B,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAsB;QAC9B,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;IAED,WAAW,CAAC,IAAsC;QAChD,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACpH,CAAC;IAEO,UAAU,CAAC,CAAY;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,IAAoB;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,mGAAmG;QACnG,+DAA+D;QAC/D,OAAO,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAA,uCAA8B,EAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC,IAAA,sBAAa,EAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAhTD,4CAgTC"}
|
|
1
|
+
{"version":3,"file":"ReactionsManager.js","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Like DataLoader, but all callers in the same tick share a single Promise<void>.
|
|
3
|
+
*
|
|
4
|
+
* The batch function writes results into a side channel (e.g. setPreloadedRelation
|
|
5
|
+
* or em.hydrate), so there's no per-key return value — just one shared promise
|
|
6
|
+
* that signals "the batch is done".
|
|
7
|
+
*/
|
|
8
|
+
export declare class BatchLoader<K> {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(batchFn: (keys: K[]) => Promise<void>);
|
|
11
|
+
load(key: K): Promise<void>;
|
|
12
|
+
loadAll(keys: K[]): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/BatchLoader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,WAAW,CAAC,CAAC;;gBAKZ,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAIjD,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBlC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BatchLoader = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Like DataLoader, but all callers in the same tick share a single Promise<void>.
|
|
6
|
+
*
|
|
7
|
+
* The batch function writes results into a side channel (e.g. setPreloadedRelation
|
|
8
|
+
* or em.hydrate), so there's no per-key return value — just one shared promise
|
|
9
|
+
* that signals "the batch is done".
|
|
10
|
+
*/
|
|
11
|
+
class BatchLoader {
|
|
12
|
+
#batchFn;
|
|
13
|
+
#pending;
|
|
14
|
+
#batchPromise;
|
|
15
|
+
constructor(batchFn) {
|
|
16
|
+
this.#batchFn = batchFn;
|
|
17
|
+
}
|
|
18
|
+
load(key) {
|
|
19
|
+
this.#ensureBatch();
|
|
20
|
+
this.#pending.push(key);
|
|
21
|
+
return this.#batchPromise;
|
|
22
|
+
}
|
|
23
|
+
loadAll(keys) {
|
|
24
|
+
this.#ensureBatch();
|
|
25
|
+
this.#pending.push(...keys);
|
|
26
|
+
return this.#batchPromise;
|
|
27
|
+
}
|
|
28
|
+
#ensureBatch() {
|
|
29
|
+
if (!this.#pending) {
|
|
30
|
+
this.#pending = [];
|
|
31
|
+
this.#batchPromise = new Promise((resolve, reject) => {
|
|
32
|
+
enqueuePostPromiseJob(() => {
|
|
33
|
+
const keys = this.#pending;
|
|
34
|
+
this.#pending = undefined;
|
|
35
|
+
this.#batchPromise = undefined;
|
|
36
|
+
this.#batchFn(keys).then(resolve, reject);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.BatchLoader = BatchLoader;
|
|
43
|
+
const resolvedPromise = Promise.resolve();
|
|
44
|
+
// Matches DataLoader's enqueuePostPromiseJob scheduling:
|
|
45
|
+
// https://github.com/graphql/dataloader/blob/main/src/index.js#L214
|
|
46
|
+
const enqueuePostPromiseJob = typeof process === "object" && typeof process.nextTick === "function"
|
|
47
|
+
? (fn) => resolvedPromise.then(() => process.nextTick(fn))
|
|
48
|
+
: (fn) => setTimeout(fn);
|
|
49
|
+
//# sourceMappingURL=BatchLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/BatchLoader.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,WAAW;IACtB,QAAQ,CAA+B;IACvC,QAAQ,CAAkB;IAC1B,aAAa,CAA4B;IAEzC,YAAY,OAAqC;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,GAAM;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,QAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,aAAc,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAS;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,QAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,aAAc,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzD,qBAAqB,CAAC,GAAG,EAAE;oBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAS,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;oBAC1B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAlCD,kCAkCC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAE1C,yDAAyD;AACzD,oEAAoE;AACpE,MAAM,qBAAqB,GACzB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;IACnE,CAAC,CAAC,CAAC,EAAc,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC,EAAc,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EntityManager } from "../EntityManager";
|
|
2
|
+
import { EntityMetadata } from "../EntityMetadata";
|
|
3
|
+
import { LoadHint } from "../loadHints";
|
|
4
|
+
import { BatchLoader } from "./BatchLoader";
|
|
5
|
+
export declare const loadOperation = "load";
|
|
6
|
+
/**
|
|
7
|
+
* Batches em.load-style fetches, writing to identity map (via hydrate) instead of returning values.
|
|
8
|
+
* After the batch resolves, callers retrieve their entity from `em.findExistingInstance`.
|
|
9
|
+
*
|
|
10
|
+
* Accepts tuples of `{ taggedId, hint }` so the preloader can inject join-based
|
|
11
|
+
* preloading into the same SELECT that fetches the entities.
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadBatchLoader(em: EntityManager, meta: EntityMetadata, overwriteExisting?: boolean): BatchLoader<{
|
|
14
|
+
taggedId: string;
|
|
15
|
+
hint: LoadHint<any> | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=loadBatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadBatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/loadBatchLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,cAAc,EACpB,iBAAiB,GAAE,OAAe,GACjC,WAAW,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC,CAqCpE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadOperation = void 0;
|
|
4
|
+
exports.loadBatchLoader = loadBatchLoader;
|
|
5
|
+
const BaseEntity_1 = require("../BaseEntity");
|
|
6
|
+
const findDataLoader_1 = require("../dataloaders/findDataLoader");
|
|
7
|
+
const EntityManager_1 = require("../EntityManager");
|
|
8
|
+
const HintTree_1 = require("../HintTree");
|
|
9
|
+
const QueryParser_1 = require("../QueryParser");
|
|
10
|
+
const keys_1 = require("../keys");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
exports.loadOperation = "load";
|
|
13
|
+
/**
|
|
14
|
+
* Batches em.load-style fetches, writing to identity map (via hydrate) instead of returning values.
|
|
15
|
+
* After the batch resolves, callers retrieve their entity from `em.findExistingInstance`.
|
|
16
|
+
*
|
|
17
|
+
* Accepts tuples of `{ taggedId, hint }` so the preloader can inject join-based
|
|
18
|
+
* preloading into the same SELECT that fetches the entities.
|
|
19
|
+
*/
|
|
20
|
+
function loadBatchLoader(em, meta, overwriteExisting = false) {
|
|
21
|
+
return em.getBatchLoader(exports.loadOperation, `${meta.type}-${overwriteExisting}`, async (loads) => {
|
|
22
|
+
const keys = loads.map((l) => (0, keys_1.keyToNumber)(meta, l.taggedId));
|
|
23
|
+
const alias = (0, utils_1.abbreviation)(meta.tableName);
|
|
24
|
+
const query = {
|
|
25
|
+
selects: [`"${alias}".*`],
|
|
26
|
+
tables: [{ alias, join: "primary", table: meta.tableName }],
|
|
27
|
+
condition: {
|
|
28
|
+
kind: "exp",
|
|
29
|
+
op: "and",
|
|
30
|
+
conditions: [{ kind: "column", alias, column: "id", dbType: meta.idDbType, cond: { kind: "in", value: keys } }],
|
|
31
|
+
},
|
|
32
|
+
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
33
|
+
};
|
|
34
|
+
(0, QueryParser_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
|
|
35
|
+
// Inject preloading joins into the query if enabled
|
|
36
|
+
const { preloader } = (0, EntityManager_1.getEmInternalApi)(em);
|
|
37
|
+
const preloadHydrator = preloader &&
|
|
38
|
+
preloader.addPreloading(meta, (0, HintTree_1.buildHintTree)(loads.map((l) => ({ entity: l.taggedId, hint: l.hint }))), query);
|
|
39
|
+
const rows = await em["executeFind"](meta, exports.loadOperation, query, {});
|
|
40
|
+
(0, findDataLoader_1.ensureUnderLimit)(em, rows);
|
|
41
|
+
const entities = em.hydrate(meta.cstr, rows, { overwriteExisting });
|
|
42
|
+
preloadHydrator && preloadHydrator(rows, entities);
|
|
43
|
+
// If we're missing any requested rows, mark any requested-but-not-found entities as deleted
|
|
44
|
+
if (rows.length !== loads.length) {
|
|
45
|
+
const foundIds = new Set(rows.map((r) => (0, keys_1.tagId)(meta, r.id)));
|
|
46
|
+
for (const load of loads) {
|
|
47
|
+
if (!foundIds.has(load.taggedId)) {
|
|
48
|
+
const existingEntity = em.findExistingInstance(load.taggedId);
|
|
49
|
+
if (existingEntity) {
|
|
50
|
+
(0, BaseEntity_1.getInstanceData)(existingEntity).markDeletedBecauseNotFound();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=loadBatchLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/loadBatchLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EntityManager } from "../EntityManager";
|
|
2
|
+
import { ManyToManyLike } from "../index";
|
|
3
|
+
import { BatchLoader } from "./BatchLoader";
|
|
4
|
+
export declare const manyToManyLoadOperation = "m2m-load";
|
|
5
|
+
/** Batches m2m.packages/core/src/relations/ReactiveManyToMany.tsload calls via BatchLoader. */
|
|
6
|
+
export declare function manyToManyBatchLoader(em: EntityManager, collection: ManyToManyLike): BatchLoader<string>;
|
|
7
|
+
//# sourceMappingURL=manyToManyBatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manyToManyBatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/manyToManyBatchLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAA4B,cAAc,EAAmB,MAAM,UAAU,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAExG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.manyToManyLoadOperation = void 0;
|
|
4
|
+
exports.manyToManyBatchLoader = manyToManyBatchLoader;
|
|
5
|
+
const EntityManager_1 = require("../EntityManager");
|
|
6
|
+
const index_1 = require("../index");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
exports.manyToManyLoadOperation = "m2m-load";
|
|
9
|
+
/** Batches m2m.packages/core/src/relations/ReactiveManyToMany.tsload calls via BatchLoader. */
|
|
10
|
+
function manyToManyBatchLoader(em, collection) {
|
|
11
|
+
return em.getBatchLoader(exports.manyToManyLoadOperation, collection.joinTableName, (keys) => loadBatch(collection, keys));
|
|
12
|
+
}
|
|
13
|
+
async function loadBatch(collection, keys) {
|
|
14
|
+
const { em } = collection.entity;
|
|
15
|
+
const joinRows = (0, EntityManager_1.getEmInternalApi)(em).joinRows(collection);
|
|
16
|
+
// Break out `column_id=string` keys
|
|
17
|
+
const columns = {};
|
|
18
|
+
const tuples = [];
|
|
19
|
+
keys.forEach((key) => {
|
|
20
|
+
const [columnId, id] = key.split("=");
|
|
21
|
+
(0, utils_1.getOrSet)(columns, columnId, []).push(id);
|
|
22
|
+
tuples.push([columnId, id]);
|
|
23
|
+
});
|
|
24
|
+
const alias = (0, utils_1.abbreviation)(collection.joinTableName);
|
|
25
|
+
const query = {
|
|
26
|
+
selects: [`"${alias}".*`],
|
|
27
|
+
tables: [{ alias, join: "primary", table: collection.joinTableName }],
|
|
28
|
+
condition: {
|
|
29
|
+
kind: "exp",
|
|
30
|
+
op: "or",
|
|
31
|
+
conditions: Object.entries(columns).map(([columnId, values]) => {
|
|
32
|
+
const meta = collection.columnName == columnId ? (0, index_1.getMetadata)(collection.entity) : collection.otherMeta;
|
|
33
|
+
return {
|
|
34
|
+
kind: "column",
|
|
35
|
+
alias,
|
|
36
|
+
column: columnId,
|
|
37
|
+
dbType: meta.idDbType,
|
|
38
|
+
cond: { kind: "in", value: values.map((id) => (0, index_1.keyToNumber)(meta, id)) },
|
|
39
|
+
};
|
|
40
|
+
}),
|
|
41
|
+
},
|
|
42
|
+
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
43
|
+
};
|
|
44
|
+
const rows = await em["executeFind"](collection.otherMeta, exports.manyToManyLoadOperation, query,
|
|
45
|
+
// executeFind uses `LIMIT ${em.entityLimit}` by default, but we don't need that for join rows
|
|
46
|
+
{ limit: undefined });
|
|
47
|
+
await joinRows.loadRows(tuples, rows);
|
|
48
|
+
const api = (0, EntityManager_1.getEmInternalApi)(em);
|
|
49
|
+
for (const [column, id] of tuples) {
|
|
50
|
+
const entity = em.getEntity(id);
|
|
51
|
+
if (!entity)
|
|
52
|
+
continue;
|
|
53
|
+
const others = joinRows.getOthers(column, entity);
|
|
54
|
+
// Determine the field name from the column
|
|
55
|
+
const fieldName = column === collection.columnName ? collection.fieldName : collection.otherFieldName;
|
|
56
|
+
api.setPreloadedRelation(entity.idTagged, fieldName, others);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=manyToManyBatchLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manyToManyBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/manyToManyBatchLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Entity } from "../Entity";
|
|
2
|
+
import { EntityManager } from "../EntityManager";
|
|
3
|
+
import { OneToManyCollection } from "../index";
|
|
4
|
+
import { BatchLoader } from "./BatchLoader";
|
|
5
|
+
export declare const oneToManyLoadOperation = "o2m-load";
|
|
6
|
+
export declare function oneToManyBatchLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: OneToManyCollection<T, U>): BatchLoader<string>;
|
|
7
|
+
//# sourceMappingURL=oneToManyBatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneToManyBatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/oneToManyBatchLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAKL,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACrE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,WAAW,CAAC,MAAM,CAAC,CA+CrB"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.oneToManyLoadOperation = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.oneToManyBatchLoader = oneToManyBatchLoader;
|
|
5
|
+
const findDataLoader_1 = require("../dataloaders/findDataLoader");
|
|
6
|
+
const EntityManager_1 = require("../EntityManager");
|
|
5
7
|
const fields_1 = require("../fields");
|
|
6
8
|
const index_1 = require("../index");
|
|
7
9
|
const utils_1 = require("../utils");
|
|
8
10
|
exports.oneToManyLoadOperation = "o2m-load";
|
|
9
|
-
function
|
|
10
|
-
// The metadata for the entity that contains the collection, i.e. Author in author.books
|
|
11
|
+
function oneToManyBatchLoader(em, collection) {
|
|
11
12
|
const { meta: oneMeta, fieldName } = collection;
|
|
12
13
|
const batchKey = `${oneMeta.tableName}-${fieldName}`;
|
|
13
|
-
return em.
|
|
14
|
-
// otherMeta is the entity being fetched, i.e. Book in author.books
|
|
14
|
+
return em.getBatchLoader(exports.oneToManyLoadOperation, batchKey, async (_keys) => {
|
|
15
15
|
const { otherMeta: meta } = collection;
|
|
16
16
|
(0, index_1.assertIdsAreTagged)(_keys);
|
|
17
17
|
const keys = (0, index_1.deTagIds)(oneMeta, _keys);
|
|
@@ -37,24 +37,17 @@ function oneToManyDataLoader(em, collection) {
|
|
|
37
37
|
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
38
38
|
};
|
|
39
39
|
(0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
|
|
40
|
-
// Skip maybeAddOrderBy b/c we'll sort in memory anyway
|
|
41
|
-
// maybeAddNotSoftDeleted(conditions, meta, alias, "include");
|
|
42
40
|
const rows = await em["executeFind"](meta, exports.oneToManyLoadOperation, query, {});
|
|
41
|
+
(0, findDataLoader_1.ensureUnderLimit)(em, rows);
|
|
43
42
|
const entities = em.hydrate(meta.cstr, rows);
|
|
44
|
-
// .filter((e) => !e.isDeletedEntity);
|
|
45
43
|
const entitiesById = (0, utils_1.groupBy)(entities, (entity) => {
|
|
46
|
-
// TODO If this came from the UoW, it may not be an id? I.e. pre-insert.
|
|
47
44
|
const ownerId = (0, index_1.maybeResolveReferenceToId)((0, fields_1.getField)(entity, collection.otherFieldName));
|
|
48
|
-
// We almost always expect ownerId to be found, b/c normally we just hydrated this entity
|
|
49
|
-
// directly from a SQL row with owner_id=X, however we might be loading this collection
|
|
50
|
-
// (i.e. find all children where owner_id=X) when the SQL thinks a child is still pointing
|
|
51
|
-
// at the parent (i.e. owner_id=X in the db), but our already-loaded child has had its
|
|
52
|
-
// `child.owner` field either changed to some other owner, or set to undefined. In either,
|
|
53
|
-
// that child should no longer be parent of this owner's collection, so just return a
|
|
54
|
-
// dummy value.
|
|
55
45
|
return ownerId ?? "dummyNoLongerOwned";
|
|
56
46
|
});
|
|
57
|
-
|
|
47
|
+
const api = (0, EntityManager_1.getEmInternalApi)(em);
|
|
48
|
+
for (const key of _keys) {
|
|
49
|
+
api.setPreloadedRelation(key, fieldName, entitiesById.get(key) || []);
|
|
50
|
+
}
|
|
58
51
|
});
|
|
59
52
|
}
|
|
60
|
-
//# sourceMappingURL=
|
|
53
|
+
//# sourceMappingURL=oneToManyBatchLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneToManyBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/oneToManyBatchLoader.ts"],"names":[],"mappings":";;;AAkBA,oDAkDC;AApED,kEAAiE;AAEjE,oDAAmE;AACnE,sCAAqC;AACrC,oCAQkB;AAClB,oCAAiD;AAGpC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,SAAgB,oBAAoB,CAClC,EAAiB,EACjB,UAAqC;IAErC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACrD,OAAO,EAAE,CAAC,cAAc,CAAC,8BAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACzE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAEvC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAmB,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3D,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;wBACrC,MAAM,EAAE,GAAG,CAAC,eAAe;wBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC;QAEF,IAAA,wCAAgC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,8BAAsB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9E,IAAA,iCAAgB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAA,gCAAgB,EAAC,EAAE,CAAC,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Entity } from "../Entity";
|
|
2
|
+
import { EntityManager } from "../EntityManager";
|
|
3
|
+
import { OneToOneReferenceImpl } from "../relations/OneToOneReference";
|
|
4
|
+
import { BatchLoader } from "./BatchLoader";
|
|
5
|
+
export declare const oneToOneLoadOperation = "o2o-load";
|
|
6
|
+
export declare function oneToOneBatchLoader<T extends Entity, U extends Entity>(em: EntityManager, reference: OneToOneReferenceImpl<T, U>): BatchLoader<string>;
|
|
7
|
+
//# sourceMappingURL=oneToOneBatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneToOneBatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/oneToOneBatchLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AAUnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACpE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,WAAW,CAAC,MAAM,CAAC,CA+CrB"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.oneToOneLoadOperation = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.oneToOneBatchLoader = oneToOneBatchLoader;
|
|
5
|
+
const findDataLoader_1 = require("../dataloaders/findDataLoader");
|
|
6
|
+
const EntityManager_1 = require("../EntityManager");
|
|
5
7
|
const EntityMetadata_1 = require("../EntityMetadata");
|
|
6
8
|
const fields_1 = require("../fields");
|
|
7
9
|
const index_1 = require("../index");
|
|
8
10
|
const utils_1 = require("../utils");
|
|
9
11
|
exports.oneToOneLoadOperation = "o2o-load";
|
|
10
|
-
function
|
|
11
|
-
// The metadata for the entity that contains the reference, i.e. Author.image is the o2o,
|
|
12
|
-
// and (otherMeta/otherFieldName) Image.author is the physical m2o/FK column.
|
|
12
|
+
function oneToOneBatchLoader(em, reference) {
|
|
13
13
|
const meta = (0, EntityMetadata_1.getMetadata)(reference.entity);
|
|
14
14
|
const batchKey = `${meta.tableName}-${reference.fieldName}`;
|
|
15
|
-
return em.
|
|
15
|
+
return em.getBatchLoader(exports.oneToOneLoadOperation, batchKey, async (_keys) => {
|
|
16
16
|
const { otherMeta, otherFieldName } = reference;
|
|
17
17
|
(0, index_1.assertIdsAreTagged)(_keys);
|
|
18
18
|
const keys = (0, index_1.deTagIds)(meta, _keys);
|
|
@@ -38,22 +38,18 @@ function oneToOneDataLoader(em, reference) {
|
|
|
38
38
|
orderBys: [],
|
|
39
39
|
};
|
|
40
40
|
(0, index_1.addTablePerClassJoinsAndClassTag)(query, otherMeta, alias, true);
|
|
41
|
-
const { em } = reference.entity;
|
|
42
41
|
const rows = await em["executeFind"](otherMeta, exports.oneToOneLoadOperation, query, {});
|
|
42
|
+
(0, findDataLoader_1.ensureUnderLimit)(em, rows);
|
|
43
43
|
const entities = em.hydrate(otherMeta.cstr, rows);
|
|
44
44
|
const entitiesByOtherId = (0, utils_1.groupBy)(entities, (entity) => {
|
|
45
|
-
// TODO If this came from the UoW, it may not be an id? I.e. pre-insert.
|
|
46
45
|
const ownerId = (0, index_1.maybeResolveReferenceToId)((0, fields_1.getField)(entity, otherFieldName));
|
|
47
|
-
// We almost always expect ownerId to be found, b/c normally we just hydrated this entity
|
|
48
|
-
// directly from a SQL row with owner_id=X, however we might be loading this reference
|
|
49
|
-
// (i.e. find all children where owner_id=X) when the SQL thinks a child is still pointing
|
|
50
|
-
// at the parent (i.e. owner_id=X in the db), but our already-loaded child has had its
|
|
51
|
-
// `child.owner` field either changed to some other owner, or set to undefined. In either,
|
|
52
|
-
// that child should no longer be parent of this owner's collection, so just return a
|
|
53
|
-
// dummy value.
|
|
54
46
|
return ownerId ?? "dummyNoLongerOwned";
|
|
55
47
|
});
|
|
56
|
-
|
|
48
|
+
const api = (0, EntityManager_1.getEmInternalApi)(em);
|
|
49
|
+
for (const key of _keys) {
|
|
50
|
+
const found = entitiesByOtherId.get(key);
|
|
51
|
+
api.setPreloadedRelation(key, reference.fieldName, found ? [found[0]] : []);
|
|
52
|
+
}
|
|
57
53
|
});
|
|
58
54
|
}
|
|
59
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=oneToOneBatchLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneToOneBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/oneToOneBatchLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
1
|
import { Entity } from "../Entity";
|
|
3
2
|
import { EntityMetadata } from "../EntityMetadata";
|
|
4
3
|
import { EntityManager } from "../index";
|
|
5
4
|
import { LoadHint } from "../loadHints";
|
|
5
|
+
import { BatchLoader } from "./BatchLoader";
|
|
6
6
|
export declare const populateOperation = "populate";
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function populateBatchLoader(em: EntityManager, meta: EntityMetadata, hint: LoadHint<any>, mode: "preload" | "intermixed", opts?: {
|
|
8
8
|
forceReload?: boolean;
|
|
9
|
-
}):
|
|
9
|
+
}): BatchLoader<{
|
|
10
10
|
entity: Entity;
|
|
11
11
|
hint: LoadHint<any>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=populateBatchLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populateBatchLoader.d.ts","sourceRoot":"","sources":["../../src/batchloaders/populateBatchLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAEL,aAAa,EAOd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAIxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EACnB,IAAI,EAAE,SAAS,GAAG,YAAY,EAC9B,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,WAAW,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,CA2KtD"}
|