@adbl/cells 0.0.19 → 0.0.20
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 +256 -133
- 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,59 @@ const cellErrors = [];
|
|
|
89
139
|
*/
|
|
90
140
|
function triggerUpdate() {
|
|
91
141
|
IS_UPDATING = true;
|
|
92
|
-
|
|
142
|
+
let currentDepth = 0;
|
|
143
|
+
for (let i = 0; i < UPDATE_BUFFER.length; i++) {
|
|
144
|
+
const cell = UPDATE_BUFFER[i];
|
|
93
145
|
if (cell instanceof DerivedCell) {
|
|
146
|
+
const depth = cell[Depth];
|
|
147
|
+
if (depth > currentDepth + 1) {
|
|
148
|
+
// Move nodes with higher depths to the end of the array so they
|
|
149
|
+
// are processed last.
|
|
150
|
+
UPDATE_BUFFER.push(cell);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
currentDepth = depth;
|
|
94
154
|
const newValue = cell.computedFn();
|
|
95
155
|
// @ts-expect-error: wvalue is protected.
|
|
96
|
-
if (deepEqual(cell.wvalue, newValue))
|
|
156
|
+
if (deepEqual(cell.wvalue, newValue)) {
|
|
157
|
+
cell[IsScheduled] = false;
|
|
97
158
|
continue;
|
|
159
|
+
}
|
|
98
160
|
// @ts-expect-error: wvalue is protected.
|
|
99
161
|
cell.wvalue = newValue;
|
|
100
162
|
}
|
|
101
163
|
// Run computed dependents.
|
|
102
|
-
const computedDependents =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (!computedCell.initialized)
|
|
120
|
-
continue;
|
|
121
|
-
UPDATE_BUFFER.add(computedCell);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
164
|
+
const computedDependents = cell.derivations;
|
|
165
|
+
for (const computedCell of computedDependents) {
|
|
166
|
+
if (computedCell[IsScheduled])
|
|
167
|
+
continue;
|
|
168
|
+
if (BATCH_NESTING_LEVEL > 0)
|
|
169
|
+
BATCHED_EFFECTS.set(() => UPDATE_BUFFER.push(computedCell), undefined);
|
|
170
|
+
else
|
|
171
|
+
UPDATE_BUFFER.push(computedCell);
|
|
172
|
+
computedCell[IsScheduled] = true;
|
|
173
|
+
}
|
|
174
|
+
// Check the last cell.
|
|
175
|
+
const last = UPDATE_BUFFER[UPDATE_BUFFER.length - 1];
|
|
176
|
+
if (last instanceof DerivedCell && last[Depth] - 1 > currentDepth) {
|
|
177
|
+
currentDepth = last[Depth] - 1;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
for (const cell of UPDATE_BUFFER) {
|
|
124
181
|
// @ts-expect-error: Cell.update is protected.
|
|
125
|
-
cell
|
|
182
|
+
if (cell[IsScheduled])
|
|
183
|
+
cell.update();
|
|
184
|
+
cell[IsScheduled] = false;
|
|
126
185
|
}
|
|
127
|
-
UPDATE_BUFFER.
|
|
186
|
+
UPDATE_BUFFER.length = 0;
|
|
128
187
|
IS_UPDATING = false;
|
|
129
188
|
throwAnyErrors();
|
|
130
189
|
}
|
|
131
190
|
function throwAnyErrors() {
|
|
132
191
|
if (cellErrors.length > 0) {
|
|
133
192
|
const errors = [...cellErrors];
|
|
193
|
+
for (const error of errors)
|
|
194
|
+
console.warn(error);
|
|
134
195
|
cellErrors.length = 0;
|
|
135
196
|
throw new CellUpdateError(errors);
|
|
136
197
|
}
|
|
@@ -189,6 +250,61 @@ class Effect {
|
|
|
189
250
|
return this.#callback;
|
|
190
251
|
}
|
|
191
252
|
}
|
|
253
|
+
export class LocalContext {
|
|
254
|
+
/** @type {Map<DerivedCell<any>, Set<Cell<any>>>} */
|
|
255
|
+
derivationSourceMap = new Map();
|
|
256
|
+
/** @type {Map<Cell<any>, Set<Effect<any>>>} */
|
|
257
|
+
effects = new Map();
|
|
258
|
+
destroy() {
|
|
259
|
+
if (CONTEXT_STACK.includes(this)) {
|
|
260
|
+
throw new Error('Cannot destroy a context inside its callback.');
|
|
261
|
+
}
|
|
262
|
+
for (const [derivation, sources] of this.derivationSourceMap) {
|
|
263
|
+
for (const source of sources) {
|
|
264
|
+
source.derivations.delete(derivation);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
for (const [cell, effects] of this.effects) {
|
|
268
|
+
if (cell instanceof DerivedCell && this.derivationSourceMap.has(cell)) {
|
|
269
|
+
// There is no point to ignoring the listener, since it will be disposed
|
|
270
|
+
// and unreachable on the graph anyway.
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
for (const effect of effects) {
|
|
274
|
+
if (effect.callback !== undefined)
|
|
275
|
+
cell.ignore(effect.callback);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
this.derivationSourceMap.clear();
|
|
279
|
+
this.effects.clear();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* @template T
|
|
284
|
+
* @param {Cell<T>} cell
|
|
285
|
+
* @param {Effect<T>} effectContainer
|
|
286
|
+
*/
|
|
287
|
+
function addEffectToCurrentContext(cell, effectContainer) {
|
|
288
|
+
if (!(CurrentTrackingContext instanceof LocalContext))
|
|
289
|
+
return;
|
|
290
|
+
let effectStore = CurrentTrackingContext.effects.get(cell);
|
|
291
|
+
if (effectStore === undefined) {
|
|
292
|
+
effectStore = new Set();
|
|
293
|
+
CurrentTrackingContext.effects.set(cell, effectStore);
|
|
294
|
+
}
|
|
295
|
+
effectStore.add(effectContainer);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* @param {LocalContext} context
|
|
299
|
+
*/
|
|
300
|
+
function pushLocalContext(context) {
|
|
301
|
+
CONTEXT_STACK.push(context);
|
|
302
|
+
CurrentTrackingContext = context;
|
|
303
|
+
}
|
|
304
|
+
function popLocalContext() {
|
|
305
|
+
CONTEXT_STACK.pop();
|
|
306
|
+
CurrentTrackingContext = CONTEXT_STACK[CONTEXT_STACK.length - 1];
|
|
307
|
+
}
|
|
192
308
|
/**
|
|
193
309
|
* @template {*} out T The type of value stored in the cell
|
|
194
310
|
*
|
|
@@ -209,29 +325,27 @@ class Effect {
|
|
|
209
325
|
* ```
|
|
210
326
|
*/
|
|
211
327
|
export class Cell {
|
|
328
|
+
/**
|
|
329
|
+
* @protected
|
|
330
|
+
*/
|
|
331
|
+
[IsScheduled] = false;
|
|
212
332
|
/**
|
|
213
333
|
* @type {Array<Effect<T>>}
|
|
214
334
|
*/
|
|
215
335
|
#effects = [];
|
|
336
|
+
/** @type {WeakRef<this> | null} */
|
|
337
|
+
ref = null;
|
|
216
338
|
constructor() {
|
|
217
339
|
if (new.target === Cell) {
|
|
218
340
|
throw new Error('Cell should not be instantiated directly. Use `Cell.source` or `Cell.derived` instead.');
|
|
219
341
|
}
|
|
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;
|
|
342
|
+
/**
|
|
343
|
+
* @type {SetLike<DerivedCell<any>>}
|
|
344
|
+
*/
|
|
345
|
+
this.derivations =
|
|
346
|
+
CurrentTrackingContext === GlobalTrackingContext
|
|
347
|
+
? new InternallyWeakSet()
|
|
348
|
+
: new Set();
|
|
235
349
|
}
|
|
236
350
|
/**
|
|
237
351
|
* @protected @type T
|
|
@@ -270,20 +384,24 @@ export class Cell {
|
|
|
270
384
|
* @protected @type {T}
|
|
271
385
|
*/
|
|
272
386
|
get revalued() {
|
|
273
|
-
const
|
|
274
|
-
if (
|
|
387
|
+
const ctx = ACTIVE_DERIVED_CTX[ACTIVE_DERIVED_CTX.length - 1];
|
|
388
|
+
if (ctx === undefined) {
|
|
275
389
|
return this.wvalue;
|
|
276
390
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
dependents = new Set();
|
|
280
|
-
DERIVED_CELLS.set(this, dependents);
|
|
281
|
-
}
|
|
282
|
-
const isAlreadySubscribed = dependents?.has(currentlyComputedValue.ref);
|
|
391
|
+
const [currentlyComputedValue] = ctx;
|
|
392
|
+
const isAlreadySubscribed = this.derivations.has(currentlyComputedValue);
|
|
283
393
|
if (isAlreadySubscribed) {
|
|
284
394
|
return this.wvalue;
|
|
285
395
|
}
|
|
286
|
-
|
|
396
|
+
if (this instanceof DerivedCell && this[Depth] > ctx[1]) {
|
|
397
|
+
ctx[1] = this[Depth];
|
|
398
|
+
}
|
|
399
|
+
this.derivations.add(currentlyComputedValue);
|
|
400
|
+
if (CurrentTrackingContext instanceof LocalContext) {
|
|
401
|
+
CurrentTrackingContext.derivationSourceMap
|
|
402
|
+
.get(currentlyComputedValue)
|
|
403
|
+
?.add(this);
|
|
404
|
+
}
|
|
287
405
|
return this.wvalue;
|
|
288
406
|
}
|
|
289
407
|
/**
|
|
@@ -313,7 +431,9 @@ export class Cell {
|
|
|
313
431
|
return effect.callback === callback;
|
|
314
432
|
});
|
|
315
433
|
if (!isAlreadySubscribed) {
|
|
316
|
-
|
|
434
|
+
const effectContainer = new Effect(effect, options);
|
|
435
|
+
this.#effects.push(effectContainer);
|
|
436
|
+
addEffectToCurrentContext(this, effectContainer);
|
|
317
437
|
}
|
|
318
438
|
this.#effects.sort((a, b) => {
|
|
319
439
|
const aPriority = a.options?.priority ?? 0;
|
|
@@ -356,7 +476,9 @@ export class Cell {
|
|
|
356
476
|
return e.callback === callback;
|
|
357
477
|
});
|
|
358
478
|
if (!isAlreadySubscribed) {
|
|
359
|
-
|
|
479
|
+
const effectContainer = new Effect(cb, options);
|
|
480
|
+
this.#effects.push(effectContainer);
|
|
481
|
+
addEffectToCurrentContext(this, effectContainer);
|
|
360
482
|
}
|
|
361
483
|
this.#effects.sort((a, b) => {
|
|
362
484
|
const aPriority = a.options?.priority ?? 0;
|
|
@@ -479,6 +601,33 @@ export class Cell {
|
|
|
479
601
|
* ```
|
|
480
602
|
*/
|
|
481
603
|
static derived = (callback) => new DerivedCell(callback);
|
|
604
|
+
/**
|
|
605
|
+
* Creates a new LocalContext container.
|
|
606
|
+
* This context can be used to track effects and derived cells created within a specific scope
|
|
607
|
+
* and dispose of them synchronously using `context.destroy()`.
|
|
608
|
+
*
|
|
609
|
+
* @returns {LocalContext} A new LocalContext instance.
|
|
610
|
+
*/
|
|
611
|
+
static context = () => new LocalContext();
|
|
612
|
+
/**
|
|
613
|
+
* Executes a function within a specific LocalContext.
|
|
614
|
+
* Any effects (`.listen`) or derived cells (`Cell.derived`) created synchronously
|
|
615
|
+
* within the callback will be attached to the provided context.
|
|
616
|
+
*
|
|
617
|
+
* @template T
|
|
618
|
+
* @param {LocalContext} context - The context to bind resources to.
|
|
619
|
+
* @param {() => T} callback - The function to execute.
|
|
620
|
+
* @returns {T} The return value of the callback.
|
|
621
|
+
*/
|
|
622
|
+
static runWithContext = (context, callback) => {
|
|
623
|
+
pushLocalContext(context);
|
|
624
|
+
try {
|
|
625
|
+
return callback();
|
|
626
|
+
}
|
|
627
|
+
finally {
|
|
628
|
+
popLocalContext();
|
|
629
|
+
}
|
|
630
|
+
};
|
|
482
631
|
/**
|
|
483
632
|
* @template X
|
|
484
633
|
* Batches all the effects created to run only once.
|
|
@@ -528,10 +677,6 @@ export class Cell {
|
|
|
528
677
|
static flatten = (value) => {
|
|
529
678
|
if (value instanceof Cell) {
|
|
530
679
|
if (value instanceof DerivedCell) {
|
|
531
|
-
if (value.initialized) {
|
|
532
|
-
return Cell.flatten(value.wvalue);
|
|
533
|
-
}
|
|
534
|
-
value.setValue(value.computedFn());
|
|
535
680
|
return Cell.flatten(value.wvalue);
|
|
536
681
|
}
|
|
537
682
|
return Cell.flatten(value.wvalue);
|
|
@@ -672,15 +817,18 @@ export class Cell {
|
|
|
672
817
|
* @extends {Cell<T>}
|
|
673
818
|
*/
|
|
674
819
|
export class DerivedCell extends Cell {
|
|
820
|
+
[Depth] = 0;
|
|
675
821
|
/**
|
|
676
822
|
* @param {() => T} computedFn - A function that generates the value of the computed.
|
|
677
823
|
*/
|
|
678
824
|
constructor(computedFn) {
|
|
679
825
|
super();
|
|
680
|
-
|
|
826
|
+
if (CurrentTrackingContext instanceof LocalContext) {
|
|
827
|
+
CurrentTrackingContext.derivationSourceMap.set(this, new Set());
|
|
828
|
+
}
|
|
681
829
|
// Ensures that the cell is derived every time the computing function is called.
|
|
682
830
|
const derivationWrapper = () => {
|
|
683
|
-
ACTIVE_DERIVED_CTX.push(this);
|
|
831
|
+
ACTIVE_DERIVED_CTX.push([this, 0]);
|
|
684
832
|
let value = this.wvalue;
|
|
685
833
|
try {
|
|
686
834
|
value = computedFn();
|
|
@@ -689,56 +837,25 @@ export class DerivedCell extends Cell {
|
|
|
689
837
|
if (e instanceof Error)
|
|
690
838
|
cellErrors.push(e);
|
|
691
839
|
}
|
|
692
|
-
ACTIVE_DERIVED_CTX.pop();
|
|
840
|
+
const [, depth] = /** @type {[this, number]} */ (ACTIVE_DERIVED_CTX.pop());
|
|
841
|
+
if (depth + 1 > this[Depth])
|
|
842
|
+
this[Depth] = depth + 1;
|
|
693
843
|
return value;
|
|
694
844
|
};
|
|
845
|
+
this.setValue(derivationWrapper());
|
|
695
846
|
this.computedFn = /** @type {() => T} */ (derivationWrapper);
|
|
696
|
-
|
|
847
|
+
throwAnyErrors();
|
|
697
848
|
}
|
|
698
849
|
/** @type {() => T} */
|
|
699
850
|
computedFn;
|
|
700
|
-
/** @type {WeakRef<this>} */
|
|
701
|
-
ref;
|
|
702
851
|
/**
|
|
703
852
|
* Gets the current value of the derived cell, computing it if necessary,
|
|
704
853
|
* and registers it as a dependency if called within another derived cell computation.
|
|
705
854
|
* @returns {T} The value of the Cell.
|
|
706
855
|
*/
|
|
707
856
|
get() {
|
|
708
|
-
if (!this.initialized) {
|
|
709
|
-
this.initialized = true;
|
|
710
|
-
this.setValue(this.computedFn());
|
|
711
|
-
throwAnyErrors();
|
|
712
|
-
}
|
|
713
857
|
return this.revalued;
|
|
714
858
|
}
|
|
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
859
|
}
|
|
743
860
|
/**
|
|
744
861
|
* @template {*} out T
|
|
@@ -798,7 +915,8 @@ export class SourceCell extends Cell {
|
|
|
798
915
|
if (isEqual)
|
|
799
916
|
return;
|
|
800
917
|
this.setValue(value);
|
|
801
|
-
|
|
918
|
+
this[IsScheduled] = true;
|
|
919
|
+
UPDATE_BUFFER.push(this);
|
|
802
920
|
if (!IS_UPDATING)
|
|
803
921
|
triggerUpdate();
|
|
804
922
|
}
|
|
@@ -829,7 +947,8 @@ export class SourceCell extends Cell {
|
|
|
829
947
|
return (...args) => {
|
|
830
948
|
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
831
949
|
const result = target[prop](...args);
|
|
832
|
-
UPDATE_BUFFER.
|
|
950
|
+
UPDATE_BUFFER.push(this);
|
|
951
|
+
this[IsScheduled] = true;
|
|
833
952
|
if (!IS_UPDATING)
|
|
834
953
|
triggerUpdate();
|
|
835
954
|
return result;
|
|
@@ -850,7 +969,8 @@ export class SourceCell extends Cell {
|
|
|
850
969
|
if (!isEqual) {
|
|
851
970
|
// @ts-expect-error: dynamic object access.
|
|
852
971
|
target[prop] = value;
|
|
853
|
-
UPDATE_BUFFER.
|
|
972
|
+
UPDATE_BUFFER.push(this);
|
|
973
|
+
this[IsScheduled] = true;
|
|
854
974
|
if (!IS_UPDATING) {
|
|
855
975
|
triggerUpdate();
|
|
856
976
|
}
|
|
@@ -892,53 +1012,56 @@ export class CellUpdateError extends Error {
|
|
|
892
1012
|
function deepEqual(a, b) {
|
|
893
1013
|
if (a === b)
|
|
894
1014
|
return true;
|
|
895
|
-
if (
|
|
1015
|
+
if (a === null ||
|
|
896
1016
|
typeof a !== 'object' ||
|
|
897
|
-
|
|
898
|
-
b
|
|
1017
|
+
b === null ||
|
|
1018
|
+
typeof b !== 'object') {
|
|
899
1019
|
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
1020
|
}
|
|
1021
|
+
if (a.constructor !== b.constructor)
|
|
1022
|
+
return false;
|
|
1023
|
+
if (a instanceof Date)
|
|
1024
|
+
return a.getTime() === b.getTime();
|
|
1025
|
+
if (a instanceof RegExp)
|
|
1026
|
+
return a.source === b.source && a.flags === b.flags;
|
|
908
1027
|
if (a instanceof Map) {
|
|
909
|
-
if (
|
|
1028
|
+
if (a.size !== b.size)
|
|
910
1029
|
return false;
|
|
1030
|
+
for (const [key, value] of a) {
|
|
1031
|
+
if (!b.has(key) || !deepEqual(value, b.get(key))) {
|
|
1032
|
+
return false;
|
|
1033
|
+
}
|
|
911
1034
|
}
|
|
912
|
-
|
|
1035
|
+
return true;
|
|
1036
|
+
}
|
|
1037
|
+
if (a instanceof Set) {
|
|
1038
|
+
if (a.size !== b.size)
|
|
913
1039
|
return false;
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
if (!deepEqual(b.get(key), value)) {
|
|
1040
|
+
for (const value of a) {
|
|
1041
|
+
if (!b.has(value))
|
|
917
1042
|
return false;
|
|
918
|
-
}
|
|
919
1043
|
}
|
|
1044
|
+
return true;
|
|
920
1045
|
}
|
|
921
1046
|
if (Array.isArray(a)) {
|
|
922
|
-
const
|
|
923
|
-
if (
|
|
1047
|
+
const length = a.length;
|
|
1048
|
+
if (length !== b.length)
|
|
924
1049
|
return false;
|
|
925
|
-
for (let i = 0; i <
|
|
1050
|
+
for (let i = 0; i < length; i++) {
|
|
926
1051
|
if (!deepEqual(a[i], b[i]))
|
|
927
1052
|
return false;
|
|
928
1053
|
}
|
|
1054
|
+
return true;
|
|
929
1055
|
}
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
1056
|
+
const keysA = Object.keys(a);
|
|
1057
|
+
const length = keysA.length;
|
|
1058
|
+
if (Object.keys(b).length !== length)
|
|
1059
|
+
return false;
|
|
1060
|
+
for (let i = 0; i < length; i++) {
|
|
1061
|
+
const key = keysA[i];
|
|
1062
|
+
if (!Object.prototype.hasOwnProperty.call(b, key) ||
|
|
1063
|
+
!deepEqual(a[key], b[key])) {
|
|
935
1064
|
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
1065
|
}
|
|
943
1066
|
}
|
|
944
1067
|
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"}
|