as-model 0.2.4 → 0.2.5

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
@@ -779,6 +779,11 @@ function createUpdater(model2, middleWare) {
779
779
  return updater;
780
780
  }
781
781
 
782
+ // src/defaults.ts
783
+ function defaultSelector(i) {
784
+ return i();
785
+ }
786
+
782
787
  // src/store/cache.ts
783
788
  var cacheIdentify = {
784
789
  field: function field(d) {
@@ -1024,31 +1029,36 @@ function extractInstance(updater, wrapper, cache, opts) {
1024
1029
  }
1025
1030
  onGet(key, value);
1026
1031
  };
1027
- var instance = updater.instance;
1028
- if ((typeof instance === "undefined" ? "undefined" : _type_of(instance)) !== "object" || !instance) {
1029
- throw new Error("The instance should be an object or array.");
1030
- }
1031
- var properties = Object.getOwnPropertyNames(instance);
1032
- var proxiedInstance = createProxy(instance, {
1033
- get: function get(target, p) {
1034
- var value = target[p];
1035
- if (typeof value === "function" && properties.indexOf(p) >= 0) {
1036
- var actionMethod = wrapToActionMethod2(updater, p);
1037
- Object.assign(actionMethod, value);
1038
- return actionMethod;
1039
- }
1040
- return wrapToField2(updater, p, value);
1041
- },
1042
- set: function set() {
1043
- return false;
1044
- }
1045
- });
1046
1032
  function generateInstance() {
1047
- return proxiedInstance;
1033
+ var instance = updater.instance;
1034
+ if ((typeof instance === "undefined" ? "undefined" : _type_of(instance)) !== "object" || !instance) {
1035
+ throw new Error("The instance should be an object or array.");
1036
+ }
1037
+ var properties = Object.getOwnPropertyNames(instance);
1038
+ return createProxy(instance, {
1039
+ get: function get(target, p) {
1040
+ var value = target[p];
1041
+ if (typeof value === "function" && properties.indexOf(p) >= 0) {
1042
+ var actionMethod = wrapToActionMethod2(updater, p);
1043
+ Object.assign(actionMethod, value);
1044
+ return actionMethod;
1045
+ }
1046
+ return wrapToField2(updater, p, value);
1047
+ },
1048
+ set: function set() {
1049
+ return false;
1050
+ }
1051
+ });
1048
1052
  }
1049
- if (wrapper == null) {
1053
+ var proxiedInstance = generateInstance();
1054
+ if (wrapper == null || wrapper === defaultSelector) {
1050
1055
  return proxiedInstance;
1051
1056
  }
1057
+ if (wrapper === defaultSelector) {
1058
+ return cacheProperties(_object_spread_props(_object_spread({}, cache), {
1059
+ target: proxiedInstance
1060
+ }), handleGetter)();
1061
+ }
1052
1062
  var wrapped = wrapper(generateInstance);
1053
1063
  if ((typeof wrapped === "undefined" ? "undefined" : _type_of(wrapped)) === "object" && wrapped != null) {
1054
1064
  return cacheProperties(_object_spread_props(_object_spread({}, cache), {
@@ -1206,7 +1216,7 @@ function createPrimaryKey(modelFn) {
1206
1216
  var ifModelUsage = isModelUsage(modelFn);
1207
1217
  var model2 = ifModelKey ? modelFn.source : modelFn;
1208
1218
  var _config_wrapper;
1209
- var wrapper = (_config_wrapper = config2.wrapper) !== null && _config_wrapper !== void 0 ? _config_wrapper : ifModelKey || ifModelUsage ? modelFn.wrapper : function defaultSelector(i) {
1219
+ var wrapper = (_config_wrapper = config2.wrapper) !== null && _config_wrapper !== void 0 ? _config_wrapper : ifModelKey || ifModelUsage ? modelFn.wrapper : function defaultSelector2(i) {
1210
1220
  return i();
1211
1221
  };
1212
1222
  var wrapModel = function wrapModel2(state) {
@@ -1399,9 +1409,7 @@ function createStores(modelKeys) {
1399
1409
  // src/model/index.ts
1400
1410
  function configModel(config2) {
1401
1411
  var model2 = function model3(modelFn, wrapper) {
1402
- var currentSelector = wrapper !== null && wrapper !== void 0 ? wrapper : function defaultSelector(i) {
1403
- return i();
1404
- };
1412
+ var currentSelector = wrapper !== null && wrapper !== void 0 ? wrapper : defaultSelector;
1405
1413
  var modelWrapper = function modelWrapper2(state) {
1406
1414
  return modelFn(state);
1407
1415
  };
@@ -0,0 +1,6 @@
1
+ function defaultSelector(i) {
2
+ return i();
3
+ }
4
+ export {
5
+ defaultSelector
6
+ };
@@ -20,11 +20,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import { createStore, createField, createMethod } from "../store";
21
21
  import { createKey } from "../key";
22
22
  import { modelUsageIdentifier } from "../identifiers";
23
+ import { defaultSelector } from "../defaults";
23
24
  function configModel(config) {
24
25
  const model = function model2(modelFn, wrapper) {
25
- const currentSelector = wrapper != null ? wrapper : function defaultSelector(i) {
26
- return i();
27
- };
26
+ const currentSelector = wrapper != null ? wrapper : defaultSelector;
28
27
  const modelWrapper = function modelWrapper2(state) {
29
28
  return modelFn(state);
30
29
  };
@@ -18,6 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import { createProxy, shallowEqual } from "../tools";
21
+ import { defaultSelector } from "../defaults";
21
22
  import { cacheIdentify, cacheProperties } from "./cache";
22
23
  function createField(callback, deps) {
23
24
  const currentDeps = function computeDeps() {
@@ -139,31 +140,37 @@ function extractInstance(updater, wrapper, cache, opts) {
139
140
  }
140
141
  onGet(key, value);
141
142
  };
142
- const { instance } = updater;
143
- if (typeof instance !== "object" || !instance) {
144
- throw new Error("The instance should be an object or array.");
145
- }
146
- const properties = Object.getOwnPropertyNames(instance);
147
- const proxiedInstance = createProxy(instance, {
148
- get(target, p) {
149
- const value = target[p];
150
- if (typeof value === "function" && properties.indexOf(p) >= 0) {
151
- const actionMethod = wrapToActionMethod(updater, p);
152
- Object.assign(actionMethod, value);
153
- return actionMethod;
154
- }
155
- return wrapToField(updater, p, value);
156
- },
157
- set() {
158
- return false;
159
- }
160
- });
161
143
  function generateInstance() {
162
- return proxiedInstance;
144
+ const { instance } = updater;
145
+ if (typeof instance !== "object" || !instance) {
146
+ throw new Error("The instance should be an object or array.");
147
+ }
148
+ const properties = Object.getOwnPropertyNames(instance);
149
+ return createProxy(instance, {
150
+ get(target, p) {
151
+ const value = target[p];
152
+ if (typeof value === "function" && properties.indexOf(p) >= 0) {
153
+ const actionMethod = wrapToActionMethod(updater, p);
154
+ Object.assign(actionMethod, value);
155
+ return actionMethod;
156
+ }
157
+ return wrapToField(updater, p, value);
158
+ },
159
+ set() {
160
+ return false;
161
+ }
162
+ });
163
163
  }
164
- if (wrapper == null) {
164
+ const proxiedInstance = generateInstance();
165
+ if (wrapper == null || wrapper === defaultSelector) {
165
166
  return proxiedInstance;
166
167
  }
168
+ if (wrapper === defaultSelector) {
169
+ return cacheProperties(
170
+ __spreadProps(__spreadValues({}, cache), { target: proxiedInstance }),
171
+ handleGetter
172
+ )();
173
+ }
167
174
  const wrapped = wrapper(generateInstance);
168
175
  if (typeof wrapped === "object" && wrapped != null) {
169
176
  return cacheProperties(__spreadProps(__spreadValues({}, cache), { target: wrapped }), handleGetter)();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "as-model",
4
- "version": "0.2.4",
4
+ "version": "0.2.5",
5
5
  "description": "This is a model state management tool",
6
6
  "license": "MIT",
7
7
  "author": "Jimmy.Harding",