@expressive/mvc 0.21.7 → 0.21.8

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/lib/index.esm.js CHANGED
@@ -866,18 +866,26 @@ function set(value, argument) {
866
866
  return getter();
867
867
  };
868
868
  }
869
+ let setter = typeof argument == "function"
870
+ ? createValueEffect(argument)
871
+ : undefined;
869
872
  if (value !== undefined)
870
873
  state[key] = value;
874
+ else if (setter) {
875
+ const effect = setter;
876
+ setter = function (value) {
877
+ if (!(key in state))
878
+ state[key] = undefined;
879
+ return effect.call(this, value);
880
+ };
881
+ }
871
882
  return {
872
883
  get: () => {
873
884
  if (key in state)
874
885
  return state[key];
875
- else
876
- throw suspense(control, key);
886
+ throw suspense(control, key);
877
887
  },
878
- set: typeof argument == "function"
879
- ? createValueEffect(argument)
880
- : undefined
888
+ set: setter
881
889
  };
882
890
  });
883
891
  }
package/lib/index.js CHANGED
@@ -870,18 +870,26 @@ function set(value, argument) {
870
870
  return getter();
871
871
  };
872
872
  }
873
+ let setter = typeof argument == "function"
874
+ ? createValueEffect(argument)
875
+ : undefined;
873
876
  if (value !== undefined)
874
877
  state[key] = value;
878
+ else if (setter) {
879
+ const effect = setter;
880
+ setter = function (value) {
881
+ if (!(key in state))
882
+ state[key] = undefined;
883
+ return effect.call(this, value);
884
+ };
885
+ }
875
886
  return {
876
887
  get: () => {
877
888
  if (key in state)
878
889
  return state[key];
879
- else
880
- throw suspense(control, key);
890
+ throw suspense(control, key);
881
891
  },
882
- set: typeof argument == "function"
883
- ? createValueEffect(argument)
884
- : undefined
892
+ set: setter
885
893
  };
886
894
  });
887
895
  }
package/package.json CHANGED
@@ -27,5 +27,5 @@
27
27
  "preversion": "npm run test && npm run build",
28
28
  "postversion": "git push & npm publish"
29
29
  },
30
- "version": "0.21.7"
30
+ "version": "0.21.8"
31
31
  }