@legendapp/state 0.15.3 → 0.16.0-next.2

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/index.d.ts CHANGED
@@ -14,7 +14,7 @@ export { isArray, isFunction, isObject, isPrimitive } from './src/is';
14
14
  /** @internal */
15
15
  export { onChange } from './src/onChange';
16
16
  /** @internal */
17
- export { tracking } from './src/tracking';
17
+ export { tracking, beginTracking, endTracking, updateTracking } from './src/tracking';
18
18
  /** @internal */
19
19
  export { symbolDateModified, symbolIsObservable, extraPrimitiveProps, getNodeValue, symbolUndef } from './src/globals';
20
20
  /** @internal */
package/index.js CHANGED
@@ -2,6 +2,65 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ const tracking = {
6
+ isTracking: false,
7
+ nodes: undefined,
8
+ listeners: undefined,
9
+ updates: undefined,
10
+ };
11
+ function beginTracking() {
12
+ // Keep a copy of the previous tracking context so it can be restored
13
+ // when this context is complete
14
+ const prev = tracking.nodes;
15
+ tracking.isTracking = true;
16
+ tracking.nodes = undefined;
17
+ return prev;
18
+ }
19
+ function endTracking(prevNodes) {
20
+ // Restore the previous tracking context
21
+ tracking.isTracking = !!prevNodes;
22
+ tracking.nodes = prevNodes;
23
+ }
24
+ function updateTracking(node, track, manual) {
25
+ if (tracking.isTracking) {
26
+ if (!tracking.nodes) {
27
+ tracking.nodes = new Map();
28
+ }
29
+ const existing = tracking.nodes.get(node.id);
30
+ if (existing) {
31
+ existing.track = existing.track || track;
32
+ existing.manual = existing.manual || manual;
33
+ existing.num++;
34
+ }
35
+ else {
36
+ tracking.nodes.set(node.id, { node, track, manual, num: 1 });
37
+ }
38
+ }
39
+ }
40
+ function untrack(node) {
41
+ if (tracking.nodes) {
42
+ const tracked = tracking.nodes.get(node.id);
43
+ if (tracked && !tracked.manual) {
44
+ if (tracked.num === 1) {
45
+ tracking.nodes.delete(node.id);
46
+ }
47
+ else {
48
+ tracked.num--;
49
+ }
50
+ }
51
+ }
52
+ }
53
+ function checkTracking(node, track) {
54
+ if (tracking.isTracking) {
55
+ if (track) {
56
+ updateTracking(node, track, /*manual*/ true);
57
+ }
58
+ else {
59
+ untrack(node);
60
+ }
61
+ }
62
+ }
63
+
5
64
  /** @internal */
6
65
  function isArray(obj) {
7
66
  return Array.isArray(obj);
@@ -35,34 +94,6 @@ function isEmpty(obj) {
35
94
  return obj && Object.keys(obj).length === 0;
36
95
  }
37
96
 
38
- const tracking = {
39
- nodes: undefined,
40
- listeners: undefined,
41
- updates: undefined,
42
- };
43
- function updateTracking(node, track, manual) {
44
- const existing = tracking.nodes.get(node.id);
45
- if (existing) {
46
- existing.track = existing.track || track;
47
- existing.manual = existing.manual || manual;
48
- existing.num++;
49
- }
50
- else {
51
- tracking.nodes.set(node.id, { node, track, manual, num: 1 });
52
- }
53
- }
54
- function untrack(node) {
55
- const tracked = tracking.nodes.get(node.id);
56
- if (tracked && !tracked.manual) {
57
- if (tracked.num === 1) {
58
- tracking.nodes.delete(node.id);
59
- }
60
- else {
61
- tracked.num--;
62
- }
63
- }
64
- }
65
-
66
97
  const symbolDateModified = Symbol('dateModified');
67
98
  const symbolIsObservable = Symbol('isObservable');
68
99
  const symbolGetNode = Symbol('getNode');
@@ -75,16 +106,6 @@ exports.Tracking = void 0;
75
106
  Tracking.optimized = Symbol('optimized');
76
107
  })(exports.Tracking || (exports.Tracking = {}));
77
108
  const nextNodeID = { current: 0 };
78
- function checkTracking(node, track) {
79
- if (tracking.nodes) {
80
- if (track) {
81
- updateTracking(node, track, /*manual*/ true);
82
- }
83
- else {
84
- untrack(node);
85
- }
86
- }
87
- }
88
109
  function get(node, keyOrTrack, track) {
89
110
  if (isBoolean(keyOrTrack) || isSymbol(keyOrTrack)) {
90
111
  track = keyOrTrack;
@@ -187,8 +208,8 @@ function mergeIntoObservable(target, ...sources) {
187
208
  let timeout;
188
209
  let numInBatch = 0;
189
210
  let _batch = [];
190
- // Use a WeakMap of callbacks for fast lookups to update the BatchItem
191
- let _batchMap = new WeakMap();
211
+ // Use a Map of callbacks for fast lookups to update the BatchItem
212
+ let _batchMap = new Map();
192
213
  function onActionTimeout() {
193
214
  if (_batch.length > 0) {
194
215
  if (process.env.NODE_ENV === 'development') {
@@ -198,19 +219,22 @@ function onActionTimeout() {
198
219
  }
199
220
  }
200
221
  function batchNotify(b) {
222
+ const isFunc = isFunction(b);
223
+ const cb = isFunc ? b : b.cb;
201
224
  if (numInBatch > 0) {
202
- const existing = _batchMap.get(b.cb);
225
+ const existing = _batchMap.get(cb);
226
+ const it = isFunc ? true : b;
203
227
  // If this callback already exists, make sure it has the latest value but do not add it
204
228
  if (existing) {
205
- _batchMap.set(b.cb, b);
229
+ _batchMap.set(cb, it);
206
230
  }
207
231
  else {
208
232
  _batch.push(b);
209
- _batchMap.set(b.cb, b);
233
+ _batchMap.set(cb, it);
210
234
  }
211
235
  }
212
236
  else {
213
- b.cb(b.value, b.getPrevious, b.path, b.valueAtPath, b.prevAtPath, b.node);
237
+ isFunc ? b() : b.cb(b.value, b.getPrevious, b.path, b.valueAtPath, b.prevAtPath, b.node);
214
238
  }
215
239
  }
216
240
  function batch(fn) {
@@ -232,20 +256,26 @@ function endBatch(force) {
232
256
  // This can happen with observableComputed for example.
233
257
  const batch = _batch;
234
258
  _batch = [];
235
- _batchMap = new WeakMap();
259
+ _batchMap = new Map();
236
260
  for (let i = 0; i < batch.length; i++) {
237
- const { cb, value, getPrevious: prev, path, valueAtPath, prevAtPath, node } = batch[i];
238
- cb(value, prev, path, valueAtPath, prevAtPath, node);
261
+ const b = batch[i];
262
+ if (isFunction(b)) {
263
+ b();
264
+ }
265
+ else {
266
+ const { cb, value, getPrevious: prev, path, valueAtPath, prevAtPath, node } = b;
267
+ cb(value, prev, path, valueAtPath, prevAtPath, node);
268
+ }
239
269
  }
240
270
  }
241
271
  }
242
272
 
243
- function onChange(node, callback, track) {
273
+ function onChange(node, callback, track, noArgs) {
244
274
  let listeners = node.listeners;
245
275
  if (!listeners) {
246
276
  node.listeners = listeners = new Set();
247
277
  }
248
- const listener = { listener: callback, track: track };
278
+ const listener = { listener: callback, track: track, noArgs };
249
279
  listeners.add(listener);
250
280
  return () => listeners.delete(listener);
251
281
  }
@@ -266,7 +296,7 @@ const ArrayModifiers = new Set([
266
296
  'splice',
267
297
  'unshift',
268
298
  ]);
269
- const ArrayLoopers = new Set(['every', 'some', 'filter', 'forEach', 'map']);
299
+ const ArrayLoopers = new Set(['every', 'some', 'filter', 'forEach', 'map', 'join']);
270
300
  const objectFns = new Map([
271
301
  ['get', get],
272
302
  ['set', set],
@@ -463,9 +493,7 @@ const proxyHandler = {
463
493
  }
464
494
  let value = getNodeValue(node);
465
495
  if (!node.parent && isPrimitive(value) && p === 'value') {
466
- if (tracking.nodes) {
467
- updateTracking(node);
468
- }
496
+ updateTracking(node);
469
497
  return value;
470
498
  }
471
499
  const vProp = value === null || value === void 0 ? void 0 : value[p];
@@ -483,9 +511,7 @@ const proxyHandler = {
483
511
  else if (ArrayLoopers.has(p)) {
484
512
  // Update that this node was accessed for observers
485
513
  // Listen to the array shallowly
486
- if (tracking.nodes) {
487
- updateTracking(node, exports.Tracking.shallow);
488
- }
514
+ updateTracking(node, exports.Tracking.shallow);
489
515
  return function (cbOrig, thisArg) {
490
516
  function cb(_, index, array) {
491
517
  return cbOrig(getProxy(node, index), index, array);
@@ -510,7 +536,7 @@ const proxyHandler = {
510
536
  lastAccessedNode = node;
511
537
  lastAccessedPrimitive = p;
512
538
  // Update that this primitive node was accessed for observers
513
- if (tracking.nodes) {
539
+ if (tracking.isTracking) {
514
540
  if (isArray(value) && p === 'length') {
515
541
  updateTracking(node, exports.Tracking.shallow);
516
542
  }
@@ -534,9 +560,7 @@ const proxyHandler = {
534
560
  return [];
535
561
  const keys = value ? Reflect.ownKeys(value) : [];
536
562
  // Update that this node was accessed for observers
537
- if (tracking.nodes) {
538
- updateTracking(node, exports.Tracking.shallow);
539
- }
563
+ updateTracking(node, exports.Tracking.shallow);
540
564
  // This is required to fix this error:
541
565
  // TypeError: 'getOwnPropertyDescriptor' on proxy: trap reported non-configurability for
542
566
  // property 'length' which is either non-existent or configurable in the proxy node
@@ -564,7 +588,7 @@ const proxyHandler = {
564
588
  return false;
565
589
  }
566
590
  }
567
- if (process.env.NODE_ENV === 'development' && tracking.nodes) {
591
+ if (process.env.NODE_ENV === 'development' && tracking.isTracking) {
568
592
  console.error(`[legend-state] Should not assign to an observable within an observer. You may have done this by accident. Please use set() if you really want to do this.`);
569
593
  }
570
594
  set(node, prop, value);
@@ -579,7 +603,7 @@ const proxyHandler = {
579
603
  return false;
580
604
  }
581
605
  else {
582
- if (process.env.NODE_ENV === 'development' && tracking.nodes) {
606
+ if (process.env.NODE_ENV === 'development' && tracking.isTracking) {
583
607
  console.error(`[legend-state] Should not delete an observable property within an observer. You may have done this by accident. Please use delete() if you really want to do this.`);
584
608
  }
585
609
  deleteFn(target, prop);
@@ -621,8 +645,7 @@ function setProp(node, key, newValue, level) {
621
645
  // Get the child node for updating and notifying
622
646
  let childNode = isRoot ? node : getChildNode(node, key);
623
647
  // Set operations do not create listeners
624
- if (tracking.nodes)
625
- untrack(childNode);
648
+ untrack(childNode);
626
649
  // Get the value of the parent
627
650
  let parentValue = isRoot ? node.root : getNodeValue(node);
628
651
  if (isRoot) {
@@ -687,7 +710,7 @@ function _notify(node, value, path, valueAtPath, prevAtPath, level, whenOptimize
687
710
  if (listeners) {
688
711
  let getPrevious;
689
712
  for (let listenerFn of listeners) {
690
- const { track } = listenerFn;
713
+ const { track, noArgs } = listenerFn;
691
714
  const ok = track === exports.Tracking.shallow
692
715
  ? level <= 0
693
716
  : track === exports.Tracking.optimized
@@ -700,15 +723,17 @@ function _notify(node, value, path, valueAtPath, prevAtPath, level, whenOptimize
700
723
  if (!getPrevious) {
701
724
  getPrevious = createPreviousHandler(value, path, prevAtPath);
702
725
  }
703
- batchNotify({
704
- cb: listenerFn.listener,
705
- value,
706
- getPrevious,
707
- path,
708
- valueAtPath,
709
- prevAtPath,
710
- node,
711
- });
726
+ batchNotify(noArgs
727
+ ? listenerFn.listener
728
+ : {
729
+ cb: listenerFn.listener,
730
+ value,
731
+ getPrevious,
732
+ path,
733
+ valueAtPath,
734
+ prevAtPath,
735
+ node,
736
+ });
712
737
  }
713
738
  }
714
739
  }
@@ -776,12 +801,14 @@ function observable(value, safe) {
776
801
  return proxy;
777
802
  }
778
803
 
779
- function setupTracking(nodes, update) {
804
+ function setupTracking(nodes, update, noArgs) {
780
805
  let listeners = [];
781
806
  // Listen to tracked nodes
782
- for (let tracked of nodes.values()) {
783
- const { node, track } = tracked;
784
- listeners.push(onChange(node, update, track));
807
+ if (nodes) {
808
+ for (let tracked of nodes.values()) {
809
+ const { node, track } = tracked;
810
+ listeners.push(onChange(node, update, track, noArgs));
811
+ }
785
812
  }
786
813
  return () => {
787
814
  if (listeners) {
@@ -814,8 +841,7 @@ function observe(run) {
814
841
  tracking.updates = undefined;
815
842
  }
816
843
  };
817
- const trackingPrev = tracking.nodes;
818
- tracking.nodes = new Map();
844
+ const trackingPrev = beginTracking();
819
845
  update();
820
846
  // Do tracing if it was requested
821
847
  if (process.env.NODE_ENV === 'development') {
@@ -825,7 +851,7 @@ function observe(run) {
825
851
  }
826
852
  }
827
853
  const ret = setupTracking(tracking.nodes, update);
828
- tracking.nodes = trackingPrev;
854
+ endTracking(trackingPrev);
829
855
  return ret;
830
856
  }
831
857
 
@@ -870,7 +896,7 @@ function when(predicate, effect) {
870
896
  if (ret) {
871
897
  // If value is truthy then run the effect and cleanup
872
898
  isDone = true;
873
- effect();
899
+ effect(ret);
874
900
  cleanup === null || cleanup === void 0 ? void 0 : cleanup();
875
901
  }
876
902
  }
@@ -890,8 +916,10 @@ function when(predicate, effect) {
890
916
 
891
917
  exports.batch = batch;
892
918
  exports.beginBatch = beginBatch;
919
+ exports.beginTracking = beginTracking;
893
920
  exports.computed = computed;
894
921
  exports.endBatch = endBatch;
922
+ exports.endTracking = endTracking;
895
923
  exports.event = event;
896
924
  exports.extraPrimitiveProps = extraPrimitiveProps;
897
925
  exports.getNode = getNode;
@@ -912,5 +940,6 @@ exports.symbolDateModified = symbolDateModified;
912
940
  exports.symbolIsObservable = symbolIsObservable;
913
941
  exports.symbolUndef = symbolUndef;
914
942
  exports.tracking = tracking;
943
+ exports.updateTracking = updateTracking;
915
944
  exports.when = when;
916
945
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/is.ts","../../src/tracking.ts","../../src/globals.ts","../../src/helpers.ts","../../src/batching.ts","../../src/onChange.ts","../../src/observable.ts","../../src/observe.ts","../../src/computed.ts","../../src/event.ts","../../src/when.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["Tracking"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/tracking.ts","../../src/is.ts","../../src/globals.ts","../../src/helpers.ts","../../src/batching.ts","../../src/onChange.ts","../../src/observable.ts","../../src/observe.ts","../../src/computed.ts","../../src/event.ts","../../src/when.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["Tracking"],"mappings":"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"}