@legendapp/state 1.3.6 → 1.4.0-next.0

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 1.4.0
2
+
3
+ - Feat: Returning an observable in a computed creates a two-way link to the target observable.
4
+ - Feat: `computed` is supported as a child of an observable
5
+ - Feat: Functions and computeds in the hierarchy of the constructing object in an observable are extracted into observable metadata so that setting the observable does not delete them.
6
+
7
+ ## 1.3.6
8
+
9
+ - Fix: Setting a primitive observable to the same value was still notifying listeners
10
+
1
11
  ## 1.3.5
2
12
 
3
13
  - Fix: array.find was returning `[]` instead of `undefined` when it found no matches
package/index.d.ts CHANGED
@@ -9,8 +9,8 @@ export { when, whenReady } from './src/when';
9
9
  export { configureLegendState } from './src/config';
10
10
  export * from './src/observableInterfaces';
11
11
  export { isEmpty, isArray, isBoolean, isFunction, isObject, isPrimitive, isPromise, isString, isSymbol, } from './src/is';
12
- import { setAtPath, getNode } from './src/helpers';
13
- import { ensureNodeValue, get, peek } from './src/globals';
12
+ import { setAtPath } from './src/helpers';
13
+ import { ensureNodeValue, get, getNode, peek } from './src/globals';
14
14
  import { getProxy, set } from './src/ObservableObject';
15
15
  export declare const internal: {
16
16
  ensureNodeValue: typeof ensureNodeValue;
package/index.js CHANGED
@@ -10,7 +10,6 @@ function isString(obj) {
10
10
  function isObject(obj) {
11
11
  return !!obj && typeof obj === 'object' && !isArray(obj);
12
12
  }
13
- // eslint-disable-next-line @typescript-eslint/ban-types
14
13
  function isFunction(obj) {
15
14
  return typeof obj === 'function';
16
15
  }
@@ -92,14 +91,13 @@ function updateTracking(node, track) {
92
91
  }
93
92
 
94
93
  const symbolToPrimitive = Symbol.toPrimitive;
95
- const symbolIsObservable = Symbol('isObservable');
96
- const symbolIsEvent = Symbol('isEvent');
97
94
  const symbolGetNode = Symbol('getNode');
98
95
  const symbolDelete = /* @__PURE__ */ Symbol('delete');
99
96
  const symbolOpaque = Symbol('opaque');
100
97
  const optimized = Symbol('optimized');
101
98
  const extraPrimitiveActivators = new Map();
102
99
  const extraPrimitiveProps = new Map();
100
+ const __devExtractFunctionsAndComputedsNodes = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test' ? new Set() : undefined;
103
101
  function checkActivate(node) {
104
102
  const root = node.root;
105
103
  const activate = root.activate;
@@ -108,6 +106,9 @@ function checkActivate(node) {
108
106
  activate();
109
107
  }
110
108
  }
109
+ function getNode(obs) {
110
+ return obs && obs[symbolGetNode];
111
+ }
111
112
  function get(node, track) {
112
113
  // Track by default
113
114
  updateTracking(node, track);
@@ -183,6 +184,36 @@ function findIDKey(obj, node) {
183
184
  }
184
185
  return idKey;
185
186
  }
187
+ function extractFunction(node, value, key) {
188
+ if (!node.functions) {
189
+ node.functions = new Map();
190
+ }
191
+ node.functions.set(key, value[key]);
192
+ }
193
+ function extractFunctionsAndComputeds(obj, node) {
194
+ if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
195
+ if (__devExtractFunctionsAndComputedsNodes.has(obj)) {
196
+ console.error('[legend-state] Circular reference detected in object. You may want to use opaqueObject to stop traversing child nodes.', obj);
197
+ return false;
198
+ }
199
+ __devExtractFunctionsAndComputedsNodes.add(obj);
200
+ }
201
+ for (const k in obj) {
202
+ const v = obj[k];
203
+ if (typeof v === 'function') {
204
+ extractFunction(node, obj, k);
205
+ }
206
+ else if (typeof v == 'object' && v !== null && v !== undefined) {
207
+ const childNode = getNode(v);
208
+ if (childNode === null || childNode === void 0 ? void 0 : childNode.isComputed) {
209
+ extractFunction(node, obj, k);
210
+ }
211
+ else {
212
+ extractFunctionsAndComputeds(obj[k], getChildNode(node, k));
213
+ }
214
+ }
215
+ }
216
+ }
186
217
 
187
218
  let timeout;
188
219
  let numInBatch = 0;
@@ -272,6 +303,11 @@ function computeChangesAtNode(changesInBatch, node, value, path, pathTypes, valu
272
303
  function computeChangesRecursive(changesInBatch, node, value, path, pathTypes, valueAtPath, prevAtPath, immediate, level, whenOptimizedOnlyIf) {
273
304
  // Do the compute at this node
274
305
  computeChangesAtNode(changesInBatch, node, value, path, pathTypes, valueAtPath, prevAtPath, immediate, level, whenOptimizedOnlyIf);
306
+ if (node.linkedFromNodes) {
307
+ for (const linkedFromNode of node.linkedFromNodes) {
308
+ computeChangesAtNode(changesInBatch, linkedFromNode, value, path, pathTypes, valueAtPath, prevAtPath, immediate, level, whenOptimizedOnlyIf);
309
+ }
310
+ }
275
311
  // If not root notify up through parents
276
312
  if (node.parent) {
277
313
  const parent = node.parent;
@@ -395,17 +431,18 @@ function afterBatch(fn) {
395
431
  }
396
432
 
397
433
  function isObservable(obs) {
398
- return obs && !!obs[symbolIsObservable];
434
+ return obs && !!obs[symbolGetNode];
435
+ }
436
+ function isEvent(obs) {
437
+ var _a;
438
+ return obs && ((_a = obs[symbolGetNode]) === null || _a === void 0 ? void 0 : _a.isEvent);
399
439
  }
400
- function computeSelector(selector, e) {
440
+ function computeSelector(selector, e, retainObservable) {
401
441
  let c = selector;
402
442
  if (isFunction(c)) {
403
443
  c = e ? c(e) : c();
404
444
  }
405
- return isObservable(c) ? c.get() : c;
406
- }
407
- function getNode(obs) {
408
- return obs[symbolGetNode];
445
+ return isObservable(c) && !retainObservable ? c.get() : c;
409
446
  }
410
447
  function getObservableIndex(obs) {
411
448
  const node = getNode(obs);
@@ -640,7 +677,7 @@ function trackSelector(selector, update, observeEvent, observeOptions, createRes
640
677
  else {
641
678
  // Compute the selector inside a tracking context
642
679
  beginTracking();
643
- value = selector ? computeSelector(selector, observeEvent) : selector;
680
+ value = selector ? computeSelector(selector, observeEvent, observeOptions === null || observeOptions === void 0 ? void 0 : observeOptions.retainObservable) : selector;
644
681
  tracker = tracking.current;
645
682
  nodes = tracker.nodes;
646
683
  endTracking();
@@ -689,9 +726,7 @@ const ArrayLoopers = new Set([
689
726
  'some',
690
727
  ]);
691
728
  const ArrayLoopersReturn = new Set(['filter', 'find']);
692
- // eslint-disable-next-line @typescript-eslint/ban-types
693
729
  const observableProperties = new Map();
694
- // eslint-disable-next-line @typescript-eslint/ban-types
695
730
  const observableFns = new Map([
696
731
  ['get', get],
697
732
  ['set', set],
@@ -708,7 +743,6 @@ if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
708
743
  function collectionSetter(node, target, prop, ...args) {
709
744
  var _a;
710
745
  const prevValue = (isArray(target) && target.slice()) || target;
711
- // eslint-disable-next-line @typescript-eslint/ban-types
712
746
  const ret = target[prop].apply(target, args);
713
747
  if (node) {
714
748
  const hasParent = isChildNodeValue(node);
@@ -902,22 +936,24 @@ function getProxy(node, p) {
902
936
  return node.proxy || (node.proxy = new Proxy(node, proxyHandler));
903
937
  }
904
938
  const proxyHandler = {
905
- get(node, p) {
939
+ get(node, p, receiver) {
940
+ var _a;
906
941
  if (p === symbolToPrimitive) {
907
942
  throw new Error(process.env.NODE_ENV === 'development'
908
943
  ? '[legend-state] observable should not be used as a primitive. You may have forgotten to use .get() or .peek() to get the value of the observable.'
909
944
  : '[legend-state] observable is not a primitive.');
910
945
  }
911
- if (p === symbolIsObservable) {
912
- // Return true if called by isObservable()
913
- return true;
914
- }
915
- if (p === symbolIsEvent) {
916
- return false;
917
- }
918
946
  if (p === symbolGetNode) {
919
947
  return node;
920
948
  }
949
+ if (node.isComputed) {
950
+ checkActivate(node);
951
+ }
952
+ // If this node is linked to another observable then forward to the target's handler.
953
+ // The exception is onChange because it needs to listen to this node for changes.
954
+ if (node.linkedToNode && p !== 'onChange') {
955
+ return proxyHandler.get(node.linkedToNode, p, receiver);
956
+ }
921
957
  const value = peek(node);
922
958
  if (value instanceof Map || value instanceof WeakMap || value instanceof Set || value instanceof WeakSet) {
923
959
  const ret = handlerMapSet(node, p, value);
@@ -1016,6 +1052,10 @@ const proxyHandler = {
1016
1052
  return vProp;
1017
1053
  }
1018
1054
  }
1055
+ const fnOrComputed = (_a = node.functions) === null || _a === void 0 ? void 0 : _a.get(p);
1056
+ if (fnOrComputed) {
1057
+ return fnOrComputed;
1058
+ }
1019
1059
  // Return an observable proxy to the property
1020
1060
  return getProxy(node, p);
1021
1061
  },
@@ -1125,7 +1165,7 @@ function setKey(node, key, newValue, level) {
1125
1165
  newValue =
1126
1166
  !node.isAssigning && isFunc
1127
1167
  ? newValue(prevValue)
1128
- : isObject(newValue) && (newValue === null || newValue === void 0 ? void 0 : newValue[symbolIsObservable])
1168
+ : isObject(newValue) && (newValue === null || newValue === void 0 ? void 0 : newValue[symbolGetNode])
1129
1169
  ? newValue.peek()
1130
1170
  : newValue;
1131
1171
  const isPrim = isPrimitive(newValue) || newValue instanceof Date;
@@ -1270,11 +1310,25 @@ function updateNodesAndNotify(node, newValue, prevValue, childNode, isPrim, isRo
1270
1310
  endBatch();
1271
1311
  }
1272
1312
 
1313
+ const fns = ['get', 'set', 'peek', 'onChange', 'toggle'];
1273
1314
  function ObservablePrimitiveClass(node) {
1274
1315
  this._node = node;
1275
- this.set = this.set.bind(this);
1276
- this.toggle = this.toggle.bind(this);
1316
+ // Bind to this
1317
+ for (let i = 0; i < fns.length; i++) {
1318
+ const key = fns[i];
1319
+ this[key] = this[key].bind(this);
1320
+ }
1277
1321
  }
1322
+ // Add observable functions to prototype
1323
+ function proto(key, fn) {
1324
+ ObservablePrimitiveClass.prototype[key] = function (...args) {
1325
+ return fn.call(this, this._node, ...args);
1326
+ };
1327
+ }
1328
+ proto('peek', peek);
1329
+ proto('get', get);
1330
+ proto('set', set);
1331
+ proto('onChange', onChange);
1278
1332
  // Getters
1279
1333
  Object.defineProperty(ObservablePrimitiveClass.prototype, symbolGetNode, {
1280
1334
  configurable: true,
@@ -1282,24 +1336,6 @@ Object.defineProperty(ObservablePrimitiveClass.prototype, symbolGetNode, {
1282
1336
  return this._node;
1283
1337
  },
1284
1338
  });
1285
- Object.defineProperty(ObservablePrimitiveClass.prototype, symbolIsObservable, {
1286
- configurable: true,
1287
- value: true,
1288
- });
1289
- Object.defineProperty(ObservablePrimitiveClass.prototype, symbolIsEvent, {
1290
- configurable: true,
1291
- value: false,
1292
- });
1293
- ObservablePrimitiveClass.prototype.peek = function () {
1294
- return peek(this._node);
1295
- };
1296
- ObservablePrimitiveClass.prototype.get = function () {
1297
- return get(this._node);
1298
- };
1299
- // Setters
1300
- ObservablePrimitiveClass.prototype.set = function (value) {
1301
- return set(this._node, value);
1302
- };
1303
1339
  ObservablePrimitiveClass.prototype.toggle = function () {
1304
1340
  const value = this.peek();
1305
1341
  if (value === undefined || isBoolean(value)) {
@@ -1314,10 +1350,6 @@ ObservablePrimitiveClass.prototype.delete = function () {
1314
1350
  this.set(undefined);
1315
1351
  return this;
1316
1352
  };
1317
- // Listener
1318
- ObservablePrimitiveClass.prototype.onChange = function (cb, options) {
1319
- return onChange(this._node, cb, options);
1320
- };
1321
1353
 
1322
1354
  function createObservable(value, makePrimitive) {
1323
1355
  const valueIsPromise = isPromise(value);
@@ -1327,7 +1359,8 @@ function createObservable(value, makePrimitive) {
1327
1359
  const node = {
1328
1360
  root,
1329
1361
  };
1330
- const obs = makePrimitive || isActualPrimitive(value)
1362
+ const prim = makePrimitive || isActualPrimitive(value);
1363
+ const obs = prim
1331
1364
  ? new ObservablePrimitiveClass(node)
1332
1365
  : getProxy(node);
1333
1366
  if (valueIsPromise) {
@@ -1338,6 +1371,12 @@ function createObservable(value, makePrimitive) {
1338
1371
  obs.set(value);
1339
1372
  });
1340
1373
  }
1374
+ else if (!prim) {
1375
+ if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
1376
+ __devExtractFunctionsAndComputedsNodes.clear();
1377
+ }
1378
+ extractFunctionsAndComputeds(value, node);
1379
+ }
1341
1380
  return obs;
1342
1381
  }
1343
1382
  function observable(value) {
@@ -1377,7 +1416,7 @@ function observe(selectorOrRun, reactionOrOptions, options) {
1377
1416
  e.onCleanupReaction = undefined;
1378
1417
  }
1379
1418
  // Call the reaction if there is one and the value changed
1380
- if (reaction && (e.num > 0 || !(selectorOrRun === null || selectorOrRun === void 0 ? void 0 : selectorOrRun[symbolIsEvent])) && e.previous !== e.value) {
1419
+ if (reaction && (e.num > 0 || !isEvent(selectorOrRun)) && e.previous !== e.value) {
1381
1420
  reaction(e);
1382
1421
  }
1383
1422
  // Update the previous value
@@ -1402,16 +1441,40 @@ function computed(compute, set$1) {
1402
1441
  // Create an observable for this computed variable
1403
1442
  const obs = observable();
1404
1443
  lockObservable(obs, true);
1405
- // Lazily activate the observable when get is called
1406
1444
  const node = getNode(obs);
1445
+ node.isComputed = true;
1407
1446
  const setInner = function (val) {
1408
- if (val !== obs.peek()) {
1447
+ const prevNode = node.linkedToNode;
1448
+ // If it was previously linked to a node remove self
1449
+ // from its linkedFromNodes
1450
+ if (prevNode) {
1451
+ node.linkedToNode.linkedFromNodes.delete(node);
1452
+ node.linkedToNode = undefined;
1453
+ }
1454
+ if (isObservable(val)) {
1455
+ // If the computed is a proxy to another observable
1456
+ // link it to the target observable
1457
+ const linkedNode = getNode(val);
1458
+ node.linkedToNode = linkedNode;
1459
+ if (!linkedNode.linkedFromNodes) {
1460
+ linkedNode.linkedFromNodes = new Set();
1461
+ }
1462
+ linkedNode.linkedFromNodes.add(node);
1463
+ // If the target observable is different then notify for the change
1464
+ if (prevNode) {
1465
+ const value = getNodeValue(linkedNode);
1466
+ const prevValue = getNodeValue(prevNode);
1467
+ notify(node, value, prevValue, 0);
1468
+ }
1469
+ }
1470
+ else if (val !== obs.peek()) {
1409
1471
  // Update the computed value
1410
1472
  lockObservable(obs, false);
1411
1473
  set(node, val);
1412
1474
  lockObservable(obs, true);
1413
1475
  }
1414
1476
  };
1477
+ // Lazily activate the observable when get is called
1415
1478
  node.root.activate = () => {
1416
1479
  observe(compute, ({ value }) => {
1417
1480
  if (isPromise(value)) {
@@ -1420,7 +1483,7 @@ function computed(compute, set$1) {
1420
1483
  else {
1421
1484
  setInner(value);
1422
1485
  }
1423
- }, { immediate: true });
1486
+ }, { immediate: true, retainObservable: true });
1424
1487
  };
1425
1488
  if (set$1) {
1426
1489
  node.root.set = (value) => {
@@ -1434,6 +1497,8 @@ function event() {
1434
1497
  // event simply wraps around a number observable
1435
1498
  // which increments its value to dispatch change events
1436
1499
  const obs = observable(0);
1500
+ const node = getNode(obs);
1501
+ node.isEvent = true;
1437
1502
  return {
1438
1503
  fire: function () {
1439
1504
  // Notify increments the value so that the observable changes
@@ -1442,10 +1507,12 @@ function event() {
1442
1507
  on: function (cb) {
1443
1508
  return obs.onChange(cb);
1444
1509
  },
1445
- get: () => obs.get(),
1510
+ get: function () {
1511
+ // Need to return undefined
1512
+ obs.get();
1513
+ },
1446
1514
  // @ts-expect-error eslint doesn't like adding symbols to the object but this does work
1447
- [symbolIsObservable]: true,
1448
- [symbolIsEvent]: true,
1515
+ [symbolGetNode]: node,
1449
1516
  };
1450
1517
  }
1451
1518
 
@@ -1574,8 +1641,6 @@ exports.setAtPath = setAtPath;
1574
1641
  exports.setInObservableAtPath = setInObservableAtPath;
1575
1642
  exports.setupTracking = setupTracking;
1576
1643
  exports.symbolDelete = symbolDelete;
1577
- exports.symbolIsEvent = symbolIsEvent;
1578
- exports.symbolIsObservable = symbolIsObservable;
1579
1644
  exports.trackSelector = trackSelector;
1580
1645
  exports.tracking = tracking;
1581
1646
  exports.updateTracking = updateTracking;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/is.ts","../../src/tracking.ts","../../src/globals.ts","../../src/batching.ts","../../src/helpers.ts","../../src/onChange.ts","../../src/setupTracking.ts","../../src/trackSelector.ts","../../src/ObservableObject.ts","../../src/ObservablePrimitive.ts","../../src/observable.ts","../../src/observe.ts","../../src/computed.ts","../../src/event.ts","../../src/when.ts","../../src/config.ts","../../index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["set","setBase","observableProperties","_observableProperties"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/is.ts","../../src/tracking.ts","../../src/globals.ts","../../src/batching.ts","../../src/helpers.ts","../../src/onChange.ts","../../src/setupTracking.ts","../../src/trackSelector.ts","../../src/ObservableObject.ts","../../src/ObservablePrimitive.ts","../../src/observable.ts","../../src/observe.ts","../../src/computed.ts","../../src/event.ts","../../src/when.ts","../../src/config.ts","../../index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["set","setBase","observableProperties","_observableProperties"],"mappings":"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"}