@adbl/cells 0.0.12 → 0.0.14

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 CHANGED
@@ -37,10 +37,10 @@ Source cells are the building blocks of your reactive state. They hold values th
37
37
  import { Cell } from '@adbl/cells';
38
38
 
39
39
  const count = Cell.source(0);
40
- console.log(count.value); // Output: 0
40
+ console.log(count.get()); // Output: 0
41
41
 
42
- count.value = 5;
43
- console.log(count.value); // Output: 5
42
+ count.set(5);
43
+ console.log(count.get()); // Output: 5
44
44
  ```
45
45
 
46
46
  ### 2. Derived Cells
@@ -49,12 +49,12 @@ Derived cells allow you to create computed values based on other cells. They upd
49
49
 
50
50
  ```javascript
51
51
  const count = Cell.source(0);
52
- const doubledCount = Cell.derived(() => count.value * 2);
52
+ const doubledCount = Cell.derived(() => count.get() * 2);
53
53
 
54
- console.log(doubledCount.value); // Output: 0
54
+ console.log(doubledCount.get()); // Output: 0
55
55
 
56
- count.value = 5;
57
- console.log(doubledCount.value); // Output: 10
56
+ count.set(5);
57
+ console.log(doubledCount.get()); // Output: 10
58
58
  ```
59
59
 
60
60
  ### 3. Reactive Effects
@@ -68,8 +68,8 @@ count.listen((newValue) => {
68
68
  console.log(`Count changed to: ${newValue}`);
69
69
  });
70
70
 
71
- count.value = 3; // Output: "Count changed to: 3"
72
- count.value = 7; // Output: "Count changed to: 7"
71
+ count.set(3); // Output: "Count changed to: 3"
72
+ count.set(7); // Output: "Count changed to: 7"
73
73
  ```
74
74
 
75
75
  ### 5. Batch Updates
@@ -80,13 +80,16 @@ When you need to perform multiple updates but only want to trigger effects once,
80
80
  const cell1 = Cell.source(0);
81
81
  const cell2 = Cell.source(0);
82
82
 
83
- Cell.afterUpdate(() => {
83
+ const callback = () => {
84
84
  console.log('Update occurred');
85
- });
85
+ };
86
+
87
+ cell1.listen(callback);
88
+ cell2.listen(callback);
86
89
 
87
90
  Cell.batch(() => {
88
- cell1.value = 1;
89
- cell2.value = 2;
91
+ cell1.set(1);
92
+ cell2.set(2);
90
93
  });
91
94
  // Output: "Update occurred" (only once)
92
95
  ```
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+
3
+ # Find all .js files in the dist directory
4
+ find dist -type f -name "*.js" | while read -r jsfile; do
5
+ # Get the base name of the file (e.g., index.js)
6
+ base_name=$(basename "$jsfile")
7
+ # Construct the corresponding .d.ts filename (e.g., index.d.ts)
8
+ dts_file="${base_name%.js}.d.ts"
9
+ # Construct the reference comment
10
+ reference_comment="/// <reference types=\"./$dts_file\" />"
11
+
12
+ # Check if the reference comment already exists
13
+ if ! grep -qF "$reference_comment" "$jsfile"; then
14
+ # Prepend the reference comment to the file
15
+ echo "$reference_comment" | cat - "$jsfile" > temp_file && mv temp_file "$jsfile"
16
+ fi
17
+ done
18
+
19
+ echo "Finished adding references."
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="./index.d.ts" />
1
2
  export * from './library/index.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,21 @@
1
1
  /**
2
- * @template {*} T
2
+ * @template {*} T The type of value stored in the cell
3
+ *
4
+ * Base class for reactive cells.
5
+ * This class should not be instantiated directly - use `Cell.source` or
6
+ * `Cell.derived` instead.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // Create a source cell
11
+ * const count = Cell.source(0);
12
+ *
13
+ * // Listen to changes
14
+ * count.listen(value => console.log('Count changed:', value));
15
+ *
16
+ * // Update the value
17
+ * count.set(1); // Logs: Count changed: 1
18
+ * ```
3
19
  */
4
20
  export class Cell<T extends unknown> {
5
21
  /**
@@ -12,10 +28,10 @@ export class Cell<T extends unknown> {
12
28
  * import { Cell } from '@adbl/cells';
13
29
  *
14
30
  * const cell = Cell.source('Hello world');
15
- * console.log(cell.value); // Hello world.
31
+ * console.log(cell.get()); // Hello world.
16
32
  *
17
- * cell.value = 'Greetings!';
18
- * console.log(cell.value) // Greetings!
33
+ * cell.set('Greetings!');
34
+ * console.log(cell.get()) // Greetings!
19
35
  * ```
20
36
  */
21
37
  static source: <T_1>(value: T_1, options?: Partial<CellOptions<T_1>> | undefined) => SourceCell<T_1>;
@@ -28,12 +44,12 @@ export class Cell<T extends unknown> {
28
44
  * import { Cell } from '@adbl/cells';
29
45
  *
30
46
  * const cell = Cell.source(2);
31
- * const derived = Cell.derived(() => cell.value * 2);
47
+ * const derived = Cell.derived(() => cell.get() * 2);
32
48
  *
33
- * console.log(derived.value); // 4
49
+ * console.log(derived.get()); // 4
34
50
  *
35
- * cell.value = 3;
36
- * console.log(derived.value); // 6
51
+ * cell.set(3);
52
+ * console.log(derived.get()); // 6
37
53
  * ```
38
54
  */
39
55
  static derived: <T_2>(callback: () => T_2) => DerivedCell<T_2>;
@@ -92,10 +108,9 @@ export class Cell<T extends unknown> {
92
108
  */
93
109
  static async<X_1, Y>(getter: (input: X_1) => Promise<Y>): AsyncRequestAtoms<X_1, Y>;
94
110
  /**
95
- * @readonly
96
111
  * @returns {Array<DerivedCell<any>>}
97
112
  */
98
- readonly get derivedCells(): DerivedCell<any>[];
113
+ get derivedCells(): DerivedCell<any>[];
99
114
  /**
100
115
  * @protected @type T
101
116
  */
@@ -110,7 +125,11 @@ export class Cell<T extends unknown> {
110
125
  * @returns {T} The value of the Cell.
111
126
  */
112
127
  valueOf(): T;
113
- get value(): T;
128
+ /**
129
+ * Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
130
+ * @returns {T} The value of the Cell.
131
+ */
132
+ get(): T;
114
133
  /**
115
134
  * Stringifies the value of the Cell.
116
135
  * @returns {string}
@@ -152,12 +171,13 @@ export class Cell<T extends unknown> {
152
171
  */
153
172
  stopListeningTo(name: string): void;
154
173
  /**
174
+ * @protected
155
175
  * Updates the root object and notifies any registered watchers and computed dependents.
156
176
  * This method is called whenever the root object's value changes.
157
177
  */
158
- update(): void;
178
+ protected update(): void;
159
179
  /**
160
- * Returns the current value of the cell without registering a watcher.
180
+ * Returns the current value of the cell without registering dependencies.
161
181
  * @returns {T} - The current value of the cell.
162
182
  */
163
183
  peek(): T;
@@ -179,14 +199,6 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
179
199
  /** @type {() => T} */
180
200
  computedFn: () => T;
181
201
  initialized: boolean;
182
- /**
183
- * @readonly
184
- */
185
- readonly set value(_: T);
186
- /**
187
- * @readonly
188
- */
189
- readonly get value(): T;
190
202
  /**
191
203
  * Listens for changes to the cell, initializing the value if not already done.
192
204
  * @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
@@ -200,11 +212,27 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
200
212
  * @returns {*} The result of the parent class's runAndListen method.
201
213
  */
202
214
  runAndListen(callback: (newValue: T) => void, options?: object | undefined): any;
203
- deproxy(): void;
204
215
  }
205
216
  /**
206
217
  * @template {*} T
207
218
  * @extends {Cell<T>}
219
+ * A cell whose value can be directly modified.
220
+ * Source cells are the primary way to introduce reactivity.
221
+ * They can hold any value type and will automatically handle proxying of objects
222
+ * to enable deep reactivity when needed.
223
+ *
224
+ * @example
225
+ * ```typescript
226
+ * const count = Cell.source(0);
227
+ * ```
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * // With options
232
+ * const immutableCell = Cell.source(42, { immutable: true });
233
+ * // Will throw error:
234
+ * immutableCell.set(43);
235
+ * ```
208
236
  */
209
237
  export class SourceCell<T extends unknown> extends Cell<T> {
210
238
  /**
@@ -214,29 +242,29 @@ export class SourceCell<T extends unknown> extends Cell<T> {
214
242
  */
215
243
  constructor(value: T, options?: Partial<CellOptions<T>> | undefined);
216
244
  options: Partial<CellOptions<T>> | undefined;
217
- /**
218
- * For cells containing objects, returns the object itself.
219
- * This can be useful in scenarios where unfettered access to the original object is needed,
220
- * such as when using the object as a cache.
221
- *
222
- * @example
223
- * const cell = new SourceCell({ a: 1, b: 2 });
224
- * console.log(cell.deproxy()); // { a: 1, b: 2 }
225
- *
226
- * cell.value = { a: 3, b: 4 };
227
- * console.log(cell.deproxy()); // { a: 3, b: 4 }
228
- *
229
- * @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
230
- */
231
- deproxy(): T extends object ? T : never;
232
245
  /**
233
246
  * Sets the value stored in the Cell and triggers an update.
234
247
  * @param {T} value
235
248
  */
236
- set value(value: T);
237
- get value(): T;
249
+ set(value: T): void;
238
250
  #private;
239
251
  }
252
+ /**
253
+ * An error class that aggregates multiple errors thrown during a cell update cycle.
254
+ *
255
+ * This error is thrown when one or more errors are encountered while updating cells,
256
+ * such as when running effect callbacks or computed updates. The `errors` property
257
+ * contains an array of all the errors that occurred during the update cycle.
258
+ *
259
+ * @example
260
+ * try {
261
+ * // Some cell update logic that may throw
262
+ * } catch (e) {
263
+ * if (e instanceof CellUpdateError) {
264
+ * console.error('Multiple errors occurred:', e.errors);
265
+ * }
266
+ * }
267
+ */
240
268
  export class CellUpdateError extends Error {
241
269
  /** @param {Error[]} errors */
242
270
  constructor(errors: Error[]);
@@ -301,6 +329,4 @@ export type CellOptions<T> = {
301
329
  equals?: ((oldValue: T, newValue: T) => boolean) | undefined;
302
330
  };
303
331
  export type NeverIfAny<T> = 0 extends (1 & T) ? never : T;
304
- export type Reference<T> = {
305
- deref: () => T | undefined;
306
- };
332
+ export type Cellular<T> = () => T;
@@ -1,3 +1,4 @@
1
+ /// <reference types="./classes.d.ts" />
1
2
  /**
2
3
  * @template Input, Output
3
4
  * @typedef {Object} AsyncRequestAtoms
@@ -43,34 +44,38 @@
43
44
  * @template T
44
45
  * @typedef {0 extends (1 & T) ? never : T} NeverIfAny
45
46
  */
47
+ /**
48
+ * @template T
49
+ * @typedef {() => T} Cellular
50
+ */
46
51
  /**
47
52
  * The nesting level of batch operations.
48
53
  * This will prevent nested batch operations from triggering effects when they finish.
49
54
  * @type {number}
50
55
  */
51
- let batchNestingLevel = 0;
56
+ let BATCH_NESTING_LEVEL = 0;
52
57
  /**
53
58
  * A map of effect tuples to be executed in a batch.
54
59
  * The key in each entry is the effect, and the value is the argument to call it with.
55
60
  * All callbacks in this map will be executed only once in a batch.
56
61
  * @type {Map<Function, any>}
57
62
  */
58
- let batchedEffects = new Map();
63
+ let BATCHED_EFFECTS = new Map();
59
64
  /**
60
65
  * A value representing the computed values that are currently being calculated.
61
66
  * It is an array so it can keep track of nested computed values.
62
67
  * @type {DerivedCell<any>[]}
63
68
  */
64
- const activeComputedValues = [];
69
+ const ACTIVE_DERIVED_CTX = [];
65
70
  /**
66
71
  * Tracks cells that need to be updated during the update cycle.
67
72
  * Cells are added to this stack to be processed and updated sequentially.
68
73
  * @type {Set<Cell<any>>}
69
74
  */
70
- const updateBuffer = new Set();
75
+ const UPDATE_BUFFER = new Set();
71
76
  /** @type {WeakMap<Cell<any>, Set<WeakRef<DerivedCell<any>>>>} */
72
- const derivedCellMap = new WeakMap();
73
- let isUpdating = false;
77
+ const DERIVED_CELLS = new WeakMap();
78
+ let IS_UPDATING = false;
74
79
  /** @type {Error[]} */
75
80
  const cellErrors = [];
76
81
  /**
@@ -83,17 +88,18 @@ const cellErrors = [];
83
88
  * updates of the same cell.
84
89
  */
85
90
  function triggerUpdate() {
86
- isUpdating = true;
87
- for (const cell of updateBuffer) {
91
+ IS_UPDATING = true;
92
+ for (const cell of UPDATE_BUFFER) {
88
93
  if (cell instanceof DerivedCell) {
89
94
  const newValue = cell.computedFn();
90
- if (deepEqual(cell.peek(), newValue))
95
+ // @ts-ignore: wvalue is protected.
96
+ if (deepEqual(cell.wvalue, newValue))
91
97
  continue;
92
98
  // @ts-ignore: wvalue is protected.
93
99
  cell.wvalue = newValue;
94
100
  }
95
101
  // Run computed dependents.
96
- const computedDependents = derivedCellMap.get(cell);
102
+ const computedDependents = DERIVED_CELLS.get(cell);
97
103
  if (computedDependents)
98
104
  for (const dependent of computedDependents) {
99
105
  const deref = dependent.deref();
@@ -102,23 +108,24 @@ function triggerUpdate() {
102
108
  continue;
103
109
  }
104
110
  const computedCell = deref;
105
- if (batchNestingLevel > 0) {
106
- batchedEffects.set(() => {
111
+ if (BATCH_NESTING_LEVEL > 0) {
112
+ BATCHED_EFFECTS.set(() => {
107
113
  if (!computedCell.initialized)
108
114
  return;
109
- updateBuffer.add(computedCell);
115
+ UPDATE_BUFFER.add(computedCell);
110
116
  }, undefined);
111
117
  }
112
118
  else {
113
119
  if (!computedCell.initialized)
114
120
  continue;
115
- updateBuffer.add(computedCell);
121
+ UPDATE_BUFFER.add(computedCell);
116
122
  }
117
123
  }
124
+ //@ts-ignore: Cell.update is protected.
118
125
  cell.update();
119
126
  }
120
- updateBuffer.clear();
121
- isUpdating = false;
127
+ UPDATE_BUFFER.clear();
128
+ IS_UPDATING = false;
122
129
  throwAnyErrors();
123
130
  }
124
131
  function throwAnyErrors() {
@@ -128,72 +135,26 @@ function throwAnyErrors() {
128
135
  throw new CellUpdateError(errors);
129
136
  }
130
137
  }
131
- const mutativeMethods = {
132
- Map: {
133
- set: Symbol('set'),
134
- delete: Symbol('delete'),
135
- clear: Symbol('clear'),
136
- },
137
- Set: {
138
- add: Symbol('add'),
139
- delete: Symbol('delete'),
140
- clear: Symbol('clear'),
141
- },
142
- Array: {
143
- push: Symbol('push'),
144
- pop: Symbol('pop'),
145
- shift: Symbol('shift'),
146
- unshift: Symbol('unshift'),
147
- splice: Symbol('splice'),
148
- sort: Symbol('sort'),
149
- reverse: Symbol('reverse'),
150
- },
151
- Date: {
152
- setDate: Symbol('setDate'),
153
- setMonth: Symbol('setMonth'),
154
- setFullYear: Symbol('setFullYear'),
155
- setHours: Symbol('setHours'),
156
- setMinutes: Symbol('setMinutes'),
157
- setSeconds: Symbol('setSeconds'),
158
- setMilliseconds: Symbol('setMilliseconds'),
159
- },
160
- };
161
- const mutativeMapMethods = /^(set|delete|clear)$/;
162
- const mutativeSetMethods = /^(add|delete|clear)$/;
163
- const mutativeArrayMethods = /^(push|pop|shift|unshift|splice|sort|reverse)$/;
164
- const mutativeDateMethods = /^(setDate|setMonth|setFullYear|setHours|setMinutes|setSeconds|setMilliseconds)$/;
165
- /**
166
- * Proxies mutative methods of a given value to trigger cell updates when called.
167
- *
168
- * @template {object} T
169
- * @param {T} value - The object whose methods are to be proxied.
170
- * @param {keyof typeof mutativeMethods} prototypeName - The name of the prototype (e.g., 'Map', 'Set') whose methods are being proxied.
171
- * @param {Cell<any>} cell - The cell to be updated when a mutative method is called.
172
- */
173
- const proxyMutativeMethods = (value, prototypeName, cell) => {
174
- for (const method in mutativeMethods[prototypeName]) {
175
- Reflect.set(value, Reflect.get(mutativeMethods[prototypeName], method),
176
- /**
177
- * @param {...any} args - The arguments passed to the mutative method.
178
- * @returns {any} The result of calling the original method.
179
- */
180
- (...args) => {
181
- // @ts-ignore
182
- const innerMethod = value[method]; // Direct access is faster than Reflection here.
183
- const result = innerMethod.apply(value, args);
184
- updateBuffer.add(cell);
185
- if (!isUpdating)
186
- triggerUpdate();
187
- return result;
188
- });
189
- }
190
- };
191
- /**
192
- * @template T
193
- * @typedef {{
194
- * deref: () => T | undefined
195
- * }} Reference
196
- */
138
+ const mutativeMapMethods = new Set(['set', 'delete', 'clear']);
139
+ const mutativeSetMethods = new Set(['add', 'delete', 'clear']);
140
+ const mutativeArrayMethods = new Set([
141
+ 'push',
142
+ 'pop',
143
+ 'shift',
144
+ 'unshift',
145
+ 'splice',
146
+ 'sort',
147
+ 'reverse',
148
+ ]);
149
+ const mutativeDateMethods = new Set([
150
+ 'setDate',
151
+ 'setMonth',
152
+ 'setFullYear',
153
+ 'setHours',
154
+ 'setMinutes',
155
+ 'setSeconds',
156
+ 'setMilliseconds',
157
+ ]);
197
158
  /** @template T */
198
159
  class Effect {
199
160
  /**
@@ -229,19 +190,39 @@ class Effect {
229
190
  }
230
191
  }
231
192
  /**
232
- * @template {*} T
193
+ * @template {*} T The type of value stored in the cell
194
+ *
195
+ * Base class for reactive cells.
196
+ * This class should not be instantiated directly - use `Cell.source` or
197
+ * `Cell.derived` instead.
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * // Create a source cell
202
+ * const count = Cell.source(0);
203
+ *
204
+ * // Listen to changes
205
+ * count.listen(value => console.log('Count changed:', value));
206
+ *
207
+ * // Update the value
208
+ * count.set(1); // Logs: Count changed: 1
209
+ * ```
233
210
  */
234
211
  export class Cell {
235
212
  /**
236
213
  * @type {Array<Effect<T>>}
237
214
  */
238
215
  #effects = [];
216
+ constructor() {
217
+ if (new.target === Cell) {
218
+ throw new Error('Cell should not be instantiated directly. Use `Cell.source` or `Cell.derived` instead.');
219
+ }
220
+ }
239
221
  /**
240
- * @readonly
241
222
  * @returns {Array<DerivedCell<any>>}
242
223
  */
243
224
  get derivedCells() {
244
- const dependents = derivedCellMap.get(this);
225
+ const dependents = DERIVED_CELLS.get(this);
245
226
  const cells = [];
246
227
  if (dependents) {
247
228
  for (const cell of dependents) {
@@ -268,17 +249,20 @@ export class Cell {
268
249
  * @returns {T} The value of the Cell.
269
250
  */
270
251
  valueOf() {
271
- return this.revalued;
272
- }
273
- get value() {
274
252
  return this.wvalue;
275
253
  }
254
+ /**
255
+ * Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
256
+ * @returns {T} The value of the Cell.
257
+ */
258
+ get() {
259
+ return this.revalued;
260
+ }
276
261
  /**
277
262
  * Stringifies the value of the Cell.
278
263
  * @returns {string}
279
264
  */
280
265
  toString() {
281
- // @ts-ignore
282
266
  return String(this.wvalue);
283
267
  }
284
268
  /**
@@ -286,17 +270,19 @@ export class Cell {
286
270
  * @protected @type {T}
287
271
  */
288
272
  get revalued() {
289
- const currentlyComputedValue = activeComputedValues[activeComputedValues.length - 1];
290
- if (currentlyComputedValue === undefined)
273
+ const currentlyComputedValue = ACTIVE_DERIVED_CTX[ACTIVE_DERIVED_CTX.length - 1];
274
+ if (currentlyComputedValue === undefined) {
291
275
  return this.wvalue;
292
- let dependents = derivedCellMap.get(this);
276
+ }
277
+ let dependents = DERIVED_CELLS.get(this);
293
278
  if (dependents === undefined) {
294
279
  dependents = new Set();
295
- derivedCellMap.set(this, dependents);
280
+ DERIVED_CELLS.set(this, dependents);
296
281
  }
297
282
  const isAlreadySubscribed = dependents?.has(currentlyComputedValue.ref);
298
- if (isAlreadySubscribed)
283
+ if (isAlreadySubscribed) {
299
284
  return this.wvalue;
285
+ }
300
286
  dependents.add(currentlyComputedValue.ref);
301
287
  return this.wvalue;
302
288
  }
@@ -417,12 +403,13 @@ export class Cell {
417
403
  this.#effects.splice(effectIndex, 1);
418
404
  }
419
405
  /**
406
+ * @protected
420
407
  * Updates the root object and notifies any registered watchers and computed dependents.
421
408
  * This method is called whenever the root object's value changes.
422
409
  */
423
410
  update() {
424
411
  // Run watchers.
425
- const wvalue = this.peek();
412
+ const wvalue = this.wvalue;
426
413
  const effects = this.#effects;
427
414
  let len = effects.length;
428
415
  for (let i = 0; i < len; i++) {
@@ -433,8 +420,8 @@ export class Cell {
433
420
  len--;
434
421
  continue;
435
422
  }
436
- if (batchNestingLevel > 0) {
437
- batchedEffects.set(watcher, wvalue);
423
+ if (BATCH_NESTING_LEVEL > 0) {
424
+ BATCHED_EFFECTS.set(watcher, wvalue);
438
425
  }
439
426
  else {
440
427
  try {
@@ -449,7 +436,7 @@ export class Cell {
449
436
  }
450
437
  }
451
438
  /**
452
- * Returns the current value of the cell without registering a watcher.
439
+ * Returns the current value of the cell without registering dependencies.
453
440
  * @returns {T} - The current value of the cell.
454
441
  */
455
442
  peek() {
@@ -465,10 +452,10 @@ export class Cell {
465
452
  * import { Cell } from '@adbl/cells';
466
453
  *
467
454
  * const cell = Cell.source('Hello world');
468
- * console.log(cell.value); // Hello world.
455
+ * console.log(cell.get()); // Hello world.
469
456
  *
470
- * cell.value = 'Greetings!';
471
- * console.log(cell.value) // Greetings!
457
+ * cell.set('Greetings!');
458
+ * console.log(cell.get()) // Greetings!
472
459
  * ```
473
460
  */
474
461
  static source = (value, options) => new SourceCell(value, options);
@@ -481,12 +468,12 @@ export class Cell {
481
468
  * import { Cell } from '@adbl/cells';
482
469
  *
483
470
  * const cell = Cell.source(2);
484
- * const derived = Cell.derived(() => cell.value * 2);
471
+ * const derived = Cell.derived(() => cell.get() * 2);
485
472
  *
486
- * console.log(derived.value); // 4
473
+ * console.log(derived.get()); // 4
487
474
  *
488
- * cell.value = 3;
489
- * console.log(derived.value); // 6
475
+ * cell.set(3);
476
+ * console.log(derived.get()); // 6
490
477
  * ```
491
478
  */
492
479
  static derived = (callback) => new DerivedCell(callback);
@@ -497,7 +484,7 @@ export class Cell {
497
484
  * @returns {X} The return value of the callback.
498
485
  */
499
486
  static batch = (callback) => {
500
- batchNestingLevel++;
487
+ BATCH_NESTING_LEVEL++;
501
488
  /** @type {X | undefined} */
502
489
  let value = undefined;
503
490
  let error;
@@ -507,17 +494,17 @@ export class Cell {
507
494
  catch (e) {
508
495
  error = e;
509
496
  }
510
- batchNestingLevel--;
497
+ BATCH_NESTING_LEVEL--;
511
498
  if (error instanceof Error) {
512
499
  cellErrors.push(error);
513
500
  }
514
- if (batchNestingLevel === 0) {
515
- for (const [effect, args] of batchedEffects) {
501
+ if (BATCH_NESTING_LEVEL === 0) {
502
+ for (const [effect, args] of BATCHED_EFFECTS) {
516
503
  effect(args);
517
504
  }
518
- if (!isUpdating)
505
+ if (!IS_UPDATING)
519
506
  triggerUpdate();
520
- batchedEffects = new Map();
507
+ BATCHED_EFFECTS = new Map();
521
508
  }
522
509
  throwAnyErrors();
523
510
  return /** @type {X} */ (value);
@@ -602,25 +589,25 @@ export class Cell {
602
589
  /** @type {X | undefined} */
603
590
  let initialInput = undefined;
604
591
  async function run(input = initialInput) {
605
- pending.value = true;
606
- error.value = null;
607
- data.value = null;
592
+ pending.set(true);
593
+ error.set(null);
594
+ data.set(null);
608
595
  await Cell.batch(async () => {
609
596
  try {
610
597
  initialInput = input;
611
598
  const result = await getter(/** @type {X} */ (input));
612
- data.value = result;
599
+ data.set(result);
613
600
  }
614
601
  catch (e) {
615
602
  if (e instanceof Error) {
616
- error.value = e;
603
+ error.set(e);
617
604
  }
618
605
  else {
619
606
  throw e;
620
607
  }
621
608
  }
622
609
  finally {
623
- pending.value = false;
610
+ pending.set(false);
624
611
  }
625
612
  });
626
613
  }
@@ -630,16 +617,16 @@ export class Cell {
630
617
  */
631
618
  async function reload(newInput, changeLoadingState = true) {
632
619
  if (changeLoadingState) {
633
- pending.value = true;
620
+ pending.set(true);
634
621
  }
635
622
  try {
636
623
  const result = await getter(
637
624
  /** @type {X} */ (newInput ?? initialInput));
638
- data.value = result;
625
+ data.set(result);
639
626
  }
640
627
  catch (e) {
641
628
  if (e instanceof Error) {
642
- error.value = e;
629
+ error.set(e);
643
630
  }
644
631
  else {
645
632
  throw e;
@@ -647,7 +634,7 @@ export class Cell {
647
634
  }
648
635
  finally {
649
636
  if (changeLoadingState) {
650
- pending.value = false;
637
+ pending.set(false);
651
638
  }
652
639
  }
653
640
  }
@@ -675,7 +662,7 @@ export class DerivedCell extends Cell {
675
662
  this.ref = new WeakRef(this);
676
663
  // Ensures that the cell is derived every time the computing function is called.
677
664
  const derivationWrapper = () => {
678
- activeComputedValues.push(this);
665
+ ACTIVE_DERIVED_CTX.push(this);
679
666
  let value = this.wvalue;
680
667
  try {
681
668
  value = computedFn();
@@ -684,7 +671,7 @@ export class DerivedCell extends Cell {
684
671
  if (e instanceof Error)
685
672
  cellErrors.push(e);
686
673
  }
687
- activeComputedValues.pop();
674
+ ACTIVE_DERIVED_CTX.pop();
688
675
  return value;
689
676
  };
690
677
  this.computedFn = /** @type {() => T} */ (derivationWrapper);
@@ -695,9 +682,11 @@ export class DerivedCell extends Cell {
695
682
  /** @type {WeakRef<this>} */
696
683
  ref;
697
684
  /**
698
- * @readonly
685
+ * Gets the current value of the derived cell, computing it if necessary,
686
+ * and registers it as a dependency if called within another derived cell computation.
687
+ * @returns {T} The value of the Cell.
699
688
  */
700
- get value() {
689
+ get() {
701
690
  if (!this.initialized) {
702
691
  this.initialized = true;
703
692
  this.setValue(this.computedFn());
@@ -732,23 +721,29 @@ export class DerivedCell extends Cell {
732
721
  }
733
722
  return super.runAndListen(callback, options);
734
723
  }
735
- /**
736
- * @readonly
737
- */
738
- set value(_) {
739
- throw new Error('Cannot set a derived Cell value.');
740
- }
741
- deproxy() {
742
- throw new Error('Cannot deproxy a derived cell.');
743
- }
744
724
  }
745
725
  /**
746
726
  * @template {*} T
747
727
  * @extends {Cell<T>}
728
+ * A cell whose value can be directly modified.
729
+ * Source cells are the primary way to introduce reactivity.
730
+ * They can hold any value type and will automatically handle proxying of objects
731
+ * to enable deep reactivity when needed.
732
+ *
733
+ * @example
734
+ * ```typescript
735
+ * const count = Cell.source(0);
736
+ * ```
737
+ *
738
+ * @example
739
+ * ```typescript
740
+ * // With options
741
+ * const immutableCell = Cell.source(42, { immutable: true });
742
+ * // Will throw error:
743
+ * immutableCell.set(43);
744
+ * ```
748
745
  */
749
746
  export class SourceCell extends Cell {
750
- /** @type {object | undefined} */
751
- #originalObject;
752
747
  /**
753
748
  * Creates a new Cell with the provided value.
754
749
  * @param {T} value
@@ -758,65 +753,35 @@ export class SourceCell extends Cell {
758
753
  super();
759
754
  if (options !== undefined)
760
755
  this.options = options;
761
- this.setValue(this.#proxy(value));
762
- if (typeof value === 'object' && value !== null) {
763
- this.#originalObject = value;
764
- }
765
- }
766
- /**
767
- * For cells containing objects, returns the object itself.
768
- * This can be useful in scenarios where unfettered access to the original object is needed,
769
- * such as when using the object as a cache.
770
- *
771
- * @example
772
- * const cell = new SourceCell({ a: 1, b: 2 });
773
- * console.log(cell.deproxy()); // { a: 1, b: 2 }
774
- *
775
- * cell.value = { a: 3, b: 4 };
776
- * console.log(cell.deproxy()); // { a: 3, b: 4 }
777
- *
778
- * @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
779
- */
780
- deproxy() {
781
- const originalObject = this.#originalObject;
782
- if (typeof originalObject === 'object' && originalObject !== null) {
783
- return /** @type {T extends object ? T : never} */ (originalObject);
784
- }
785
- throw new Error('Cannot deproxy a non-object cell.');
756
+ this.setValue(value);
786
757
  }
787
758
  peek() {
788
- const originalObject = this.#originalObject;
789
- if (typeof originalObject === 'object' && originalObject !== null) {
790
- return /** @type {T extends object ? T : never} */ (originalObject);
791
- }
792
759
  return this.wvalue;
793
760
  }
794
- get value() {
795
- return this.revalued;
761
+ /**
762
+ * Gets the current value of the source cell and registers it as a dependency if called within a derived cell computation.
763
+ * @returns {T} The value of the Cell.
764
+ */
765
+ get() {
766
+ return this.#proxy(this.revalued);
796
767
  }
797
768
  /**
798
769
  * Sets the value stored in the Cell and triggers an update.
799
770
  * @param {T} value
800
771
  */
801
- set value(value) {
772
+ set(value) {
802
773
  if (this.options?.immutable) {
803
774
  throw new Error('Cannot set the value of an immutable cell.');
804
775
  }
805
- const oldValue = this.peek();
776
+ const oldValue = this.wvalue;
806
777
  const isEqual = this.options?.equals
807
778
  ? this.options.equals(oldValue, value)
808
779
  : deepEqual(oldValue, value);
809
780
  if (isEqual)
810
781
  return;
811
- this.setValue(this.#proxy(value));
812
- if (typeof value === 'object' && value !== null) {
813
- this.#originalObject = value;
814
- }
815
- else {
816
- this.#originalObject = undefined;
817
- }
818
- updateBuffer.add(this);
819
- if (!isUpdating)
782
+ this.setValue(value);
783
+ UPDATE_BUFFER.add(this);
784
+ if (!IS_UPDATING)
820
785
  triggerUpdate();
821
786
  }
822
787
  /**
@@ -826,21 +791,8 @@ export class SourceCell extends Cell {
826
791
  * @returns {T} - The proxied value.
827
792
  */
828
793
  #proxy(value) {
829
- if (typeof value !== 'object' || value === null) {
794
+ if (typeof value !== 'object' || value === null)
830
795
  return value;
831
- }
832
- if (value instanceof Map) {
833
- proxyMutativeMethods(value, 'Map', this);
834
- }
835
- else if (value instanceof Set) {
836
- proxyMutativeMethods(value, 'Set', this);
837
- }
838
- else if (value instanceof Date) {
839
- proxyMutativeMethods(value, 'Date', this);
840
- }
841
- else if (ArrayBuffer.isView(value) || Array.isArray(value)) {
842
- proxyMutativeMethods(value, 'Array', this);
843
- }
844
796
  return new Proxy(value, {
845
797
  get: (target, prop) => {
846
798
  this.revalued;
@@ -848,46 +800,64 @@ export class SourceCell extends Cell {
848
800
  // @ts-ignore: Direct access is faster than Reflection here.
849
801
  return this.#proxy(target[prop]);
850
802
  }
803
+ if (typeof prop === 'string') {
804
+ const isMutativeMethod = (target instanceof Map && mutativeMapMethods.has(prop)) ||
805
+ (target instanceof Set && mutativeSetMethods.has(prop)) ||
806
+ (target instanceof Date && mutativeDateMethods.has(prop)) ||
807
+ ((ArrayBuffer.isView(target) || Array.isArray(target)) &&
808
+ mutativeArrayMethods.has(prop));
809
+ if (isMutativeMethod) {
810
+ // @ts-ignore: Direct access is faster than Reflection here.
811
+ return (...args) => {
812
+ // @ts-ignore: Direct access is faster than Reflection here.
813
+ const result = target[prop](...args);
814
+ UPDATE_BUFFER.add(this);
815
+ if (!IS_UPDATING)
816
+ triggerUpdate();
817
+ return result;
818
+ };
819
+ }
820
+ }
851
821
  // @ts-ignore: Direct access is faster than Reflection here.
852
822
  let value = target[prop];
853
823
  if (typeof value === 'function') {
854
824
  value = value.bind(target);
855
825
  }
856
- if (typeof prop === 'string') {
857
- if (target instanceof Map && mutativeMapMethods.test(prop)) {
858
- // @ts-ignore: Direct access is faster than Reflection here.
859
- return target[mutativeMethods.Map[prop]];
860
- }
861
- if (target instanceof Set && mutativeSetMethods.test(prop)) {
862
- // @ts-ignore: Direct access is faster than Reflection here.
863
- return target[mutativeMethods.Set[prop]];
864
- }
865
- if (target instanceof Date && mutativeDateMethods.test(prop)) {
866
- // @ts-ignore: Direct access is faster than Reflection here.
867
- return target[mutativeMethods.Date[prop]];
868
- }
869
- if ((ArrayBuffer.isView(target) || Array.isArray(target)) &&
870
- mutativeArrayMethods.test(prop)) {
871
- // @ts-ignore: Direct access is faster than Reflection here.
872
- return target[mutativeMethods.Array[prop]];
873
- }
874
- }
875
826
  return value;
876
827
  },
877
828
  set: (target, prop, value) => {
878
- const formerValue = Reflect.get(target, prop);
879
- Reflect.set(target, prop, value);
829
+ // @ts-ignore: dynamic object access.
830
+ const formerValue = target[prop];
880
831
  const isEqual = deepEqual(formerValue, value);
881
832
  if (!isEqual) {
882
- updateBuffer.add(this);
883
- if (!isUpdating)
833
+ // @ts-ignore: dynamic object access.
834
+ target[prop] = value;
835
+ UPDATE_BUFFER.add(this);
836
+ if (!IS_UPDATING) {
884
837
  triggerUpdate();
838
+ }
885
839
  }
886
840
  return true;
887
841
  },
888
842
  });
889
843
  }
890
844
  }
845
+ /**
846
+ * An error class that aggregates multiple errors thrown during a cell update cycle.
847
+ *
848
+ * This error is thrown when one or more errors are encountered while updating cells,
849
+ * such as when running effect callbacks or computed updates. The `errors` property
850
+ * contains an array of all the errors that occurred during the update cycle.
851
+ *
852
+ * @example
853
+ * try {
854
+ * // Some cell update logic that may throw
855
+ * } catch (e) {
856
+ * if (e instanceof CellUpdateError) {
857
+ * console.error('Multiple errors occurred:', e.errors);
858
+ * }
859
+ * }
860
+ */
891
861
  export class CellUpdateError extends Error {
892
862
  /** @param {Error[]} errors */
893
863
  constructor(errors) {
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="./index.d.ts" />
1
2
  import { DerivedCell, SourceCell, Cell, CellUpdateError } from './classes.js';
2
3
  /**
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]`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adbl/cells",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "description": "A simple implementation of reactive updates for JavaScript",
5
5
  "main": "index.js",
6
6
  "private": false,
@@ -11,6 +11,7 @@
11
11
  "test-once": "vitest run",
12
12
  "test": "vitest",
13
13
  "build": "tsc --p jsconfig.json",
14
+ "postbuild": "chmod +x ./add-references.sh && ./add-references.sh",
14
15
  "prepublish": "bunx pkg-pr-new publish"
15
16
  },
16
17
  "exports": {