effectable 1.1.0 → 1.2.0-canary.1
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/README.md +10 -0
- package/build/bootstrap/bootstrap.d.ts.map +1 -1
- package/build/bootstrap/bootstrap.js +6 -2
- package/build/bootstrap/bootstrap.js.map +1 -1
- package/build/bootstrap/types.d.ts +4 -2
- package/build/bootstrap/types.d.ts.map +1 -1
- package/build/component/Component.d.ts.map +1 -1
- package/build/component/Component.js +16 -4
- package/build/component/Component.js.map +1 -1
- package/build/component/GraphRuntime.d.ts +43 -9
- package/build/component/GraphRuntime.d.ts.map +1 -1
- package/build/component/GraphRuntime.js +247 -74
- package/build/component/GraphRuntime.js.map +1 -1
- package/build/component/lifecycle.d.ts +11 -2
- package/build/component/lifecycle.d.ts.map +1 -1
- package/build/component/lifecycle.js +21 -4
- package/build/component/lifecycle.js.map +1 -1
- package/build/connect/connect.d.ts +12 -0
- package/build/connect/connect.d.ts.map +1 -1
- package/build/connect/connect.js +174 -34
- package/build/connect/connect.js.map +1 -1
- package/build/runtime/BusDecorators.d.ts +3 -0
- package/build/runtime/BusDecorators.d.ts.map +1 -1
- package/build/runtime/BusDecorators.js +21 -9
- package/build/runtime/BusDecorators.js.map +1 -1
- package/build/runtime/EventBus.d.ts +12 -0
- package/build/runtime/EventBus.d.ts.map +1 -1
- package/build/runtime/EventBus.js +23 -3
- package/build/runtime/EventBus.js.map +1 -1
- package/build/store/middleware.d.ts +4 -0
- package/build/store/middleware.d.ts.map +1 -1
- package/build/store/middleware.js +15 -4
- package/build/store/middleware.js.map +1 -1
- package/build/store/selector.d.ts.map +1 -1
- package/build/store/selector.js +6 -2
- package/build/store/selector.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -88,6 +88,16 @@ Rules:
|
|
|
88
88
|
- Data-plane components use direct refs and pre-resolved handles for the fast path.
|
|
89
89
|
- `GraphRuntime` manages lifecycle; it is not meant to run on every high-frequency tick.
|
|
90
90
|
|
|
91
|
+
## Fail-safe & correctness contracts
|
|
92
|
+
|
|
93
|
+
Capabilities already enforced by the runtime (documented here as the product contract):
|
|
94
|
+
|
|
95
|
+
- **GraphRuntime fail-safe** — unrecoverable reconcile / dirty-flush errors fail-stop the runtime (`FAILED`); later `reconcile` rejects; teardown is children→parent. A throwing `onAutoReconcileError` observer cannot skip fail-stop. Dirty flush waits for `ACTIVE` + idle queue; `setState` during materialization is buffered.
|
|
96
|
+
- **connect remount / class fields** — same-instance remount re-runs store wiring (flags, mount generation, stale mapped props, context store re-resolve). Class-field `onMount` / `onUnmount` do not shadow connect subscribe/unsubscribe. Stale async `onMount` after remount is ignored.
|
|
97
|
+
- **Middleware construction** — `applyMiddleware` (wrap and enhancer) throws if `dispatch` runs while middleware factories are still constructing (Redux-compatible invariant).
|
|
98
|
+
- **EventBus delivery** — `publish` snapshots typed and any-handlers before invoke; `@OnEvent` fan-out registers every distinct method for a type.
|
|
99
|
+
- **Bootstrap liveness** — `handle.isRunning()` is `false` after GraphRuntime fail-stop; `reconcile` is a no-op when inactive.
|
|
100
|
+
|
|
91
101
|
## Store
|
|
92
102
|
|
|
93
103
|
See [src/store/README.md](src/store/README.md): creating a store, selectors, middleware, `state$`, `select()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAwC,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOzD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAgIjB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EACN,UAAU,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAC1E,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY,EAE1C,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GACnD,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAwC,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOzD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAgIjB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EACN,UAAU,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAC1E,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY,EAE1C,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GACnD,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAsFxE"}
|
|
@@ -159,10 +159,12 @@ async function bootstrap(type, props, options) {
|
|
|
159
159
|
runtime,
|
|
160
160
|
identity: rootIdentity,
|
|
161
161
|
isRunning() {
|
|
162
|
-
|
|
162
|
+
// Include GraphRuntime liveness: fail-stop tears the tree down without
|
|
163
|
+
// going through shutdown(), so `running` alone would lie about health.
|
|
164
|
+
return running && activeGraphRuntime.isActive();
|
|
163
165
|
},
|
|
164
166
|
async reconcile() {
|
|
165
|
-
if (!running) {
|
|
167
|
+
if (!running || !activeGraphRuntime.isActive()) {
|
|
166
168
|
return;
|
|
167
169
|
}
|
|
168
170
|
await activeGraphRuntime.reconcile((0, component_1.h)(type, props));
|
|
@@ -171,6 +173,8 @@ async function bootstrap(type, props, options) {
|
|
|
171
173
|
if (cachedShutdownPromise !== null) {
|
|
172
174
|
return cachedShutdownPromise;
|
|
173
175
|
}
|
|
176
|
+
// Use the latch (`running`), not isRunning(): after fail-stop the runtime
|
|
177
|
+
// is inactive but owned buses/registry still need clearing.
|
|
174
178
|
if (!running) {
|
|
175
179
|
return;
|
|
176
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAsKH,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,14 +83,16 @@ export interface BootstrapHandle<TComponent extends Component<unknown, TProps>,
|
|
|
83
83
|
/** Observability identity of the root runtime. */
|
|
84
84
|
identity: BootstrapRuntimeNodeIdentity;
|
|
85
85
|
/**
|
|
86
|
-
* Checks whether the handle is still
|
|
86
|
+
* Checks whether the handle is still live: shutdown has not been called and
|
|
87
|
+
* the underlying GraphRuntime has not fail-stopped.
|
|
87
88
|
*
|
|
88
|
-
* @returns {boolean} true
|
|
89
|
+
* @returns {boolean} true while the root runtime can still reconcile
|
|
89
90
|
*/
|
|
90
91
|
isRunning(): boolean;
|
|
91
92
|
/**
|
|
92
93
|
* Rebuilds the root runtime tree with the original props.
|
|
93
94
|
* Needed by external reactive sources because `Component.setState()` does not reconcile the subtree.
|
|
95
|
+
* No-op after shutdown or GraphRuntime fail-stop.
|
|
94
96
|
*
|
|
95
97
|
* @returns {Promise<void>} completion of the reconcile pass
|
|
96
98
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bootstrap/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;CAG9B,CAAC;AACX,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AACX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B,CACzC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB,CAC/B,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe,CAC9B,UAAU,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAC7C,MAAM,EACN,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,YAAY,EAAE,UAAU,CAAC;IACzB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,kDAAkD;IAClD,QAAQ,EAAE,4BAA4B,CAAC;IACvC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bootstrap/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;CAG9B,CAAC;AACX,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AACX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B,CACzC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB,CAC/B,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe,CAC9B,UAAU,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAC7C,MAAM,EACN,QAAQ,SAAS,cAAc,GAAG,cAAc,EAChD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,MAAM,SAAS,YAAY,GAAG,YAAY;IAE1C,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,YAAY,EAAE,UAAU,CAAC;IACzB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,kDAAkD;IAClD,QAAQ,EAAE,4BAA4B,CAAC;IACvC;;;;;OAKG;IACH,SAAS,IAAI,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../src/component/Component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IACrC,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CACxD,YAAW,SAAS;IAClB;;;;;;;;;;;;;;OAcG;IACH,gBAAuB,YAAY,EAAE,OAAO,CAAS;IAErD,sFAAsF;IAC/E,KAAK,EAAE,CAAC,CAAC;IAEhB,6EAA6E;IACtE,KAAK,EAAE,CAAC,CAAC;IAEhB;;;OAGG;gBACU,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;IAKvC;;;;;;;;;OASG;IACI,QAAQ,CAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../src/component/Component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IACrC,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CACxD,YAAW,SAAS;IAClB;;;;;;;;;;;;;;OAcG;IACH,gBAAuB,YAAY,EAAE,OAAO,CAAS;IAErD,sFAAsF;IAC/E,KAAK,EAAE,CAAC,CAAC;IAEhB,6EAA6E;IACtE,KAAK,EAAE,CAAC,CAAC;IAEhB;;;OAGG;gBACU,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;IAKvC;;;;;;;;;OASG;IACI,QAAQ,CAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAoCpD;;;;;;;;;OASG;IACI,QAAQ,CAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,OAAO,CAAC,IAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,IAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnC;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAK,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,IAAI;CAC9D"}
|
|
@@ -95,15 +95,27 @@ class Component {
|
|
|
95
95
|
for (const k in src) {
|
|
96
96
|
target[k] = src[k];
|
|
97
97
|
}
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
// State is already committed: always schedule even if onUpdate throws,
|
|
99
|
+
// otherwise mounted compose/children stay stale after a successful write.
|
|
100
|
+
try {
|
|
101
|
+
this.onUpdate(prev, prev);
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
this[types_1.SCHEDULE_UPDATE_HOOK]?.();
|
|
105
|
+
}
|
|
100
106
|
return;
|
|
101
107
|
}
|
|
102
108
|
// Shallow-copy previous state and delta to avoid mutating the original state
|
|
103
109
|
const next = { ...prev, ...delta };
|
|
104
110
|
this.state = next;
|
|
105
|
-
|
|
106
|
-
|
|
111
|
+
// State is already committed: always schedule even if onUpdate throws,
|
|
112
|
+
// otherwise mounted compose/children stay stale after a successful write.
|
|
113
|
+
try {
|
|
114
|
+
this.onUpdate(prev, next);
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
this[types_1.SCHEDULE_UPDATE_HOOK]?.();
|
|
118
|
+
}
|
|
107
119
|
}
|
|
108
120
|
/**
|
|
109
121
|
* Called on every `state` change (from {@link Component.setState} or from connect-HOC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/component/Component.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAIH,mCAA+C;AAa/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,SAAS;IAE7B;;;;;;;;;;;;;;OAcG;IACI,MAAM,CAAU,YAAY,GAAY,KAAK,CAAC;IAErD,sFAAsF;IAC/E,KAAK,CAAI;IAEhB,6EAA6E;IACtE,KAAK,CAAI;IAEhB;;;OAGG;IACH,YAAa,KAAQ,EAAE,YAAgB;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,CAAM,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAE,MAA4B;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,UAAU;YACxC,CAAC,CAAE,MAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YACjE,CAAC,CAAC,MAAM,CAAC;QAEX,yEAAyE;QACzE,+DAA+D;QAC/D,IAAK,IAAI,CAAC,WAA0C,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,IAA0C,CAAC;YAC1D,MAAM,GAAG,GAAG,KAA2C,CAAC;YACxD,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/component/Component.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAIH,mCAA+C;AAa/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,SAAS;IAE7B;;;;;;;;;;;;;;OAcG;IACI,MAAM,CAAU,YAAY,GAAY,KAAK,CAAC;IAErD,sFAAsF;IAC/E,KAAK,CAAI;IAEhB,6EAA6E;IACtE,KAAK,CAAI;IAEhB;;;OAGG;IACH,YAAa,KAAQ,EAAE,YAAgB;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,CAAM,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAE,MAA4B;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,UAAU;YACxC,CAAC,CAAE,MAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YACjE,CAAC,CAAC,MAAM,CAAC;QAEX,yEAAyE;QACzE,+DAA+D;QAC/D,IAAK,IAAI,CAAC,WAA0C,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,IAA0C,CAAC;YAC1D,MAAM,GAAG,GAAG,KAA2C,CAAC;YACxD,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,uEAAuE;YACvE,0EAA0E;YAC1E,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACR,IAA2D,CAAC,4BAAoB,CAAC,EAAE,EAAE,CAAC;YACzF,CAAC;YACD,OAAO;QACT,CAAC;QAED,6EAA6E;QAC7E,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAS,CAAC;QACvB,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACR,IAA2D,CAAC,4BAAoB,CAAC,EAAE,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,QAAQ,CAAE,KAAQ,EAAE,KAAQ;QACjC,kDAAkD;IACpD,CAAC;;AA5FH,8BAyHC"}
|
|
@@ -10,8 +10,17 @@
|
|
|
10
10
|
* - Inject contexts (@UseContext) and bind refs on mount.
|
|
11
11
|
* - Pass updated props into existing instances during reconcile.
|
|
12
12
|
* - Serialize all graph operations through a single operation queue.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* Fail-safe contracts (public behavior):
|
|
15
|
+
* - Unrecoverable reconcile / dirty-flush errors **fail-stop**: mark runtime FAILED, tear the
|
|
16
|
+
* tree down children→parent, reject later `reconcile`. `onAutoReconcileError` is best-effort
|
|
17
|
+
* observability — a throwing observer cannot skip fail-stop.
|
|
18
|
+
* - Dirty flush runs only while ACTIVE and the operation queue is idle; `setState` during child
|
|
19
|
+
* materialization is buffered and applied after the mount/reconcile pass.
|
|
20
|
+
* - UPDATE `commitRef` runs only after successful compose + child reconcile; compose/key
|
|
21
|
+
* validation failure rolls back the fiber (including premount hooks) without leaving phantoms.
|
|
22
|
+
* - Failed cleanup is children-first and does not invoke a phantom parent `onUnmount`.
|
|
23
|
+
* - Orphan DELETE finalize is best-effort so survivors are not fail-stopped for cleanup noise.
|
|
15
24
|
*
|
|
16
25
|
* Current limitations:
|
|
17
26
|
* - Work loop is synchronous (no priority lanes — next increment).
|
|
@@ -45,6 +54,9 @@ type RuntimeState = (typeof RUNTIME_STATE)[keyof typeof RUNTIME_STATE];
|
|
|
45
54
|
/**
|
|
46
55
|
* Runtime engine for a declarative component tree.
|
|
47
56
|
*
|
|
57
|
+
* After fail-stop the instance is terminal (`FAILED`): further `reconcile` rejects;
|
|
58
|
+
* `unmount` remains safe. See the module overview for the fail-safe contracts.
|
|
59
|
+
*
|
|
48
60
|
* Usage:
|
|
49
61
|
* ```typescript
|
|
50
62
|
* const runtime = await GraphRuntime.mount(h(AppRoot));
|
|
@@ -238,9 +250,22 @@ export declare class GraphRuntime {
|
|
|
238
250
|
* @param {Promise<void>} pending - Promise from destroying the previous child
|
|
239
251
|
* @param {Error} primaryError - original materialization error
|
|
240
252
|
* @param {Error[]} cleanupErrors - accumulated cleanup errors
|
|
253
|
+
* @param {RuntimeFiber<unknown>} fiber - parent fiber being rolled back
|
|
254
|
+
* @param {Component<unknown, unknown> | null} instance - parent instance (for post-child cleanup)
|
|
241
255
|
* @returns {Promise<void>}
|
|
242
256
|
*/
|
|
243
257
|
private continueRollbackDestroyAsync;
|
|
258
|
+
/**
|
|
259
|
+
* After rollback destroyed children: run parent failed-cleanup only when startup
|
|
260
|
+
* actually ran (`status !== 'registered'`), then attach cleanup errors and rethrow.
|
|
261
|
+
*
|
|
262
|
+
* @param {RuntimeFiber<unknown>} fiber - parent fiber being rolled back
|
|
263
|
+
* @param {Component<unknown, unknown> | null} instance - parent instance
|
|
264
|
+
* @param {Error} primaryError - original materialization error
|
|
265
|
+
* @param {Error[]} cleanupErrors - accumulated cleanup errors
|
|
266
|
+
* @returns {void | Promise<void>} always rejects via {@link finalizeRollback}
|
|
267
|
+
*/
|
|
268
|
+
private finishRollbackParentCleanup;
|
|
244
269
|
/**
|
|
245
270
|
* Attaches cleanup errors to the primary error and rethrows.
|
|
246
271
|
*
|
|
@@ -261,10 +286,12 @@ export declare class GraphRuntime {
|
|
|
261
286
|
*/
|
|
262
287
|
private injectUpdateHook;
|
|
263
288
|
/**
|
|
264
|
-
* Pre-mount buffer: `setState`
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
289
|
+
* Pre-mount buffer: `setState` cannot yet schedule reconcile (the live hook is
|
|
290
|
+
* injected after startup). Marks the fiber; {@link injectUpdateHook} after
|
|
291
|
+
* startup will call {@link scheduleUpdate} (deferred until the mount pass completes).
|
|
292
|
+
*
|
|
293
|
+
* Injected before child materialization so descendant `onMount` callbacks that
|
|
294
|
+
* `setState` an ancestor are buffered instead of silently dropped.
|
|
268
295
|
*
|
|
269
296
|
* @param {Component<unknown, unknown>} instance - instance before/during startup
|
|
270
297
|
* @param {RuntimeFiber<unknown>} fiber - instance fiber
|
|
@@ -312,7 +339,11 @@ export declare class GraphRuntime {
|
|
|
312
339
|
/**
|
|
313
340
|
* Queues one dirty-flush microtask and publishes {@link activeFlush} for await from `reconcile`.
|
|
314
341
|
*
|
|
315
|
-
* Skip scheduling when runtime is FAILED
|
|
342
|
+
* Skip scheduling when runtime is not ACTIVE (IDLE / FAILED / UNMOUNTING / UNMOUNTED),
|
|
343
|
+
* a public graph operation is in flight, or an async flush is already running. Callers that
|
|
344
|
+
* mutate `dirtyFibers` during those windows must kick this method again after the tree is
|
|
345
|
+
* ACTIVE and idle ({@link GraphRuntime.mount} / {@link processOperationQueue}), or after the
|
|
346
|
+
* outer flush finishes (end-of-pass kick).
|
|
316
347
|
*
|
|
317
348
|
* @returns {void}
|
|
318
349
|
*/
|
|
@@ -494,10 +525,13 @@ export declare class GraphRuntime {
|
|
|
494
525
|
*/
|
|
495
526
|
private updateFiber;
|
|
496
527
|
/**
|
|
497
|
-
* Fiber cleanup after update/compose error:
|
|
498
|
-
* Does not leave the node in `ready`.
|
|
528
|
+
* Fiber cleanup after update/compose error: destroy children first (children → parent),
|
|
529
|
+
* then `runFailedCleanup` + bus dispose. Does not leave the node in `ready`.
|
|
530
|
+
* Child destroy / disposer errors are attached to `primaryError.rollbackErrors` when provided
|
|
531
|
+
* so fail-stop observability still surfaces them (children are no longer destroyed in failStop).
|
|
499
532
|
*
|
|
500
533
|
* @param {RuntimeFiber<unknown>} fiber - fiber that failed
|
|
534
|
+
* @param {unknown} [primaryError] - originating error to attach cleanup failures onto
|
|
501
535
|
* @returns {void | Promise<void>}
|
|
502
536
|
*/
|
|
503
537
|
private runFiberFailedCleanup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../src/component/GraphRuntime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../src/component/GraphRuntime.ts"],"names":[],"mappings":"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"}
|