@contember/bindx 0.1.48 → 0.1.49
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.
|
@@ -108,6 +108,14 @@ export declare class MutationCollector implements MutationDataCollector {
|
|
|
108
108
|
private readonly _relationFields;
|
|
109
109
|
private readonly _nestedCreates;
|
|
110
110
|
private readonly _nestedUpdates;
|
|
111
|
+
/**
|
|
112
|
+
* Entities whose data collection is still on the stack. A schema may point two
|
|
113
|
+
* hasOne relations back at each other (`page.publishedRevision` ↔ `revision.page`),
|
|
114
|
+
* and once both sides are in the store the nested-update walk would recurse until
|
|
115
|
+
* the stack blows. Re-entering an entity means an ancestor frame already emits its
|
|
116
|
+
* changes, so the inner edge contributes nothing (see issue #88).
|
|
117
|
+
*/
|
|
118
|
+
private readonly _collecting;
|
|
111
119
|
constructor(store: SnapshotStore, schemaProvider: MutationSchemaProvider);
|
|
112
120
|
/** Creates an isolated collection session for one persist operation. */
|
|
113
121
|
forkSession(): MutationCollector;
|
|
@@ -168,6 +176,7 @@ export declare class MutationCollector implements MutationDataCollector {
|
|
|
168
176
|
* Returns the create data or null if empty.
|
|
169
177
|
*/
|
|
170
178
|
collectCreateData(entityType: string, entityId: string): Record<string, unknown> | null;
|
|
179
|
+
private buildCreateData;
|
|
171
180
|
/**
|
|
172
181
|
* Collects mutation data for specific fields only.
|
|
173
182
|
* Returns the mutation data containing only the specified fields.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationCollector.d.ts","sourceRoot":"","sources":["../../src/persistence/MutationCollector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MutationCollector.d.ts","sourceRoot":"","sources":["../../src/persistence/MutationCollector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/bindx",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.49",
|
|
4
4
|
"description": "Type-safe data binding framework (core)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@contember/bindx-client": "0.1.
|
|
20
|
+
"@contember/bindx-client": "0.1.49",
|
|
21
21
|
"@contember/graphql-client": "^2.1.0-beta.1"
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|
|
@@ -102,6 +102,14 @@ export class MutationCollector implements MutationDataCollector {
|
|
|
102
102
|
private readonly _relationFields = new Map<string, CollectedRelationField>()
|
|
103
103
|
private readonly _nestedCreates: CollectedNestedCreate[] = []
|
|
104
104
|
private readonly _nestedUpdates: CollectedNestedUpdate[] = []
|
|
105
|
+
/**
|
|
106
|
+
* Entities whose data collection is still on the stack. A schema may point two
|
|
107
|
+
* hasOne relations back at each other (`page.publishedRevision` ↔ `revision.page`),
|
|
108
|
+
* and once both sides are in the store the nested-update walk would recurse until
|
|
109
|
+
* the stack blows. Re-entering an entity means an ancestor frame already emits its
|
|
110
|
+
* changes, so the inner edge contributes nothing (see issue #88).
|
|
111
|
+
*/
|
|
112
|
+
private readonly _collecting = new Set<string>()
|
|
105
113
|
|
|
106
114
|
constructor(
|
|
107
115
|
private readonly store: SnapshotStore,
|
|
@@ -133,6 +141,7 @@ export class MutationCollector implements MutationDataCollector {
|
|
|
133
141
|
this._relationFields.clear()
|
|
134
142
|
this._nestedCreates.length = 0
|
|
135
143
|
this._nestedUpdates.length = 0
|
|
144
|
+
this._collecting.clear()
|
|
136
145
|
}
|
|
137
146
|
|
|
138
147
|
setExcludedEntityKeys(keys: ReadonlySet<string>): void {
|
|
@@ -313,21 +322,30 @@ export class MutationCollector implements MutationDataCollector {
|
|
|
313
322
|
throw new Error(`Entity type '${entityType}' not found in schema`)
|
|
314
323
|
}
|
|
315
324
|
|
|
316
|
-
const
|
|
325
|
+
const key = this.entityKey(entityType, entityId)
|
|
326
|
+
if (this._collecting.has(key)) {
|
|
327
|
+
return null
|
|
328
|
+
}
|
|
329
|
+
this._collecting.add(key)
|
|
330
|
+
try {
|
|
331
|
+
const mutation: Record<string, unknown> = {}
|
|
317
332
|
|
|
318
|
-
|
|
319
|
-
|
|
333
|
+
// Collect scalar field changes
|
|
334
|
+
this.collectScalarChanges(entityType, snapshot, mutation)
|
|
320
335
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
336
|
+
// Materialize placeholder-backed creating-state hasOne relations before
|
|
337
|
+
// collecting, so the collection phase can remain a pure read over the
|
|
338
|
+
// store. Embedded data is not materialized here — for existing
|
|
339
|
+
// (server-side) parents, hasMany state is already authoritative.
|
|
340
|
+
this.materializeForUpdate(entityType, entityId)
|
|
326
341
|
|
|
327
|
-
|
|
328
|
-
|
|
342
|
+
// Collect relation changes
|
|
343
|
+
this.collectRelationChanges(entityType, entityId, mutation)
|
|
329
344
|
|
|
330
|
-
|
|
345
|
+
return Object.keys(mutation).length > 0 ? mutation : null
|
|
346
|
+
} finally {
|
|
347
|
+
this._collecting.delete(key)
|
|
348
|
+
}
|
|
331
349
|
}
|
|
332
350
|
|
|
333
351
|
/**
|
|
@@ -347,6 +365,23 @@ export class MutationCollector implements MutationDataCollector {
|
|
|
347
365
|
throw new Error(`Entity type '${entityType}' not found in schema`)
|
|
348
366
|
}
|
|
349
367
|
|
|
368
|
+
const key = this.entityKey(entityType, entityId)
|
|
369
|
+
if (this._collecting.has(key)) {
|
|
370
|
+
return null
|
|
371
|
+
}
|
|
372
|
+
this._collecting.add(key)
|
|
373
|
+
try {
|
|
374
|
+
return this.buildCreateData(entityType, entityId, snapshot)
|
|
375
|
+
} finally {
|
|
376
|
+
this._collecting.delete(key)
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
private buildCreateData(
|
|
381
|
+
entityType: string,
|
|
382
|
+
entityId: string,
|
|
383
|
+
snapshot: EntitySnapshot,
|
|
384
|
+
): Record<string, unknown> | null {
|
|
350
385
|
const data = snapshot.data as Record<string, unknown>
|
|
351
386
|
const createData: Record<string, unknown> = {}
|
|
352
387
|
|