@context-action/core 1.0.0 → 1.1.0
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/CHANGELOG.md +855 -0
- package/dist/index.cjs +59 -32
- package/dist/index.d.cts +3 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -32
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1416,7 +1416,7 @@ var ActionRegister = class {
|
|
|
1416
1416
|
return newUnregister;
|
|
1417
1417
|
} else {
|
|
1418
1418
|
if (!existing) throw new Error("Internal error: existing handler should be defined in duplicate handler block");
|
|
1419
|
-
this.log(`Handler duplicate ignored, returning
|
|
1419
|
+
this.log(`Handler duplicate ignored, returning no-op unregister: ${String(action)}`, {
|
|
1420
1420
|
handlerId,
|
|
1421
1421
|
existingPriority: existing.config.priority,
|
|
1422
1422
|
newPriority: config.priority,
|
|
@@ -1424,12 +1424,7 @@ var ActionRegister = class {
|
|
|
1424
1424
|
newBlocking: config.blocking,
|
|
1425
1425
|
note: "Use replaceExisting:true to replace"
|
|
1426
1426
|
}, "warn");
|
|
1427
|
-
|
|
1428
|
-
else {
|
|
1429
|
-
const newUnregister = this.createUnregisterFunction(action, handlerId, existing);
|
|
1430
|
-
actionUnregisterFunctions.set(handlerId, newUnregister);
|
|
1431
|
-
return newUnregister;
|
|
1432
|
-
}
|
|
1427
|
+
return () => {};
|
|
1433
1428
|
}
|
|
1434
1429
|
}
|
|
1435
1430
|
pipeline.push(registration);
|
|
@@ -1453,7 +1448,8 @@ var ActionRegister = class {
|
|
|
1453
1448
|
const attemptState = { count: 0 };
|
|
1454
1449
|
const plan = this.resolveDispatchPlan(action, options);
|
|
1455
1450
|
const hasTimingGuard = plan.debounceMs !== void 0 || plan.throttleMs !== void 0;
|
|
1456
|
-
|
|
1451
|
+
const notifiedObservers = /* @__PURE__ */ new Set();
|
|
1452
|
+
const notifiedObserverOutcomes = /* @__PURE__ */ new Set();
|
|
1457
1453
|
let terminalErrorReported = false;
|
|
1458
1454
|
const reportTerminalError = (error) => {
|
|
1459
1455
|
if (terminalErrorReported) return;
|
|
@@ -1461,9 +1457,9 @@ var ActionRegister = class {
|
|
|
1461
1457
|
this.invokeErrorHandler(error, action, payload, options, attemptState.count);
|
|
1462
1458
|
};
|
|
1463
1459
|
const notifyObservers = async (event) => {
|
|
1464
|
-
if (
|
|
1465
|
-
|
|
1466
|
-
await this.executeObservers(action, plan, event);
|
|
1460
|
+
if (notifiedObserverOutcomes.has(event.outcome)) return;
|
|
1461
|
+
notifiedObserverOutcomes.add(event.outcome);
|
|
1462
|
+
await this.executeObservers(action, plan, event, notifiedObservers);
|
|
1467
1463
|
};
|
|
1468
1464
|
const pipelineOperation = async () => {
|
|
1469
1465
|
const guard = plan.guards.length > 0 ? await this.executeGuardPhase(action, payload, timeoutScope.options, plan, dispatchHandlerPromises) : {
|
|
@@ -1498,6 +1494,18 @@ var ActionRegister = class {
|
|
|
1498
1494
|
this.cleanupOneTimeHandlers(action, executedHandlers, dispatchHandlerPromises);
|
|
1499
1495
|
}
|
|
1500
1496
|
}, timeoutScope.options, attemptState, (result) => result.outcome === "failed", () => this.getAttemptHandlers(action, plan).length > 0, void 0, this.shouldDrainBeforeRetry(plan, timeoutScope.options) ? () => this.drainAttemptHandlers(dispatchHandlerPromises) : void 0);
|
|
1497
|
+
if (timeoutScope.options?.signal?.aborted) {
|
|
1498
|
+
if (timeoutScope.options.signal.reason instanceof ActionTimeoutError) throw timeoutScope.options.signal.reason;
|
|
1499
|
+
await notifyObservers({
|
|
1500
|
+
action: String(action),
|
|
1501
|
+
payload: guard.payload,
|
|
1502
|
+
outcome: "cancelled",
|
|
1503
|
+
result: void 0,
|
|
1504
|
+
errors: execution.errors,
|
|
1505
|
+
signal: timeoutScope.options.signal
|
|
1506
|
+
});
|
|
1507
|
+
return;
|
|
1508
|
+
}
|
|
1501
1509
|
if (execution.outcome === "failed") throw execution.errors[execution.errors.length - 1]?.error ?? /* @__PURE__ */ new Error(`Action "${String(action)}" failed`);
|
|
1502
1510
|
const result = this.processResults(execution.results, execution.terminated, execution.terminated ? execution.result : void 0, options?.result);
|
|
1503
1511
|
await notifyObservers({
|
|
@@ -1597,7 +1605,7 @@ var ActionRegister = class {
|
|
|
1597
1605
|
}
|
|
1598
1606
|
const observedPromise = this.raceWithTimeout(observedDispatchPromise, timeoutScope, dispatchHandlerPromises).catch(async (error) => {
|
|
1599
1607
|
reportTerminalError(error);
|
|
1600
|
-
|
|
1608
|
+
this.trackGlobalHandlerPromise(notifyObservers({
|
|
1601
1609
|
action: String(action),
|
|
1602
1610
|
payload,
|
|
1603
1611
|
outcome: "failed",
|
|
@@ -1609,7 +1617,9 @@ var ActionRegister = class {
|
|
|
1609
1617
|
severity: "blocking"
|
|
1610
1618
|
}],
|
|
1611
1619
|
signal: timeoutScope.options?.signal
|
|
1612
|
-
}))
|
|
1620
|
+
})).catch((observerError) => {
|
|
1621
|
+
this.log(`Failure observer delivery failed for ${String(action)}`, observerError, "warn");
|
|
1622
|
+
});
|
|
1613
1623
|
throw error;
|
|
1614
1624
|
});
|
|
1615
1625
|
observedPromise.catch(() => {});
|
|
@@ -1957,12 +1967,18 @@ var ActionRegister = class {
|
|
|
1957
1967
|
/** Observers run after the canonical result has been constructed. Their
|
|
1958
1968
|
* failures are isolated from that immutable result; detached observers are
|
|
1959
1969
|
* still tracked for registry shutdown. */
|
|
1960
|
-
async executeObservers(action, plan, event) {
|
|
1970
|
+
async executeObservers(action, plan, event, notifiedObservers = /* @__PURE__ */ new Set()) {
|
|
1961
1971
|
const observerEvent = this.safeSnapshotObserverEvent(event);
|
|
1972
|
+
const selectedObservers = [];
|
|
1962
1973
|
for (const [registration, observerEntry] of this.getObservers(action, plan)) {
|
|
1974
|
+
if (notifiedObservers.has(registration)) continue;
|
|
1963
1975
|
const successful = observerEvent.outcome === "completed" || observerEvent.outcome === "completed_with_errors";
|
|
1964
1976
|
if (observerEntry.when === "success" && !successful) continue;
|
|
1965
1977
|
if (observerEntry.when === "failure" && successful) continue;
|
|
1978
|
+
notifiedObservers.add(registration);
|
|
1979
|
+
selectedObservers.push([registration, observerEntry]);
|
|
1980
|
+
}
|
|
1981
|
+
for (const [registration, observerEntry] of selectedObservers) {
|
|
1966
1982
|
let shouldRun = true;
|
|
1967
1983
|
try {
|
|
1968
1984
|
shouldRun = registration.config.condition?.(observerEvent.payload) ?? true;
|
|
@@ -2229,13 +2245,16 @@ var ActionRegister = class {
|
|
|
2229
2245
|
this.cleanupOneTimeHandlers(action, executedHandlers, dispatchHandlerPromises);
|
|
2230
2246
|
}
|
|
2231
2247
|
}, timeoutScope.options, attemptState, (result) => result.outcome === "failed", () => this.getAttemptHandlers(action, plan).length > 0, retryTelemetry, this.shouldDrainBeforeRetry(plan, timeoutScope.options) ? () => this.drainAttemptHandlers(dispatchHandlerPromises) : void 0);
|
|
2232
|
-
if (timeoutScope.options?.signal?.aborted)
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2248
|
+
if (timeoutScope.options?.signal?.aborted) {
|
|
2249
|
+
if (timeoutScope.options.signal.reason instanceof ActionTimeoutError) throw timeoutScope.options.signal.reason;
|
|
2250
|
+
return {
|
|
2251
|
+
...rawExecution,
|
|
2252
|
+
success: false,
|
|
2253
|
+
aborted: true,
|
|
2254
|
+
abortReason: typeof timeoutScope.options.signal.reason === "string" ? timeoutScope.options.signal.reason : "Action dispatch aborted by signal",
|
|
2255
|
+
outcome: "cancelled"
|
|
2256
|
+
};
|
|
2257
|
+
}
|
|
2239
2258
|
const executionWithGuards = {
|
|
2240
2259
|
...rawExecution,
|
|
2241
2260
|
handlers: [...guard.outcomes.map((outcome) => ({
|
|
@@ -2296,7 +2315,8 @@ var ActionRegister = class {
|
|
|
2296
2315
|
timeoutScope.onTimeout((error) => queued.cancel(error));
|
|
2297
2316
|
return queued.promise;
|
|
2298
2317
|
};
|
|
2299
|
-
|
|
2318
|
+
const notifiedObservers = /* @__PURE__ */ new Set();
|
|
2319
|
+
const notifiedObserverOutcomes = /* @__PURE__ */ new Set();
|
|
2300
2320
|
let terminalErrorReported = false;
|
|
2301
2321
|
const reportTerminalError = (error) => {
|
|
2302
2322
|
if (terminalErrorReported) return;
|
|
@@ -2304,9 +2324,9 @@ var ActionRegister = class {
|
|
|
2304
2324
|
this.invokeErrorHandler(error, action, payload, options, attemptState.count);
|
|
2305
2325
|
};
|
|
2306
2326
|
const notifyObservers = async (event) => {
|
|
2307
|
-
if (
|
|
2308
|
-
|
|
2309
|
-
await this.executeObservers(action, plan, event);
|
|
2327
|
+
if (notifiedObserverOutcomes.has(event.outcome)) return;
|
|
2328
|
+
notifiedObserverOutcomes.add(event.outcome);
|
|
2329
|
+
await this.executeObservers(action, plan, event, notifiedObservers);
|
|
2310
2330
|
};
|
|
2311
2331
|
let dispatchPromise;
|
|
2312
2332
|
let observedDispatchPromise;
|
|
@@ -2364,7 +2384,7 @@ var ActionRegister = class {
|
|
|
2364
2384
|
}
|
|
2365
2385
|
const observedPromise = this.raceWithTimeout(observedDispatchPromise, timeoutScope, dispatchHandlerPromises).catch(async (error) => {
|
|
2366
2386
|
reportTerminalError(error);
|
|
2367
|
-
|
|
2387
|
+
this.trackGlobalHandlerPromise(notifyObservers({
|
|
2368
2388
|
action: String(action),
|
|
2369
2389
|
payload: observerPayload,
|
|
2370
2390
|
outcome: "failed",
|
|
@@ -2376,7 +2396,9 @@ var ActionRegister = class {
|
|
|
2376
2396
|
severity: "blocking"
|
|
2377
2397
|
}],
|
|
2378
2398
|
signal: timeoutScope.options?.signal
|
|
2379
|
-
}))
|
|
2399
|
+
})).catch((observerError) => {
|
|
2400
|
+
this.log(`Failure observer delivery failed for ${String(action)}`, observerError, "warn");
|
|
2401
|
+
});
|
|
2380
2402
|
throw error;
|
|
2381
2403
|
});
|
|
2382
2404
|
observedPromise.catch(() => {});
|
|
@@ -2616,7 +2638,7 @@ var ActionRegister = class {
|
|
|
2616
2638
|
if (resultOptions.maxResults !== void 0 && (!Number.isSafeInteger(resultOptions.maxResults) || resultOptions.maxResults < 0)) throw new RangeError("maxResults must be a non-negative safe integer.");
|
|
2617
2639
|
}
|
|
2618
2640
|
processResults(results, terminated, terminationResult, resultOptions) {
|
|
2619
|
-
if (terminated
|
|
2641
|
+
if (terminated) return terminationResult;
|
|
2620
2642
|
if (!resultOptions) return results.length > 0 ? results[results.length - 1] : void 0;
|
|
2621
2643
|
if (!resultOptions.collect && !resultOptions.strategy) return;
|
|
2622
2644
|
const collectedResults = results.filter((result) => result !== void 0);
|
|
@@ -2990,7 +3012,7 @@ var ActionRegister = class {
|
|
|
2990
3012
|
cancelPendingDispatches() {
|
|
2991
3013
|
this.dispatchQueue?.clear({ rejectPending: true });
|
|
2992
3014
|
}
|
|
2993
|
-
beginShutdown() {
|
|
3015
|
+
beginShutdown(deferCleanup = false) {
|
|
2994
3016
|
if (this.destroyAsyncPromise) return this.destroyAsyncPromise;
|
|
2995
3017
|
if (this.lifecycleState === "destroyed") {
|
|
2996
3018
|
this.destroyAsyncPromise = Promise.resolve();
|
|
@@ -3010,7 +3032,7 @@ var ActionRegister = class {
|
|
|
3010
3032
|
rejectPending: true,
|
|
3011
3033
|
reason: shutdownError
|
|
3012
3034
|
});
|
|
3013
|
-
if (this.dispatchConstructionDepth === 0 && this.activeDispatches.size === 0 && this.activeHandlerPromises.size === 0) {
|
|
3035
|
+
if (!deferCleanup && this.dispatchConstructionDepth === 0 && this.activeDispatches.size === 0 && this.activeHandlerPromises.size === 0) {
|
|
3014
3036
|
this.finalizeDestroy();
|
|
3015
3037
|
resolveShutdown();
|
|
3016
3038
|
return this.destroyAsyncPromise;
|
|
@@ -3048,13 +3070,18 @@ var ActionRegister = class {
|
|
|
3048
3070
|
* Begin terminal shutdown and resolve after all started handlers have settled
|
|
3049
3071
|
* and their registered cleanup functions have run.
|
|
3050
3072
|
*
|
|
3073
|
+
* `deferCleanup` closes the register synchronously while deferring final
|
|
3074
|
+
* registered cleanup until the next microtask. This is useful for React
|
|
3075
|
+
* commit phases that must invalidate stale dispatchers immediately without
|
|
3076
|
+
* invoking user cleanup code inside the commit hook itself.
|
|
3077
|
+
*
|
|
3051
3078
|
* Repeated calls return the same promise. New registrations and dispatches are
|
|
3052
3079
|
* rejected as soon as shutdown begins.
|
|
3053
3080
|
*
|
|
3054
3081
|
* @public
|
|
3055
3082
|
*/
|
|
3056
|
-
destroyAsync() {
|
|
3057
|
-
return this.beginShutdown();
|
|
3083
|
+
destroyAsync(options = {}) {
|
|
3084
|
+
return this.beginShutdown(options.deferCleanup ?? false);
|
|
3058
3085
|
}
|
|
3059
3086
|
};
|
|
3060
3087
|
|
package/dist/index.d.cts
CHANGED
|
@@ -395,7 +395,9 @@ declare class ActionRegister<T extends ActionPayloadMap = Record<string, unknown
|
|
|
395
395
|
private beginShutdown;
|
|
396
396
|
private finalizeDestroy;
|
|
397
397
|
destroy(): void;
|
|
398
|
-
destroyAsync(
|
|
398
|
+
destroyAsync(options?: {
|
|
399
|
+
deferCleanup?: boolean;
|
|
400
|
+
}): Promise<void>;
|
|
399
401
|
}
|
|
400
402
|
//#endregion
|
|
401
403
|
//#region src/action-guard.d.ts
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/ActionRegister.ts","../src/action-guard.ts","../src/errors.ts","../src/execution-modes.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/ActionRegister.ts","../src/action-guard.ts","../src/errors.ts","../src/execution-modes.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -395,7 +395,9 @@ declare class ActionRegister<T extends ActionPayloadMap = Record<string, unknown
|
|
|
395
395
|
private beginShutdown;
|
|
396
396
|
private finalizeDestroy;
|
|
397
397
|
destroy(): void;
|
|
398
|
-
destroyAsync(
|
|
398
|
+
destroyAsync(options?: {
|
|
399
|
+
deferCleanup?: boolean;
|
|
400
|
+
}): Promise<void>;
|
|
399
401
|
}
|
|
400
402
|
//#endregion
|
|
401
403
|
//#region src/action-guard.d.ts
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/ActionRegister.ts","../src/action-guard.ts","../src/errors.ts","../src/execution-modes.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/ActionRegister.ts","../src/action-guard.ts","../src/errors.ts","../src/execution-modes.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1414,7 +1414,7 @@ var ActionRegister = class {
|
|
|
1414
1414
|
return newUnregister;
|
|
1415
1415
|
} else {
|
|
1416
1416
|
if (!existing) throw new Error("Internal error: existing handler should be defined in duplicate handler block");
|
|
1417
|
-
this.log(`Handler duplicate ignored, returning
|
|
1417
|
+
this.log(`Handler duplicate ignored, returning no-op unregister: ${String(action)}`, {
|
|
1418
1418
|
handlerId,
|
|
1419
1419
|
existingPriority: existing.config.priority,
|
|
1420
1420
|
newPriority: config.priority,
|
|
@@ -1422,12 +1422,7 @@ var ActionRegister = class {
|
|
|
1422
1422
|
newBlocking: config.blocking,
|
|
1423
1423
|
note: "Use replaceExisting:true to replace"
|
|
1424
1424
|
}, "warn");
|
|
1425
|
-
|
|
1426
|
-
else {
|
|
1427
|
-
const newUnregister = this.createUnregisterFunction(action, handlerId, existing);
|
|
1428
|
-
actionUnregisterFunctions.set(handlerId, newUnregister);
|
|
1429
|
-
return newUnregister;
|
|
1430
|
-
}
|
|
1425
|
+
return () => {};
|
|
1431
1426
|
}
|
|
1432
1427
|
}
|
|
1433
1428
|
pipeline.push(registration);
|
|
@@ -1451,7 +1446,8 @@ var ActionRegister = class {
|
|
|
1451
1446
|
const attemptState = { count: 0 };
|
|
1452
1447
|
const plan = this.resolveDispatchPlan(action, options);
|
|
1453
1448
|
const hasTimingGuard = plan.debounceMs !== void 0 || plan.throttleMs !== void 0;
|
|
1454
|
-
|
|
1449
|
+
const notifiedObservers = /* @__PURE__ */ new Set();
|
|
1450
|
+
const notifiedObserverOutcomes = /* @__PURE__ */ new Set();
|
|
1455
1451
|
let terminalErrorReported = false;
|
|
1456
1452
|
const reportTerminalError = (error) => {
|
|
1457
1453
|
if (terminalErrorReported) return;
|
|
@@ -1459,9 +1455,9 @@ var ActionRegister = class {
|
|
|
1459
1455
|
this.invokeErrorHandler(error, action, payload, options, attemptState.count);
|
|
1460
1456
|
};
|
|
1461
1457
|
const notifyObservers = async (event) => {
|
|
1462
|
-
if (
|
|
1463
|
-
|
|
1464
|
-
await this.executeObservers(action, plan, event);
|
|
1458
|
+
if (notifiedObserverOutcomes.has(event.outcome)) return;
|
|
1459
|
+
notifiedObserverOutcomes.add(event.outcome);
|
|
1460
|
+
await this.executeObservers(action, plan, event, notifiedObservers);
|
|
1465
1461
|
};
|
|
1466
1462
|
const pipelineOperation = async () => {
|
|
1467
1463
|
const guard = plan.guards.length > 0 ? await this.executeGuardPhase(action, payload, timeoutScope.options, plan, dispatchHandlerPromises) : {
|
|
@@ -1496,6 +1492,18 @@ var ActionRegister = class {
|
|
|
1496
1492
|
this.cleanupOneTimeHandlers(action, executedHandlers, dispatchHandlerPromises);
|
|
1497
1493
|
}
|
|
1498
1494
|
}, timeoutScope.options, attemptState, (result) => result.outcome === "failed", () => this.getAttemptHandlers(action, plan).length > 0, void 0, this.shouldDrainBeforeRetry(plan, timeoutScope.options) ? () => this.drainAttemptHandlers(dispatchHandlerPromises) : void 0);
|
|
1495
|
+
if (timeoutScope.options?.signal?.aborted) {
|
|
1496
|
+
if (timeoutScope.options.signal.reason instanceof ActionTimeoutError) throw timeoutScope.options.signal.reason;
|
|
1497
|
+
await notifyObservers({
|
|
1498
|
+
action: String(action),
|
|
1499
|
+
payload: guard.payload,
|
|
1500
|
+
outcome: "cancelled",
|
|
1501
|
+
result: void 0,
|
|
1502
|
+
errors: execution.errors,
|
|
1503
|
+
signal: timeoutScope.options.signal
|
|
1504
|
+
});
|
|
1505
|
+
return;
|
|
1506
|
+
}
|
|
1499
1507
|
if (execution.outcome === "failed") throw execution.errors[execution.errors.length - 1]?.error ?? /* @__PURE__ */ new Error(`Action "${String(action)}" failed`);
|
|
1500
1508
|
const result = this.processResults(execution.results, execution.terminated, execution.terminated ? execution.result : void 0, options?.result);
|
|
1501
1509
|
await notifyObservers({
|
|
@@ -1595,7 +1603,7 @@ var ActionRegister = class {
|
|
|
1595
1603
|
}
|
|
1596
1604
|
const observedPromise = this.raceWithTimeout(observedDispatchPromise, timeoutScope, dispatchHandlerPromises).catch(async (error) => {
|
|
1597
1605
|
reportTerminalError(error);
|
|
1598
|
-
|
|
1606
|
+
this.trackGlobalHandlerPromise(notifyObservers({
|
|
1599
1607
|
action: String(action),
|
|
1600
1608
|
payload,
|
|
1601
1609
|
outcome: "failed",
|
|
@@ -1607,7 +1615,9 @@ var ActionRegister = class {
|
|
|
1607
1615
|
severity: "blocking"
|
|
1608
1616
|
}],
|
|
1609
1617
|
signal: timeoutScope.options?.signal
|
|
1610
|
-
}))
|
|
1618
|
+
})).catch((observerError) => {
|
|
1619
|
+
this.log(`Failure observer delivery failed for ${String(action)}`, observerError, "warn");
|
|
1620
|
+
});
|
|
1611
1621
|
throw error;
|
|
1612
1622
|
});
|
|
1613
1623
|
observedPromise.catch(() => {});
|
|
@@ -1955,12 +1965,18 @@ var ActionRegister = class {
|
|
|
1955
1965
|
/** Observers run after the canonical result has been constructed. Their
|
|
1956
1966
|
* failures are isolated from that immutable result; detached observers are
|
|
1957
1967
|
* still tracked for registry shutdown. */
|
|
1958
|
-
async executeObservers(action, plan, event) {
|
|
1968
|
+
async executeObservers(action, plan, event, notifiedObservers = /* @__PURE__ */ new Set()) {
|
|
1959
1969
|
const observerEvent = this.safeSnapshotObserverEvent(event);
|
|
1970
|
+
const selectedObservers = [];
|
|
1960
1971
|
for (const [registration, observerEntry] of this.getObservers(action, plan)) {
|
|
1972
|
+
if (notifiedObservers.has(registration)) continue;
|
|
1961
1973
|
const successful = observerEvent.outcome === "completed" || observerEvent.outcome === "completed_with_errors";
|
|
1962
1974
|
if (observerEntry.when === "success" && !successful) continue;
|
|
1963
1975
|
if (observerEntry.when === "failure" && successful) continue;
|
|
1976
|
+
notifiedObservers.add(registration);
|
|
1977
|
+
selectedObservers.push([registration, observerEntry]);
|
|
1978
|
+
}
|
|
1979
|
+
for (const [registration, observerEntry] of selectedObservers) {
|
|
1964
1980
|
let shouldRun = true;
|
|
1965
1981
|
try {
|
|
1966
1982
|
shouldRun = registration.config.condition?.(observerEvent.payload) ?? true;
|
|
@@ -2227,13 +2243,16 @@ var ActionRegister = class {
|
|
|
2227
2243
|
this.cleanupOneTimeHandlers(action, executedHandlers, dispatchHandlerPromises);
|
|
2228
2244
|
}
|
|
2229
2245
|
}, timeoutScope.options, attemptState, (result) => result.outcome === "failed", () => this.getAttemptHandlers(action, plan).length > 0, retryTelemetry, this.shouldDrainBeforeRetry(plan, timeoutScope.options) ? () => this.drainAttemptHandlers(dispatchHandlerPromises) : void 0);
|
|
2230
|
-
if (timeoutScope.options?.signal?.aborted)
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2246
|
+
if (timeoutScope.options?.signal?.aborted) {
|
|
2247
|
+
if (timeoutScope.options.signal.reason instanceof ActionTimeoutError) throw timeoutScope.options.signal.reason;
|
|
2248
|
+
return {
|
|
2249
|
+
...rawExecution,
|
|
2250
|
+
success: false,
|
|
2251
|
+
aborted: true,
|
|
2252
|
+
abortReason: typeof timeoutScope.options.signal.reason === "string" ? timeoutScope.options.signal.reason : "Action dispatch aborted by signal",
|
|
2253
|
+
outcome: "cancelled"
|
|
2254
|
+
};
|
|
2255
|
+
}
|
|
2237
2256
|
const executionWithGuards = {
|
|
2238
2257
|
...rawExecution,
|
|
2239
2258
|
handlers: [...guard.outcomes.map((outcome) => ({
|
|
@@ -2294,7 +2313,8 @@ var ActionRegister = class {
|
|
|
2294
2313
|
timeoutScope.onTimeout((error) => queued.cancel(error));
|
|
2295
2314
|
return queued.promise;
|
|
2296
2315
|
};
|
|
2297
|
-
|
|
2316
|
+
const notifiedObservers = /* @__PURE__ */ new Set();
|
|
2317
|
+
const notifiedObserverOutcomes = /* @__PURE__ */ new Set();
|
|
2298
2318
|
let terminalErrorReported = false;
|
|
2299
2319
|
const reportTerminalError = (error) => {
|
|
2300
2320
|
if (terminalErrorReported) return;
|
|
@@ -2302,9 +2322,9 @@ var ActionRegister = class {
|
|
|
2302
2322
|
this.invokeErrorHandler(error, action, payload, options, attemptState.count);
|
|
2303
2323
|
};
|
|
2304
2324
|
const notifyObservers = async (event) => {
|
|
2305
|
-
if (
|
|
2306
|
-
|
|
2307
|
-
await this.executeObservers(action, plan, event);
|
|
2325
|
+
if (notifiedObserverOutcomes.has(event.outcome)) return;
|
|
2326
|
+
notifiedObserverOutcomes.add(event.outcome);
|
|
2327
|
+
await this.executeObservers(action, plan, event, notifiedObservers);
|
|
2308
2328
|
};
|
|
2309
2329
|
let dispatchPromise;
|
|
2310
2330
|
let observedDispatchPromise;
|
|
@@ -2362,7 +2382,7 @@ var ActionRegister = class {
|
|
|
2362
2382
|
}
|
|
2363
2383
|
const observedPromise = this.raceWithTimeout(observedDispatchPromise, timeoutScope, dispatchHandlerPromises).catch(async (error) => {
|
|
2364
2384
|
reportTerminalError(error);
|
|
2365
|
-
|
|
2385
|
+
this.trackGlobalHandlerPromise(notifyObservers({
|
|
2366
2386
|
action: String(action),
|
|
2367
2387
|
payload: observerPayload,
|
|
2368
2388
|
outcome: "failed",
|
|
@@ -2374,7 +2394,9 @@ var ActionRegister = class {
|
|
|
2374
2394
|
severity: "blocking"
|
|
2375
2395
|
}],
|
|
2376
2396
|
signal: timeoutScope.options?.signal
|
|
2377
|
-
}))
|
|
2397
|
+
})).catch((observerError) => {
|
|
2398
|
+
this.log(`Failure observer delivery failed for ${String(action)}`, observerError, "warn");
|
|
2399
|
+
});
|
|
2378
2400
|
throw error;
|
|
2379
2401
|
});
|
|
2380
2402
|
observedPromise.catch(() => {});
|
|
@@ -2614,7 +2636,7 @@ var ActionRegister = class {
|
|
|
2614
2636
|
if (resultOptions.maxResults !== void 0 && (!Number.isSafeInteger(resultOptions.maxResults) || resultOptions.maxResults < 0)) throw new RangeError("maxResults must be a non-negative safe integer.");
|
|
2615
2637
|
}
|
|
2616
2638
|
processResults(results, terminated, terminationResult, resultOptions) {
|
|
2617
|
-
if (terminated
|
|
2639
|
+
if (terminated) return terminationResult;
|
|
2618
2640
|
if (!resultOptions) return results.length > 0 ? results[results.length - 1] : void 0;
|
|
2619
2641
|
if (!resultOptions.collect && !resultOptions.strategy) return;
|
|
2620
2642
|
const collectedResults = results.filter((result) => result !== void 0);
|
|
@@ -2988,7 +3010,7 @@ var ActionRegister = class {
|
|
|
2988
3010
|
cancelPendingDispatches() {
|
|
2989
3011
|
this.dispatchQueue?.clear({ rejectPending: true });
|
|
2990
3012
|
}
|
|
2991
|
-
beginShutdown() {
|
|
3013
|
+
beginShutdown(deferCleanup = false) {
|
|
2992
3014
|
if (this.destroyAsyncPromise) return this.destroyAsyncPromise;
|
|
2993
3015
|
if (this.lifecycleState === "destroyed") {
|
|
2994
3016
|
this.destroyAsyncPromise = Promise.resolve();
|
|
@@ -3008,7 +3030,7 @@ var ActionRegister = class {
|
|
|
3008
3030
|
rejectPending: true,
|
|
3009
3031
|
reason: shutdownError
|
|
3010
3032
|
});
|
|
3011
|
-
if (this.dispatchConstructionDepth === 0 && this.activeDispatches.size === 0 && this.activeHandlerPromises.size === 0) {
|
|
3033
|
+
if (!deferCleanup && this.dispatchConstructionDepth === 0 && this.activeDispatches.size === 0 && this.activeHandlerPromises.size === 0) {
|
|
3012
3034
|
this.finalizeDestroy();
|
|
3013
3035
|
resolveShutdown();
|
|
3014
3036
|
return this.destroyAsyncPromise;
|
|
@@ -3046,13 +3068,18 @@ var ActionRegister = class {
|
|
|
3046
3068
|
* Begin terminal shutdown and resolve after all started handlers have settled
|
|
3047
3069
|
* and their registered cleanup functions have run.
|
|
3048
3070
|
*
|
|
3071
|
+
* `deferCleanup` closes the register synchronously while deferring final
|
|
3072
|
+
* registered cleanup until the next microtask. This is useful for React
|
|
3073
|
+
* commit phases that must invalidate stale dispatchers immediately without
|
|
3074
|
+
* invoking user cleanup code inside the commit hook itself.
|
|
3075
|
+
*
|
|
3049
3076
|
* Repeated calls return the same promise. New registrations and dispatches are
|
|
3050
3077
|
* rejected as soon as shutdown begins.
|
|
3051
3078
|
*
|
|
3052
3079
|
* @public
|
|
3053
3080
|
*/
|
|
3054
|
-
destroyAsync() {
|
|
3055
|
-
return this.beginShutdown();
|
|
3081
|
+
destroyAsync(options = {}) {
|
|
3082
|
+
return this.beginShutdown(options.deferCleanup ?? false);
|
|
3056
3083
|
}
|
|
3057
3084
|
};
|
|
3058
3085
|
|