@nisli/core 0.53.0 → 0.54.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 +163 -98
- package/dist/component.js +52 -8
- package/dist/component.js.map +1 -1
- package/dist/hmr/registry.js +4 -0
- package/dist/hmr/registry.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/projection.js +10 -5
- package/dist/projection.js.map +1 -1
- package/dist/resource.d.ts +28 -0
- package/dist/resource.js +112 -0
- package/dist/resource.js.map +1 -0
- package/dist/signal.js +23 -11
- package/dist/signal.js.map +1 -1
- package/dist/template.js +178 -135
- package/dist/template.js.map +1 -1
- package/package.json +1 -1
package/dist/resource.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* resource.ts — Local async derivations with reactive source tracking.
|
|
3
|
+
*
|
|
4
|
+
* `resource()` is the async counterpart to a local computed value: source
|
|
5
|
+
* dependencies are tracked synchronously, while the loader runs outside the
|
|
6
|
+
* reactive observer and commits only the newest live generation.
|
|
7
|
+
*/
|
|
8
|
+
import { getCurrentComponent, hasContext } from './context.js';
|
|
9
|
+
import { effect, signal } from './signal.js';
|
|
10
|
+
/**
|
|
11
|
+
* Derive local async state from a synchronously tracked source.
|
|
12
|
+
*
|
|
13
|
+
* Only signal reads inside `source` are dependencies. `loader` starts in a
|
|
14
|
+
* microtask, outside the active observer, so signal reads before or after its
|
|
15
|
+
* first await never accidentally widen the source set.
|
|
16
|
+
*/
|
|
17
|
+
export function resource(source, loader) {
|
|
18
|
+
const data = signal(undefined);
|
|
19
|
+
const loading = signal(false);
|
|
20
|
+
const error = signal(null);
|
|
21
|
+
const refreshVersion = signal(0);
|
|
22
|
+
let generation = 0;
|
|
23
|
+
let disposed = false;
|
|
24
|
+
let stopEffect = () => { };
|
|
25
|
+
const dispose = () => {
|
|
26
|
+
if (disposed)
|
|
27
|
+
return;
|
|
28
|
+
disposed = true;
|
|
29
|
+
generation++;
|
|
30
|
+
stopEffect();
|
|
31
|
+
loading.value = false;
|
|
32
|
+
};
|
|
33
|
+
// Register the full resource disposer before effect() registers its own
|
|
34
|
+
// lower-level disposer, so component teardown first invalidates generations
|
|
35
|
+
// and then performs the idempotent raw effect cleanup.
|
|
36
|
+
if (hasContext()) {
|
|
37
|
+
getCurrentComponent().addDisposer(dispose);
|
|
38
|
+
}
|
|
39
|
+
stopEffect = effect(() => {
|
|
40
|
+
refreshVersion.value;
|
|
41
|
+
const currentGeneration = ++generation;
|
|
42
|
+
let sourceValue;
|
|
43
|
+
try {
|
|
44
|
+
sourceValue = source();
|
|
45
|
+
}
|
|
46
|
+
catch (cause) {
|
|
47
|
+
loading.value = false;
|
|
48
|
+
error.value = toError(cause);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// `undefined` is the single disabled sentinel. It covers the markdown
|
|
52
|
+
// consumer's empty-content branch without growing an options surface.
|
|
53
|
+
if (sourceValue === undefined) {
|
|
54
|
+
data.value = undefined;
|
|
55
|
+
loading.value = false;
|
|
56
|
+
error.value = null;
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const controller = new AbortController();
|
|
60
|
+
loading.value = true;
|
|
61
|
+
error.value = null;
|
|
62
|
+
const enabledSource = sourceValue;
|
|
63
|
+
const isStale = () => (disposed
|
|
64
|
+
|| controller.signal.aborted
|
|
65
|
+
|| currentGeneration !== generation);
|
|
66
|
+
// The microtask boundary is deliberate: loader signal reads are NOT source
|
|
67
|
+
// dependencies, and synchronous loader throws become normal rejections.
|
|
68
|
+
void Promise.resolve().then(async () => {
|
|
69
|
+
if (isStale())
|
|
70
|
+
return;
|
|
71
|
+
try {
|
|
72
|
+
const value = await loader(enabledSource, controller.signal);
|
|
73
|
+
if (isStale())
|
|
74
|
+
return;
|
|
75
|
+
data.value = value;
|
|
76
|
+
loading.value = false;
|
|
77
|
+
}
|
|
78
|
+
catch (cause) {
|
|
79
|
+
if (isStale())
|
|
80
|
+
return;
|
|
81
|
+
error.value = toError(cause);
|
|
82
|
+
loading.value = false;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return () => {
|
|
86
|
+
if (currentGeneration === generation)
|
|
87
|
+
generation++;
|
|
88
|
+
controller.abort();
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
data,
|
|
93
|
+
loading,
|
|
94
|
+
error,
|
|
95
|
+
refresh() {
|
|
96
|
+
if (!disposed)
|
|
97
|
+
refreshVersion.value++;
|
|
98
|
+
},
|
|
99
|
+
dispose,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function toError(cause) {
|
|
103
|
+
if (cause instanceof Error)
|
|
104
|
+
return cause;
|
|
105
|
+
try {
|
|
106
|
+
return new Error(String(cause));
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return new Error('Unknown error');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAelE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA2B,EAC3B,MAA0D;IAE1D,MAAM,IAAI,GAAG,MAAM,CAAgB,SAAS,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEF,wEAAwE;IACxE,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,mBAAmB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE;QACvB,cAAc,CAAC,KAAK,CAAC;QACrB,MAAM,iBAAiB,GAAG,EAAE,UAAU,CAAC;QAEvC,IAAI,WAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,MAAM,aAAa,GAAG,WAAgB,CAAC;QACvC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CACpB,QAAQ;eACL,UAAU,CAAC,MAAM,CAAC,OAAO;eACzB,iBAAiB,KAAK,UAAU,CACpC,CAAC;QAEF,2EAA2E;QAC3E,wEAAwE;QACxE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,OAAO,EAAE;gBAAE,OAAO;YAEtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,OAAO,EAAE;oBAAE,OAAO;gBACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,EAAE;oBAAE,OAAO;gBACtB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,IAAI,iBAAiB,KAAK,UAAU;gBAAE,UAAU,EAAE,CAAC;YACnD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;YACL,IAAI,CAAC,QAAQ;gBAAE,cAAc,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/dist/signal.js
CHANGED
|
@@ -63,6 +63,7 @@ var NodeState;
|
|
|
63
63
|
NodeState[NodeState["MaybeDirty"] = 1] = "MaybeDirty";
|
|
64
64
|
NodeState[NodeState["Dirty"] = 2] = "Dirty";
|
|
65
65
|
})(NodeState || (NodeState = {}));
|
|
66
|
+
const NO_COMPUTED_ERROR = Symbol('no-computed-error');
|
|
66
67
|
class SignalImpl {
|
|
67
68
|
[SIGNAL_BRAND] = true;
|
|
68
69
|
/** @internal */
|
|
@@ -90,13 +91,13 @@ class SignalImpl {
|
|
|
90
91
|
notifyObservers(this._node.observers);
|
|
91
92
|
}
|
|
92
93
|
subscribe(fn) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
return effect(() => {
|
|
95
|
+
const value = this.value;
|
|
96
|
+
// A subscription depends on THIS signal only. Reads performed by the
|
|
97
|
+
// consumer callback are observational work, not reactive dependencies
|
|
98
|
+
// of the subscription itself (issue 0004).
|
|
99
|
+
untrack(() => fn(value));
|
|
98
100
|
});
|
|
99
|
-
return dispose;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
function notifyObservers(observers) {
|
|
@@ -112,6 +113,7 @@ class ComputedImpl {
|
|
|
112
113
|
state = NodeState.Dirty; // Start dirty so first read computes
|
|
113
114
|
sources = new Set();
|
|
114
115
|
computing = false;
|
|
116
|
+
error = NO_COMPUTED_ERROR;
|
|
115
117
|
constructor(fn) {
|
|
116
118
|
this.compute = fn;
|
|
117
119
|
this._node = {
|
|
@@ -133,6 +135,9 @@ class ComputedImpl {
|
|
|
133
135
|
if (this.state !== NodeState.Clean) {
|
|
134
136
|
this.update();
|
|
135
137
|
}
|
|
138
|
+
if (this.error !== NO_COMPUTED_ERROR) {
|
|
139
|
+
throw this.error;
|
|
140
|
+
}
|
|
136
141
|
return this._node.value;
|
|
137
142
|
}
|
|
138
143
|
update() {
|
|
@@ -147,6 +152,7 @@ class ComputedImpl {
|
|
|
147
152
|
this.computing = true;
|
|
148
153
|
try {
|
|
149
154
|
const newValue = this.compute();
|
|
155
|
+
this.error = NO_COMPUTED_ERROR;
|
|
150
156
|
if (!Object.is(this._node.value, newValue)) {
|
|
151
157
|
this._node.value = newValue;
|
|
152
158
|
this._node.lastChanged = ++globalEpoch;
|
|
@@ -158,11 +164,18 @@ class ComputedImpl {
|
|
|
158
164
|
// double-run that only surfaced once flush() began draining cascades.
|
|
159
165
|
}
|
|
160
166
|
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
this.error = error;
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
161
171
|
finally {
|
|
162
172
|
this.computing = false;
|
|
163
173
|
activeObserver = prevObserver;
|
|
174
|
+
// A failed computed remains in an error state, but it must look clean to
|
|
175
|
+
// notify(): the next dependency write then marks it dirty and propagates
|
|
176
|
+
// to downstream observers so the computation can recover (issue 0003).
|
|
177
|
+
this.state = NodeState.Clean;
|
|
164
178
|
}
|
|
165
|
-
this.state = NodeState.Clean;
|
|
166
179
|
}
|
|
167
180
|
/** @internal — called by the ReactiveNode interface when a source changes */
|
|
168
181
|
notify() {
|
|
@@ -174,11 +187,10 @@ class ComputedImpl {
|
|
|
174
187
|
}
|
|
175
188
|
}
|
|
176
189
|
subscribe(fn) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
fn(
|
|
190
|
+
return effect(() => {
|
|
191
|
+
const value = this.value;
|
|
192
|
+
untrack(() => fn(value));
|
|
180
193
|
});
|
|
181
|
-
return dispose;
|
|
182
194
|
}
|
|
183
195
|
// ReactiveNode interface — used by dependency tracking
|
|
184
196
|
get sources_() {
|
package/dist/signal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../src/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,sEAAsE;AACtE,yEAAyE;AACzE,8EAA8E;AAC9E,oEAAoE;AAEpE,IAAI,WAAW,GAAqD,IAAI,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAA6C;IAC1E,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAiBzD,uEAAuE;AAEvE;;;GAGG;AACH,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C;;;;GAIG;AACH,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB,wEAAwE;AAExE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAc,CAAC;AAC7C,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,SAAS,aAAa;IACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;QACtB,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,cAAc,GAAG,KAAK,CAAC;IACvB,0CAA0C;IAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACpC,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,IAAW,SAIV;AAJD,WAAW,SAAS;IAClB,2CAAS,CAAA;IACT,qDAAc,CAAA;IACd,2CAAS,CAAA;AACX,CAAC,EAJU,SAAS,KAAT,SAAS,QAInB;
|
|
1
|
+
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../src/signal.ts"],"names":[],"mappings":"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"}
|