@adbl/cells 0.0.19 → 0.0.21
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 +23 -0
- package/dist/library/classes.d.ts +78 -18
- package/dist/library/classes.js +295 -162
- package/dist/library/classes.js.map +1 -1
- package/dist/library/index.d.ts +1 -14
- package/dist/library/index.js +2 -14
- package/dist/library/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -217,3 +217,26 @@ cell.listen(callback, {
|
|
|
217
217
|
priority: number, // The priority of the effect (higher priority effects run first)
|
|
218
218
|
});
|
|
219
219
|
```
|
|
220
|
+
|
|
221
|
+
### Explicit Disposal (Contexts)
|
|
222
|
+
|
|
223
|
+
By default, Cells uses `WeakRef` and Garbage Collection to manage memory. This is easy to use but can lead to "ghost computations", where listeners and derived cells keep running for a short time after they are no longer needed.
|
|
224
|
+
|
|
225
|
+
For high-performance scenarios, you can use a `LocalContext` to group dependencies and kill them synchronously.
|
|
226
|
+
|
|
227
|
+
```javascript
|
|
228
|
+
const ctx = Cell.context();
|
|
229
|
+
const source = Cell.source(1);
|
|
230
|
+
|
|
231
|
+
Cell.runWithContext(ctx, () => {
|
|
232
|
+
// This listener is now bound to 'ctx' (Strong Reference)
|
|
233
|
+
source.listen((val) => console.log(val));
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
source.set(2); // Logs: 2
|
|
237
|
+
|
|
238
|
+
// Synchronously remove all listeners created in that block
|
|
239
|
+
ctx.destroy();
|
|
240
|
+
|
|
241
|
+
source.set(3); // Nothing happens
|
|
242
|
+
```
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
export class LocalContext {
|
|
2
|
+
/** @type {Map<DerivedCell<any>, Set<Cell<any>>>} */
|
|
3
|
+
derivationSourceMap: Map<DerivedCell<any>, Set<Cell<any>>>;
|
|
4
|
+
/** @type {Map<Cell<any>, Set<Effect<any>>>} */
|
|
5
|
+
effects: Map<Cell<any>, Set<Effect<any>>>;
|
|
6
|
+
destroy(): void;
|
|
7
|
+
}
|
|
1
8
|
/**
|
|
2
9
|
* @template {*} out T The type of value stored in the cell
|
|
3
10
|
*
|
|
@@ -55,6 +62,25 @@ export class Cell<out T extends unknown> {
|
|
|
55
62
|
* ```
|
|
56
63
|
*/
|
|
57
64
|
static derived: <U>(callback: () => U) => DerivedCell<U>;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new LocalContext container.
|
|
67
|
+
* This context can be used to track effects and derived cells created within a specific scope
|
|
68
|
+
* and dispose of them synchronously using `context.destroy()`.
|
|
69
|
+
*
|
|
70
|
+
* @returns {LocalContext} A new LocalContext instance.
|
|
71
|
+
*/
|
|
72
|
+
static context: () => LocalContext;
|
|
73
|
+
/**
|
|
74
|
+
* Executes a function within a specific LocalContext.
|
|
75
|
+
* Any effects (`.listen`) or derived cells (`Cell.derived`) created synchronously
|
|
76
|
+
* within the callback will be attached to the provided context.
|
|
77
|
+
*
|
|
78
|
+
* @template T
|
|
79
|
+
* @param {LocalContext} context - The context to bind resources to.
|
|
80
|
+
* @param {() => T} callback - The function to execute.
|
|
81
|
+
* @returns {T} The return value of the callback.
|
|
82
|
+
*/
|
|
83
|
+
static runWithContext: (context: LocalContext, callback: () => T_1) => T_1;
|
|
58
84
|
/**
|
|
59
85
|
* @template X
|
|
60
86
|
* Batches all the effects created to run only once.
|
|
@@ -110,10 +136,12 @@ export class Cell<out T extends unknown> {
|
|
|
110
136
|
* run('input');
|
|
111
137
|
*/
|
|
112
138
|
static async<Getter extends (...args: any[]) => Promise<any>, X extends Parameters<Getter>[0] = Parameters<Getter>[0], Y extends Awaited<ReturnType<Getter>> = Awaited<ReturnType<Getter>>>(getter: Getter): AsyncRequestAtoms<Parameters<Getter>[0], Awaited<ReturnType<Getter>>, Getter>;
|
|
139
|
+
/** @type {WeakRef<this> | null} */
|
|
140
|
+
ref: WeakRef<this> | null;
|
|
113
141
|
/**
|
|
114
|
-
* @
|
|
142
|
+
* @type {SetLike<DerivedCell<any>>}
|
|
115
143
|
*/
|
|
116
|
-
|
|
144
|
+
derivations: SetLike<DerivedCell<any>>;
|
|
117
145
|
/**
|
|
118
146
|
* @protected @type T
|
|
119
147
|
*/
|
|
@@ -184,6 +212,10 @@ export class Cell<out T extends unknown> {
|
|
|
184
212
|
* @returns {T} - The current value of the cell.
|
|
185
213
|
*/
|
|
186
214
|
peek(): T;
|
|
215
|
+
/**
|
|
216
|
+
* @protected
|
|
217
|
+
*/
|
|
218
|
+
protected [IsScheduled]: boolean;
|
|
187
219
|
#private;
|
|
188
220
|
}
|
|
189
221
|
/**
|
|
@@ -197,24 +229,9 @@ export class DerivedCell<out T extends unknown> extends Cell<T> {
|
|
|
197
229
|
* @param {() => T} computedFn - A function that generates the value of the computed.
|
|
198
230
|
*/
|
|
199
231
|
constructor(computedFn: () => T);
|
|
200
|
-
/** @type {WeakRef<this>} */
|
|
201
|
-
ref: WeakRef<this>;
|
|
202
232
|
/** @type {() => T} */
|
|
203
233
|
computedFn: () => T;
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Listens for changes to the cell, initializing the value if not already done.
|
|
207
|
-
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
208
|
-
* @param {object} [options] - Optional configuration for listening.
|
|
209
|
-
*/
|
|
210
|
-
listen(callback: (newValue: T) => void, options?: object): () => void;
|
|
211
|
-
/**
|
|
212
|
-
* Runs the callback and sets up a listener, initializing the cell's value if not already done.
|
|
213
|
-
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
214
|
-
* @param {object} [options] - Optional configuration for listening and running.
|
|
215
|
-
* @returns {*} The result of the parent class's runAndListen method.
|
|
216
|
-
*/
|
|
217
|
-
runAndListen(callback: (newValue: T) => void, options?: object): any;
|
|
234
|
+
[Depth]: any;
|
|
218
235
|
}
|
|
219
236
|
/**
|
|
220
237
|
* @template {*} out T
|
|
@@ -333,3 +350,46 @@ export type CellOptions<T> = {
|
|
|
333
350
|
*/
|
|
334
351
|
equals?: ((oldValue: T, newValue: T) => boolean) | undefined;
|
|
335
352
|
};
|
|
353
|
+
export type SetLike<Value extends WeakKey & {
|
|
354
|
+
ref: WeakRef<any> | null;
|
|
355
|
+
}> = InternallyWeakSet<Value> | Set<Value>;
|
|
356
|
+
export type MapLike<Key extends WeakKey & {
|
|
357
|
+
ref: WeakRef<any> | null;
|
|
358
|
+
}, Value> = Map<Key, Value> | WeakMap<Key, Value>;
|
|
359
|
+
/** @template T */
|
|
360
|
+
declare class Effect<T> {
|
|
361
|
+
/**
|
|
362
|
+
* @param {(newValue: T) => void} callback
|
|
363
|
+
* @param {EffectOptions} [options]
|
|
364
|
+
*/
|
|
365
|
+
constructor(callback: (newValue: T) => void, options?: EffectOptions);
|
|
366
|
+
/**
|
|
367
|
+
* @type {EffectOptions | undefined}
|
|
368
|
+
*/
|
|
369
|
+
options: EffectOptions | undefined;
|
|
370
|
+
/**
|
|
371
|
+
* Returns the callback function, if it still exists.
|
|
372
|
+
* @returns {((newValue: T) => void) | undefined}
|
|
373
|
+
*/
|
|
374
|
+
get callback(): ((newValue: T) => void) | undefined;
|
|
375
|
+
#private;
|
|
376
|
+
}
|
|
377
|
+
declare const IsScheduled: unique symbol;
|
|
378
|
+
declare const Depth: unique symbol;
|
|
379
|
+
/**
|
|
380
|
+
* @template {WeakKey & { ref: WeakRef<any> | null }} Value
|
|
381
|
+
* @extends {Set<Value>}
|
|
382
|
+
*/
|
|
383
|
+
declare class InternallyWeakSet<Value extends WeakKey & {
|
|
384
|
+
ref: WeakRef<any> | null;
|
|
385
|
+
}> {
|
|
386
|
+
/** @param {Value} value */
|
|
387
|
+
add(value: Value): this;
|
|
388
|
+
/** @param {Value} value */
|
|
389
|
+
delete(value: Value): boolean;
|
|
390
|
+
/** @param {Value} value */
|
|
391
|
+
has(value: Value): boolean;
|
|
392
|
+
[Symbol.iterator](): Generator<Value, void, unknown>;
|
|
393
|
+
#private;
|
|
394
|
+
}
|
|
395
|
+
export {};
|
package/dist/library/classes.js
CHANGED
|
@@ -62,20 +62,70 @@ let BATCH_NESTING_LEVEL = 0;
|
|
|
62
62
|
*/
|
|
63
63
|
let BATCHED_EFFECTS = new Map();
|
|
64
64
|
/**
|
|
65
|
-
* A value representing the computed values that are currently being calculated
|
|
65
|
+
* A value representing the computed values that are currently being calculated,
|
|
66
|
+
* and the largest depth encountered.
|
|
66
67
|
* It is an array so it can keep track of nested computed values.
|
|
67
|
-
* @type {DerivedCell<any
|
|
68
|
+
* @type {[DerivedCell<any>, number][]}
|
|
68
69
|
*/
|
|
69
70
|
const ACTIVE_DERIVED_CTX = [];
|
|
71
|
+
/**
|
|
72
|
+
* @template {WeakKey & { ref: WeakRef<any> | null }} Value
|
|
73
|
+
* @extends {Set<Value>}
|
|
74
|
+
*/
|
|
75
|
+
class InternallyWeakSet {
|
|
76
|
+
/** @type {Set<WeakRef<Value>>} */
|
|
77
|
+
#internal = new Set();
|
|
78
|
+
/** @param {Value} value */
|
|
79
|
+
add(value) {
|
|
80
|
+
if (value.ref === null)
|
|
81
|
+
value.ref = new WeakRef(value);
|
|
82
|
+
this.#internal.add(value.ref);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/** @param {Value} value */
|
|
86
|
+
delete(value) {
|
|
87
|
+
if (value.ref === null)
|
|
88
|
+
return false;
|
|
89
|
+
return this.#internal.delete(value.ref);
|
|
90
|
+
}
|
|
91
|
+
/** @param {Value} value */
|
|
92
|
+
has(value) {
|
|
93
|
+
if (value.ref === null)
|
|
94
|
+
return false;
|
|
95
|
+
return this.#internal.has(value.ref);
|
|
96
|
+
}
|
|
97
|
+
*[Symbol.iterator]() {
|
|
98
|
+
for (const ref of this.#internal) {
|
|
99
|
+
const value = ref.deref();
|
|
100
|
+
if (value)
|
|
101
|
+
yield value;
|
|
102
|
+
else
|
|
103
|
+
this.#internal.delete(ref); // Cleanup dead refs while iterating
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @template {WeakKey & { ref: WeakRef<any> | null }} Value
|
|
109
|
+
* @typedef {InternallyWeakSet<Value> | Set<Value>} SetLike
|
|
110
|
+
*/
|
|
111
|
+
/**
|
|
112
|
+
* @template {WeakKey & { ref: WeakRef<any> | null }} Key
|
|
113
|
+
* @template Value
|
|
114
|
+
* @typedef {Map<Key, Value> | WeakMap<Key, Value>} MapLike
|
|
115
|
+
*/
|
|
116
|
+
const GlobalTrackingContext = {};
|
|
117
|
+
let CurrentTrackingContext = GlobalTrackingContext;
|
|
118
|
+
const Depth = Symbol();
|
|
119
|
+
const IsScheduled = Symbol();
|
|
70
120
|
/**
|
|
71
121
|
* Tracks cells that need to be updated during the update cycle.
|
|
72
122
|
* Cells are added to this stack to be processed and updated sequentially.
|
|
73
|
-
* @type {
|
|
123
|
+
* @type {Array<Cell<any>>}
|
|
74
124
|
*/
|
|
75
|
-
const UPDATE_BUFFER =
|
|
76
|
-
/** @type {WeakMap<Cell<any>, Set<WeakRef<DerivedCell<any>>>>} */
|
|
77
|
-
const DERIVED_CELLS = new WeakMap();
|
|
125
|
+
const UPDATE_BUFFER = [];
|
|
78
126
|
let IS_UPDATING = false;
|
|
127
|
+
/** @type {object[]} */
|
|
128
|
+
const CONTEXT_STACK = [GlobalTrackingContext];
|
|
79
129
|
/** @type {Error[]} */
|
|
80
130
|
const cellErrors = [];
|
|
81
131
|
/**
|
|
@@ -89,48 +139,71 @@ const cellErrors = [];
|
|
|
89
139
|
*/
|
|
90
140
|
function triggerUpdate() {
|
|
91
141
|
IS_UPDATING = true;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (computedDependents)
|
|
104
|
-
for (const dependent of computedDependents) {
|
|
105
|
-
const deref = dependent.deref();
|
|
106
|
-
if (deref === undefined) {
|
|
107
|
-
computedDependents.delete(dependent);
|
|
142
|
+
let currentDepth = 0;
|
|
143
|
+
let lastProcessedCellIndex = 0;
|
|
144
|
+
while (lastProcessedCellIndex < UPDATE_BUFFER.length) {
|
|
145
|
+
for (let i = lastProcessedCellIndex; i < UPDATE_BUFFER.length; i++) {
|
|
146
|
+
const cell = UPDATE_BUFFER[i];
|
|
147
|
+
if (cell instanceof DerivedCell) {
|
|
148
|
+
const depth = cell[Depth];
|
|
149
|
+
if (depth > currentDepth + 1) {
|
|
150
|
+
// Move nodes with higher depths to the end of the array so they
|
|
151
|
+
// are processed last.
|
|
152
|
+
UPDATE_BUFFER.push(cell);
|
|
108
153
|
continue;
|
|
109
154
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
if (!computedCell.initialized)
|
|
120
|
-
continue;
|
|
121
|
-
UPDATE_BUFFER.add(computedCell);
|
|
155
|
+
if (depth > currentDepth)
|
|
156
|
+
currentDepth = depth;
|
|
157
|
+
const newValue = cell.computedFn();
|
|
158
|
+
// @ts-expect-error: wvalue is protected.
|
|
159
|
+
if (deepEqual(cell.wvalue, newValue)) {
|
|
160
|
+
cell[IsScheduled] = false;
|
|
161
|
+
continue;
|
|
122
162
|
}
|
|
163
|
+
// @ts-expect-error: wvalue is protected.
|
|
164
|
+
cell.wvalue = newValue;
|
|
165
|
+
}
|
|
166
|
+
// Run computed dependents.
|
|
167
|
+
const computedDependents = cell.derivations;
|
|
168
|
+
for (const computedCell of computedDependents) {
|
|
169
|
+
if (computedCell[IsScheduled])
|
|
170
|
+
continue;
|
|
171
|
+
if (BATCH_NESTING_LEVEL > 0)
|
|
172
|
+
BATCHED_EFFECTS.set(() => UPDATE_BUFFER.push(computedCell), undefined);
|
|
173
|
+
else
|
|
174
|
+
UPDATE_BUFFER.push(computedCell);
|
|
175
|
+
computedCell[IsScheduled] = true;
|
|
176
|
+
}
|
|
177
|
+
// Check the last cell.
|
|
178
|
+
const last = UPDATE_BUFFER[UPDATE_BUFFER.length - 1];
|
|
179
|
+
if (last instanceof DerivedCell && last[Depth] - 1 > currentDepth) {
|
|
180
|
+
currentDepth = last[Depth] - 1;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// A cell can update in another's effect, triggering a rerun
|
|
184
|
+
// of the whole process. Since the UPDATE_BUFFER is the same array,
|
|
185
|
+
// we need to know where to continue iteration from.
|
|
186
|
+
let i = lastProcessedCellIndex;
|
|
187
|
+
lastProcessedCellIndex = UPDATE_BUFFER.length;
|
|
188
|
+
for (; i < UPDATE_BUFFER.length; i++) {
|
|
189
|
+
const cell = UPDATE_BUFFER[i];
|
|
190
|
+
if (cell[IsScheduled]) {
|
|
191
|
+
// @ts-expect-error: Cell.update is protected.
|
|
192
|
+
cell.update();
|
|
193
|
+
cell[IsScheduled] = false;
|
|
123
194
|
}
|
|
124
|
-
|
|
125
|
-
cell.update();
|
|
195
|
+
}
|
|
126
196
|
}
|
|
127
|
-
UPDATE_BUFFER.clear();
|
|
128
197
|
IS_UPDATING = false;
|
|
198
|
+
UPDATE_BUFFER.length = 0;
|
|
199
|
+
lastProcessedCellIndex = 0;
|
|
129
200
|
throwAnyErrors();
|
|
130
201
|
}
|
|
131
202
|
function throwAnyErrors() {
|
|
132
203
|
if (cellErrors.length > 0) {
|
|
133
204
|
const errors = [...cellErrors];
|
|
205
|
+
for (const error of errors)
|
|
206
|
+
console.warn(error);
|
|
134
207
|
cellErrors.length = 0;
|
|
135
208
|
throw new CellUpdateError(errors);
|
|
136
209
|
}
|
|
@@ -189,6 +262,61 @@ class Effect {
|
|
|
189
262
|
return this.#callback;
|
|
190
263
|
}
|
|
191
264
|
}
|
|
265
|
+
export class LocalContext {
|
|
266
|
+
/** @type {Map<DerivedCell<any>, Set<Cell<any>>>} */
|
|
267
|
+
derivationSourceMap = new Map();
|
|
268
|
+
/** @type {Map<Cell<any>, Set<Effect<any>>>} */
|
|
269
|
+
effects = new Map();
|
|
270
|
+
destroy() {
|
|
271
|
+
if (CONTEXT_STACK.includes(this)) {
|
|
272
|
+
throw new Error('Cannot destroy a context inside its callback.');
|
|
273
|
+
}
|
|
274
|
+
for (const [derivation, sources] of this.derivationSourceMap) {
|
|
275
|
+
for (const source of sources) {
|
|
276
|
+
source.derivations.delete(derivation);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
for (const [cell, effects] of this.effects) {
|
|
280
|
+
if (cell instanceof DerivedCell && this.derivationSourceMap.has(cell)) {
|
|
281
|
+
// There is no point to ignoring the listener, since it will be disposed
|
|
282
|
+
// and unreachable on the graph anyway.
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
for (const effect of effects) {
|
|
286
|
+
if (effect.callback !== undefined)
|
|
287
|
+
cell.ignore(effect.callback);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
this.derivationSourceMap.clear();
|
|
291
|
+
this.effects.clear();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* @template T
|
|
296
|
+
* @param {Cell<T>} cell
|
|
297
|
+
* @param {Effect<T>} effectContainer
|
|
298
|
+
*/
|
|
299
|
+
function addEffectToCurrentContext(cell, effectContainer) {
|
|
300
|
+
if (!(CurrentTrackingContext instanceof LocalContext))
|
|
301
|
+
return;
|
|
302
|
+
let effectStore = CurrentTrackingContext.effects.get(cell);
|
|
303
|
+
if (effectStore === undefined) {
|
|
304
|
+
effectStore = new Set();
|
|
305
|
+
CurrentTrackingContext.effects.set(cell, effectStore);
|
|
306
|
+
}
|
|
307
|
+
effectStore.add(effectContainer);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* @param {LocalContext} context
|
|
311
|
+
*/
|
|
312
|
+
function pushLocalContext(context) {
|
|
313
|
+
CONTEXT_STACK.push(context);
|
|
314
|
+
CurrentTrackingContext = context;
|
|
315
|
+
}
|
|
316
|
+
function popLocalContext() {
|
|
317
|
+
CONTEXT_STACK.pop();
|
|
318
|
+
CurrentTrackingContext = CONTEXT_STACK[CONTEXT_STACK.length - 1];
|
|
319
|
+
}
|
|
192
320
|
/**
|
|
193
321
|
* @template {*} out T The type of value stored in the cell
|
|
194
322
|
*
|
|
@@ -209,29 +337,27 @@ class Effect {
|
|
|
209
337
|
* ```
|
|
210
338
|
*/
|
|
211
339
|
export class Cell {
|
|
340
|
+
/**
|
|
341
|
+
* @protected
|
|
342
|
+
*/
|
|
343
|
+
[IsScheduled] = false;
|
|
212
344
|
/**
|
|
213
345
|
* @type {Array<Effect<T>>}
|
|
214
346
|
*/
|
|
215
347
|
#effects = [];
|
|
348
|
+
/** @type {WeakRef<this> | null} */
|
|
349
|
+
ref = null;
|
|
216
350
|
constructor() {
|
|
217
351
|
if (new.target === Cell) {
|
|
218
352
|
throw new Error('Cell should not be instantiated directly. Use `Cell.source` or `Cell.derived` instead.');
|
|
219
353
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (dependents) {
|
|
228
|
-
for (const cell of dependents) {
|
|
229
|
-
const cellDeref = cell.deref();
|
|
230
|
-
if (cellDeref)
|
|
231
|
-
cells.push(cellDeref);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
return cells;
|
|
354
|
+
/**
|
|
355
|
+
* @type {SetLike<DerivedCell<any>>}
|
|
356
|
+
*/
|
|
357
|
+
this.derivations =
|
|
358
|
+
CurrentTrackingContext === GlobalTrackingContext
|
|
359
|
+
? new InternallyWeakSet()
|
|
360
|
+
: new Set();
|
|
235
361
|
}
|
|
236
362
|
/**
|
|
237
363
|
* @protected @type T
|
|
@@ -270,20 +396,24 @@ export class Cell {
|
|
|
270
396
|
* @protected @type {T}
|
|
271
397
|
*/
|
|
272
398
|
get revalued() {
|
|
273
|
-
const
|
|
274
|
-
if (
|
|
399
|
+
const ctx = ACTIVE_DERIVED_CTX[ACTIVE_DERIVED_CTX.length - 1];
|
|
400
|
+
if (ctx === undefined) {
|
|
275
401
|
return this.wvalue;
|
|
276
402
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
dependents = new Set();
|
|
280
|
-
DERIVED_CELLS.set(this, dependents);
|
|
281
|
-
}
|
|
282
|
-
const isAlreadySubscribed = dependents?.has(currentlyComputedValue.ref);
|
|
403
|
+
const [currentlyComputedValue] = ctx;
|
|
404
|
+
const isAlreadySubscribed = this.derivations.has(currentlyComputedValue);
|
|
283
405
|
if (isAlreadySubscribed) {
|
|
284
406
|
return this.wvalue;
|
|
285
407
|
}
|
|
286
|
-
|
|
408
|
+
if (this instanceof DerivedCell && this[Depth] > ctx[1]) {
|
|
409
|
+
ctx[1] = this[Depth];
|
|
410
|
+
}
|
|
411
|
+
this.derivations.add(currentlyComputedValue);
|
|
412
|
+
if (CurrentTrackingContext instanceof LocalContext) {
|
|
413
|
+
CurrentTrackingContext.derivationSourceMap
|
|
414
|
+
.get(currentlyComputedValue)
|
|
415
|
+
?.add(this);
|
|
416
|
+
}
|
|
287
417
|
return this.wvalue;
|
|
288
418
|
}
|
|
289
419
|
/**
|
|
@@ -313,7 +443,9 @@ export class Cell {
|
|
|
313
443
|
return effect.callback === callback;
|
|
314
444
|
});
|
|
315
445
|
if (!isAlreadySubscribed) {
|
|
316
|
-
|
|
446
|
+
const effectContainer = new Effect(effect, options);
|
|
447
|
+
this.#effects.push(effectContainer);
|
|
448
|
+
addEffectToCurrentContext(this, effectContainer);
|
|
317
449
|
}
|
|
318
450
|
this.#effects.sort((a, b) => {
|
|
319
451
|
const aPriority = a.options?.priority ?? 0;
|
|
@@ -356,7 +488,9 @@ export class Cell {
|
|
|
356
488
|
return e.callback === callback;
|
|
357
489
|
});
|
|
358
490
|
if (!isAlreadySubscribed) {
|
|
359
|
-
|
|
491
|
+
const effectContainer = new Effect(cb, options);
|
|
492
|
+
this.#effects.push(effectContainer);
|
|
493
|
+
addEffectToCurrentContext(this, effectContainer);
|
|
360
494
|
}
|
|
361
495
|
this.#effects.sort((a, b) => {
|
|
362
496
|
const aPriority = a.options?.priority ?? 0;
|
|
@@ -411,13 +545,10 @@ export class Cell {
|
|
|
411
545
|
// Run watchers.
|
|
412
546
|
const wvalue = this.wvalue;
|
|
413
547
|
const effects = this.#effects;
|
|
414
|
-
let
|
|
415
|
-
for (
|
|
416
|
-
const watcher = effects[i].callback;
|
|
548
|
+
let hasUndefinedEffect = false;
|
|
549
|
+
for (const { callback: watcher } of effects) {
|
|
417
550
|
if (watcher === undefined) {
|
|
418
|
-
|
|
419
|
-
i--;
|
|
420
|
-
len--;
|
|
551
|
+
hasUndefinedEffect = true;
|
|
421
552
|
continue;
|
|
422
553
|
}
|
|
423
554
|
if (BATCH_NESTING_LEVEL > 0) {
|
|
@@ -434,6 +565,9 @@ export class Cell {
|
|
|
434
565
|
}
|
|
435
566
|
}
|
|
436
567
|
}
|
|
568
|
+
if (hasUndefinedEffect) {
|
|
569
|
+
this.#effects = this.#effects.filter((effect) => effect.callback !== undefined);
|
|
570
|
+
}
|
|
437
571
|
}
|
|
438
572
|
/**
|
|
439
573
|
* Returns the current value of the cell without registering dependencies.
|
|
@@ -479,6 +613,33 @@ export class Cell {
|
|
|
479
613
|
* ```
|
|
480
614
|
*/
|
|
481
615
|
static derived = (callback) => new DerivedCell(callback);
|
|
616
|
+
/**
|
|
617
|
+
* Creates a new LocalContext container.
|
|
618
|
+
* This context can be used to track effects and derived cells created within a specific scope
|
|
619
|
+
* and dispose of them synchronously using `context.destroy()`.
|
|
620
|
+
*
|
|
621
|
+
* @returns {LocalContext} A new LocalContext instance.
|
|
622
|
+
*/
|
|
623
|
+
static context = () => new LocalContext();
|
|
624
|
+
/**
|
|
625
|
+
* Executes a function within a specific LocalContext.
|
|
626
|
+
* Any effects (`.listen`) or derived cells (`Cell.derived`) created synchronously
|
|
627
|
+
* within the callback will be attached to the provided context.
|
|
628
|
+
*
|
|
629
|
+
* @template T
|
|
630
|
+
* @param {LocalContext} context - The context to bind resources to.
|
|
631
|
+
* @param {() => T} callback - The function to execute.
|
|
632
|
+
* @returns {T} The return value of the callback.
|
|
633
|
+
*/
|
|
634
|
+
static runWithContext = (context, callback) => {
|
|
635
|
+
pushLocalContext(context);
|
|
636
|
+
try {
|
|
637
|
+
return callback();
|
|
638
|
+
}
|
|
639
|
+
finally {
|
|
640
|
+
popLocalContext();
|
|
641
|
+
}
|
|
642
|
+
};
|
|
482
643
|
/**
|
|
483
644
|
* @template X
|
|
484
645
|
* Batches all the effects created to run only once.
|
|
@@ -528,10 +689,6 @@ export class Cell {
|
|
|
528
689
|
static flatten = (value) => {
|
|
529
690
|
if (value instanceof Cell) {
|
|
530
691
|
if (value instanceof DerivedCell) {
|
|
531
|
-
if (value.initialized) {
|
|
532
|
-
return Cell.flatten(value.wvalue);
|
|
533
|
-
}
|
|
534
|
-
value.setValue(value.computedFn());
|
|
535
692
|
return Cell.flatten(value.wvalue);
|
|
536
693
|
}
|
|
537
694
|
return Cell.flatten(value.wvalue);
|
|
@@ -600,26 +757,24 @@ export class Cell {
|
|
|
600
757
|
pending.set(true);
|
|
601
758
|
error.set(null);
|
|
602
759
|
data.set(null);
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
760
|
+
const currentController = controller;
|
|
761
|
+
try {
|
|
762
|
+
initialInput = input;
|
|
763
|
+
const _input = /** @type {X} */ (input);
|
|
764
|
+
const result = await getter.bind(currentController)(_input);
|
|
765
|
+
if (currentController?.signal.aborted)
|
|
766
|
+
return;
|
|
767
|
+
data.set(result);
|
|
768
|
+
}
|
|
769
|
+
catch (e) {
|
|
770
|
+
if (e instanceof Error) {
|
|
771
|
+
error.set(e);
|
|
612
772
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
error.set(e);
|
|
616
|
-
}
|
|
617
|
-
else {
|
|
618
|
-
throw e;
|
|
619
|
-
}
|
|
773
|
+
else {
|
|
774
|
+
throw e;
|
|
620
775
|
}
|
|
621
|
-
|
|
622
|
-
|
|
776
|
+
}
|
|
777
|
+
pending.set(false);
|
|
623
778
|
return data.get();
|
|
624
779
|
}
|
|
625
780
|
/**
|
|
@@ -672,15 +827,18 @@ export class Cell {
|
|
|
672
827
|
* @extends {Cell<T>}
|
|
673
828
|
*/
|
|
674
829
|
export class DerivedCell extends Cell {
|
|
830
|
+
[Depth] = 0;
|
|
675
831
|
/**
|
|
676
832
|
* @param {() => T} computedFn - A function that generates the value of the computed.
|
|
677
833
|
*/
|
|
678
834
|
constructor(computedFn) {
|
|
679
835
|
super();
|
|
680
|
-
|
|
836
|
+
if (CurrentTrackingContext instanceof LocalContext) {
|
|
837
|
+
CurrentTrackingContext.derivationSourceMap.set(this, new Set());
|
|
838
|
+
}
|
|
681
839
|
// Ensures that the cell is derived every time the computing function is called.
|
|
682
840
|
const derivationWrapper = () => {
|
|
683
|
-
ACTIVE_DERIVED_CTX.push(this);
|
|
841
|
+
ACTIVE_DERIVED_CTX.push([this, 0]);
|
|
684
842
|
let value = this.wvalue;
|
|
685
843
|
try {
|
|
686
844
|
value = computedFn();
|
|
@@ -689,56 +847,25 @@ export class DerivedCell extends Cell {
|
|
|
689
847
|
if (e instanceof Error)
|
|
690
848
|
cellErrors.push(e);
|
|
691
849
|
}
|
|
692
|
-
ACTIVE_DERIVED_CTX.pop();
|
|
850
|
+
const [, depth] = /** @type {[this, number]} */ (ACTIVE_DERIVED_CTX.pop());
|
|
851
|
+
if (depth + 1 > this[Depth])
|
|
852
|
+
this[Depth] = depth + 1;
|
|
693
853
|
return value;
|
|
694
854
|
};
|
|
855
|
+
this.setValue(derivationWrapper());
|
|
695
856
|
this.computedFn = /** @type {() => T} */ (derivationWrapper);
|
|
696
|
-
|
|
857
|
+
throwAnyErrors();
|
|
697
858
|
}
|
|
698
859
|
/** @type {() => T} */
|
|
699
860
|
computedFn;
|
|
700
|
-
/** @type {WeakRef<this>} */
|
|
701
|
-
ref;
|
|
702
861
|
/**
|
|
703
862
|
* Gets the current value of the derived cell, computing it if necessary,
|
|
704
863
|
* and registers it as a dependency if called within another derived cell computation.
|
|
705
864
|
* @returns {T} The value of the Cell.
|
|
706
865
|
*/
|
|
707
866
|
get() {
|
|
708
|
-
if (!this.initialized) {
|
|
709
|
-
this.initialized = true;
|
|
710
|
-
this.setValue(this.computedFn());
|
|
711
|
-
throwAnyErrors();
|
|
712
|
-
}
|
|
713
867
|
return this.revalued;
|
|
714
868
|
}
|
|
715
|
-
/**
|
|
716
|
-
* Listens for changes to the cell, initializing the value if not already done.
|
|
717
|
-
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
718
|
-
* @param {object} [options] - Optional configuration for listening.
|
|
719
|
-
*/
|
|
720
|
-
listen(callback, options) {
|
|
721
|
-
if (!this.initialized) {
|
|
722
|
-
this.initialized = true;
|
|
723
|
-
this.setValue(this.computedFn());
|
|
724
|
-
throwAnyErrors();
|
|
725
|
-
}
|
|
726
|
-
return super.listen(callback, options);
|
|
727
|
-
}
|
|
728
|
-
/**
|
|
729
|
-
* Runs the callback and sets up a listener, initializing the cell's value if not already done.
|
|
730
|
-
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
731
|
-
* @param {object} [options] - Optional configuration for listening and running.
|
|
732
|
-
* @returns {*} The result of the parent class's runAndListen method.
|
|
733
|
-
*/
|
|
734
|
-
runAndListen(callback, options) {
|
|
735
|
-
if (!this.initialized) {
|
|
736
|
-
this.initialized = true;
|
|
737
|
-
this.setValue(this.computedFn());
|
|
738
|
-
throwAnyErrors();
|
|
739
|
-
}
|
|
740
|
-
return super.runAndListen(callback, options);
|
|
741
|
-
}
|
|
742
869
|
}
|
|
743
870
|
/**
|
|
744
871
|
* @template {*} out T
|
|
@@ -798,7 +925,8 @@ export class SourceCell extends Cell {
|
|
|
798
925
|
if (isEqual)
|
|
799
926
|
return;
|
|
800
927
|
this.setValue(value);
|
|
801
|
-
|
|
928
|
+
this[IsScheduled] = true;
|
|
929
|
+
UPDATE_BUFFER.push(this);
|
|
802
930
|
if (!IS_UPDATING)
|
|
803
931
|
triggerUpdate();
|
|
804
932
|
}
|
|
@@ -829,7 +957,8 @@ export class SourceCell extends Cell {
|
|
|
829
957
|
return (...args) => {
|
|
830
958
|
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
831
959
|
const result = target[prop](...args);
|
|
832
|
-
UPDATE_BUFFER.
|
|
960
|
+
UPDATE_BUFFER.push(this);
|
|
961
|
+
this[IsScheduled] = true;
|
|
833
962
|
if (!IS_UPDATING)
|
|
834
963
|
triggerUpdate();
|
|
835
964
|
return result;
|
|
@@ -850,7 +979,8 @@ export class SourceCell extends Cell {
|
|
|
850
979
|
if (!isEqual) {
|
|
851
980
|
// @ts-expect-error: dynamic object access.
|
|
852
981
|
target[prop] = value;
|
|
853
|
-
UPDATE_BUFFER.
|
|
982
|
+
UPDATE_BUFFER.push(this);
|
|
983
|
+
this[IsScheduled] = true;
|
|
854
984
|
if (!IS_UPDATING) {
|
|
855
985
|
triggerUpdate();
|
|
856
986
|
}
|
|
@@ -892,53 +1022,56 @@ export class CellUpdateError extends Error {
|
|
|
892
1022
|
function deepEqual(a, b) {
|
|
893
1023
|
if (a === b)
|
|
894
1024
|
return true;
|
|
895
|
-
if (
|
|
1025
|
+
if (a === null ||
|
|
896
1026
|
typeof a !== 'object' ||
|
|
897
|
-
|
|
898
|
-
b
|
|
1027
|
+
b === null ||
|
|
1028
|
+
typeof b !== 'object') {
|
|
899
1029
|
return false;
|
|
900
|
-
if (a instanceof Date) {
|
|
901
|
-
if (!(b instanceof Date)) {
|
|
902
|
-
return false;
|
|
903
|
-
}
|
|
904
|
-
if (a.getTime() !== b.getTime()) {
|
|
905
|
-
return false;
|
|
906
|
-
}
|
|
907
1030
|
}
|
|
1031
|
+
if (a.constructor !== b.constructor)
|
|
1032
|
+
return false;
|
|
1033
|
+
if (a instanceof Date)
|
|
1034
|
+
return a.getTime() === b.getTime();
|
|
1035
|
+
if (a instanceof RegExp)
|
|
1036
|
+
return a.source === b.source && a.flags === b.flags;
|
|
908
1037
|
if (a instanceof Map) {
|
|
909
|
-
if (
|
|
1038
|
+
if (a.size !== b.size)
|
|
910
1039
|
return false;
|
|
1040
|
+
for (const [key, value] of a) {
|
|
1041
|
+
if (!b.has(key) || !deepEqual(value, b.get(key))) {
|
|
1042
|
+
return false;
|
|
1043
|
+
}
|
|
911
1044
|
}
|
|
912
|
-
|
|
1045
|
+
return true;
|
|
1046
|
+
}
|
|
1047
|
+
if (a instanceof Set) {
|
|
1048
|
+
if (a.size !== b.size)
|
|
913
1049
|
return false;
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
if (!deepEqual(b.get(key), value)) {
|
|
1050
|
+
for (const value of a) {
|
|
1051
|
+
if (!b.has(value))
|
|
917
1052
|
return false;
|
|
918
|
-
}
|
|
919
1053
|
}
|
|
1054
|
+
return true;
|
|
920
1055
|
}
|
|
921
1056
|
if (Array.isArray(a)) {
|
|
922
|
-
const
|
|
923
|
-
if (
|
|
1057
|
+
const length = a.length;
|
|
1058
|
+
if (length !== b.length)
|
|
924
1059
|
return false;
|
|
925
|
-
for (let i = 0; i <
|
|
1060
|
+
for (let i = 0; i < length; i++) {
|
|
926
1061
|
if (!deepEqual(a[i], b[i]))
|
|
927
1062
|
return false;
|
|
928
1063
|
}
|
|
1064
|
+
return true;
|
|
929
1065
|
}
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
1066
|
+
const keysA = Object.keys(a);
|
|
1067
|
+
const length = keysA.length;
|
|
1068
|
+
if (Object.keys(b).length !== length)
|
|
1069
|
+
return false;
|
|
1070
|
+
for (let i = 0; i < length; i++) {
|
|
1071
|
+
const key = keysA[i];
|
|
1072
|
+
if (!Object.prototype.hasOwnProperty.call(b, key) ||
|
|
1073
|
+
!deepEqual(a[key], b[key])) {
|
|
935
1074
|
return false;
|
|
936
|
-
for (let i = 0; i < keysALength; i++) {
|
|
937
|
-
const key = keysA[i];
|
|
938
|
-
if (a === b)
|
|
939
|
-
return true;
|
|
940
|
-
if (!(key in b) || !deepEqual(a[key], b[key]))
|
|
941
|
-
return false;
|
|
942
1075
|
}
|
|
943
1076
|
}
|
|
944
1077
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"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"}
|
package/dist/library/index.d.ts
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
+
export * from "./classes.js";
|
|
1
2
|
export default Cell;
|
|
2
|
-
/**
|
|
3
|
-
* Represents a partial map of cells, where each key in the object type `T` is mapped to either a `Cell<T[key]>` or the raw type `T[key]`.
|
|
4
|
-
* This type can be used to represent a partial set of cells for an object, where some properties are represented as cells and others are the raw values.
|
|
5
|
-
*/
|
|
6
|
-
export type PartialCellMap<T extends object> = { [key in keyof T]: Cell<T[key]> | T[key]; };
|
|
7
|
-
/**
|
|
8
|
-
* Represents a full set of cells for an object,
|
|
9
|
-
* where all properties are represented as cells.
|
|
10
|
-
*/
|
|
11
|
-
export type CellMap<T extends object> = { [key in keyof T]: Cell<T[key]>; };
|
|
12
|
-
import { SourceCell } from './classes.js';
|
|
13
|
-
import { DerivedCell } from './classes.js';
|
|
14
3
|
import { Cell } from './classes.js';
|
|
15
|
-
import { CellUpdateError } from './classes.js';
|
|
16
|
-
export { SourceCell, DerivedCell, Cell, CellUpdateError };
|
package/dist/library/index.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
/// <reference types="./index.d.ts" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Represents a partial map of cells, where each key in the object type `T` is mapped to either a `Cell<T[key]>` or the raw type `T[key]`.
|
|
5
|
-
* This type can be used to represent a partial set of cells for an object, where some properties are represented as cells and others are the raw values.
|
|
6
|
-
* @template {object} T The object type whose properties are mapped to cells or raw values.
|
|
7
|
-
* @typedef {{ [key in keyof T]: Cell<T[key]> | T[key] }} PartialCellMap
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Represents a full set of cells for an object,
|
|
11
|
-
* where all properties are represented as cells.
|
|
12
|
-
* @template {object} T The object type whose properties are mapped to cells.
|
|
13
|
-
* @typedef {{ [key in keyof T]: Cell<T[key]> }} CellMap
|
|
14
|
-
*/
|
|
15
|
-
export { SourceCell, DerivedCell, Cell, CellUpdateError };
|
|
2
|
+
export * from './classes.js';
|
|
3
|
+
import { Cell } from './classes.js';
|
|
16
4
|
export default Cell;
|
|
17
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../library/index.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../library/index.js"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,eAAe,IAAI,CAAC"}
|