as-model 0.1.26 → 0.1.28

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/dist/index.js CHANGED
@@ -836,17 +836,22 @@
836
836
  return actionMethod;
837
837
  }
838
838
  function wrapToField(updater, propertyName, value, onGot) {
839
- var cacheFields = updater.cacheFields;
840
- if (!cacheIdentify.field(value)) {
839
+ function collect(pName, v) {
841
840
  if (onGot) {
842
- onGot(propertyName, value);
841
+ onGot(pName, v);
843
842
  }
843
+ }
844
+ var cacheFields = updater.cacheFields;
845
+ if (!cacheIdentify.field(value)) {
846
+ collect(propertyName, value);
844
847
  return value;
845
848
  }
846
849
  var field2 = value;
847
850
  var cachedField = cacheFields[propertyName];
848
- if (cachedField) {
849
- return cachedField.getter;
851
+ if (cachedField && (field2.deps && shallowEqual(cachedField.deps, field2.deps) || !field2.deps && cachedField.value === field2.value)) {
852
+ var cacheFieldGetter = cachedField.getter;
853
+ collect(propertyName, cacheFieldGetter);
854
+ return cacheFieldGetter;
850
855
  }
851
856
  var getter = {
852
857
  get: function get() {
@@ -880,6 +885,7 @@
880
885
  value: field2.value,
881
886
  deps: field2.deps
882
887
  };
888
+ collect(propertyName, getter);
883
889
  return getter;
884
890
  }
885
891
  function extractInstance(updater, onGet) {
@@ -975,7 +981,6 @@
975
981
  };
976
982
  signal.stopStatistics = function stopStatistics() {
977
983
  signalStore.started = false;
978
- signalStore.collection = {};
979
984
  };
980
985
  signal.subscribe = function subscribe(dispatchCallback) {
981
986
  return store.subscribe(dispatchCallback);
@@ -65,7 +65,6 @@ function createSignal(store) {
65
65
  };
66
66
  signal.stopStatistics = function stopStatistics() {
67
67
  signalStore.started = false;
68
- signalStore.collection = {};
69
68
  };
70
69
  signal.subscribe = function subscribe(dispatchCallback) {
71
70
  return store.subscribe(dispatchCallback);
@@ -79,17 +79,22 @@ function wrapToActionMethod(updater, methodName) {
79
79
  return actionMethod;
80
80
  }
81
81
  function wrapToField(updater, propertyName, value, onGot) {
82
- const { cacheFields } = updater;
83
- if (!cacheIdentify.field(value)) {
82
+ function collect(pName, v) {
84
83
  if (onGot) {
85
- onGot(propertyName, value);
84
+ onGot(pName, v);
86
85
  }
86
+ }
87
+ const { cacheFields } = updater;
88
+ if (!cacheIdentify.field(value)) {
89
+ collect(propertyName, value);
87
90
  return value;
88
91
  }
89
92
  const field = value;
90
93
  const cachedField = cacheFields[propertyName];
91
- if (cachedField) {
92
- return cachedField.getter;
94
+ if (cachedField && (field.deps && shallowEqual(cachedField.deps, field.deps) || !field.deps && cachedField.value === field.value)) {
95
+ const cacheFieldGetter = cachedField.getter;
96
+ collect(propertyName, cacheFieldGetter);
97
+ return cacheFieldGetter;
93
98
  }
94
99
  const getter = {
95
100
  get() {
@@ -119,6 +124,7 @@ function wrapToField(updater, propertyName, value, onGot) {
119
124
  }
120
125
  };
121
126
  cacheFields[propertyName] = { getter, value: field.value, deps: field.deps };
127
+ collect(propertyName, getter);
122
128
  return getter;
123
129
  }
124
130
  function extractInstance(updater, onGet) {