jpf-mobx 1.0.123 → 1.0.125

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.
@@ -15,14 +15,9 @@ export function runInAction(fn) {
15
15
  return mobxRunInAction(fn);
16
16
  }
17
17
  export function observableValue(value, setter, options) {
18
- if (options && !options.deep) {
19
- options.deep = false;
20
- }
18
+ setDefaultOptions(options, { deep: false });
21
19
  const observableValue = mobxObservable.box(value || null, options);
22
- const result = function () {
23
- return observableValue.get();
24
- };
25
- result.setValue = (newValue) => {
20
+ observableValue.setValue = (newValue) => {
26
21
  if (newValue === undefined) {
27
22
  newValue = null;
28
23
  }
@@ -33,66 +28,65 @@ export function observableValue(value, setter, options) {
33
28
  observableValue["set"](newValue);
34
29
  }
35
30
  };
36
- result.setValueInAction = (newValue) => {
31
+ observableValue.setValueInAction = (newValue) => {
37
32
  runInAction(() => {
38
- result.setValue(newValue);
33
+ observableValue.setValue(newValue);
39
34
  });
40
35
  };
41
- result.setInternal = (newValue) => {
42
- if (newValue === undefined) {
43
- newValue = null;
36
+ observableValue.setInternal = (value) => {
37
+ if (value === undefined) {
38
+ value = null;
44
39
  }
45
- observableValue["set"](newValue);
40
+ observableValue["set"](value);
46
41
  };
47
- result.setInternalInAction = (newValue) => {
42
+ observableValue.setInternalInAction = (value) => {
48
43
  runInAction(() => {
49
- result.setInternal(newValue);
44
+ observableValue.setInternal(value);
50
45
  });
51
46
  };
52
- result.subscribe = (effect) => {
47
+ observableValue.subscribe = (effect) => {
53
48
  return mobxReaction(() => {
54
49
  return unwrap(observableValue);
55
50
  }, (value, prev, r) => {
56
51
  effect(value, prev, r);
57
52
  });
58
53
  };
59
- return result;
54
+ return observableValue;
60
55
  }
61
56
  export function observableArray(initialValues, setter, options) {
57
+ options = setDefaultOptions(options, { deep: false });
62
58
  const observableArray = mobxObservable.array(initialValues || null, options);
63
- const result = function () {
64
- return observableArray.toJSON();
65
- };
66
- result.setItems = (items) => {
67
- if (items === undefined) {
68
- items = [];
59
+ observableArray.setItems = (newValue) => {
60
+ if (newValue === undefined) {
61
+ newValue = [];
69
62
  }
70
63
  if (setter) {
71
- setter(items, observableArray);
64
+ setter(newValue, observableArray);
72
65
  }
73
66
  else {
74
- observableArray["replace"](items);
67
+ observableArray["replace"](newValue);
75
68
  }
76
69
  };
77
- result.setItemsInAction = (items) => {
70
+ observableArray.setItemsInAction = (newValue) => {
78
71
  runInAction(() => {
79
- result.setItems(items);
72
+ observableArray.setItems(newValue);
80
73
  });
81
74
  };
82
- result.setInternal = observableArray["replace"];
83
- result.setInternalInAction = (items) => {
75
+ observableArray.setInternal = observableArray["replace"];
76
+ observableArray.setInternalInAction = (items) => {
84
77
  runInAction(() => {
85
- result.setInternal(items);
78
+ observableArray.setInternal(items);
86
79
  });
87
80
  };
88
- result.subscribe = (effect) => {
81
+ observableArray.get = observableArray["toJSON"];
82
+ observableArray.subscribe = (effect) => {
89
83
  return mobxReaction(() => {
90
84
  return unwrap(observableArray);
91
85
  }, (value, prev, r) => {
92
86
  effect(value, prev, r);
93
87
  });
94
88
  };
95
- return result;
89
+ return observableArray;
96
90
  }
97
91
  export function observableMap(initialValues, options) {
98
92
  var defaultOptions = { deep: false };
@@ -141,4 +135,15 @@ export function unwrap(value) {
141
135
  }
142
136
  return value;
143
137
  }
138
+ function setDefaultOptions(target, source) {
139
+ if (source) {
140
+ target = target || {};
141
+ Object.keys(source).forEach((key) => {
142
+ if (!target.hasOwnProperty(key)) {
143
+ target[key] = source[key];
144
+ }
145
+ });
146
+ }
147
+ return target;
148
+ }
144
149
  //# sourceMappingURL=observable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jpf-mobx",
3
- "version": "1.0.123",
3
+ "version": "1.0.125",
4
4
  "description": "Javascript Presentation Foundation with mobx state management",
5
5
  "keywords": [
6
6
  "mvvm",
@@ -42,7 +42,7 @@
42
42
  "tscVersion": "tsc -v"
43
43
  },
44
44
  "dependencies": {
45
- "jpf": "5.0.14",
45
+ "jpf": "5.0.16",
46
46
  "mobx": "6.12.3"
47
47
  },
48
48
  "devDependencies": {
package/src/observable.ts CHANGED
@@ -42,92 +42,89 @@ export function runInAction<T>(fn: () => T): T {
42
42
  }
43
43
 
44
44
  export function observableValue<TValue, TSetter = TValue>(value?: TValue | null, setter?: (value: TSetter, observableValue: observableInterfaces.IObservableValue<TValue, TSetter>) => void, options?: mobxCreateObservableOptions): observableInterfaces.IObservableValue<TValue, TSetter> {
45
- if (options && !options.deep) {
46
- options.deep = false;
47
- }
48
- const observableValue = mobxObservable.box(value || null, options); // as any as observableInterfaces.IObservableValue<TValue, TSetter>;
45
+ //Make sure deep is set to false if not provided
46
+ setDefaultOptions(options, { deep: false });
49
47
 
50
- const result = function () {
51
- return observableValue.get();
52
- }
48
+ const observableValue = mobxObservable.box(value || null, options) as any as observableInterfaces.IObservableValue<TValue, TSetter>;
53
49
 
54
- result.setValue = (newValue: TSetter) => {
50
+ observableValue.setValue = (newValue: TSetter) => {
55
51
  if (newValue === undefined) {
56
52
  newValue = null;
57
53
  }
58
54
  if (setter) {
59
- setter(newValue, observableValue as any as observableInterfaces.IObservableValue<TValue, TSetter>);
55
+ setter(newValue, observableValue);
60
56
  } else {
61
- observableValue["set"](newValue as any);
57
+ observableValue["set"](newValue);
62
58
  }
63
59
  };
64
60
 
65
- result.setValueInAction = (newValue: TSetter | null) => {
61
+ observableValue.setValueInAction = (newValue: TSetter | null) => {
66
62
  runInAction(() => {
67
- result.setValue(newValue);
63
+ observableValue.setValue(newValue);
68
64
  });
69
65
  };
70
66
 
71
- result.setInternal = (newValue: TValue) => {
72
- if (newValue === undefined) {
73
- newValue = null;
67
+ observableValue.setInternal = (value: TValue | null) => {
68
+ if (value === undefined) {
69
+ value = null;
74
70
  }
75
- observableValue["set"](newValue);
76
- }
71
+ observableValue["set"](value);
72
+ };
77
73
 
78
- result.setInternalInAction = (newValue: TValue) => {
74
+ observableValue.setInternalInAction = (value: TValue | null) => {
79
75
  runInAction(() => {
80
- result.setInternal(newValue);
81
- })
82
- }
76
+ observableValue.setInternal(value);
77
+ });
78
+ };
83
79
 
84
- result.subscribe = (effect: (arg: TValue, prev: TValue, r: mobxIReactionPublic) => void) => {
80
+ observableValue.subscribe = (effect: (arg: TValue, prev: TValue, r: mobxIReactionPublic) => void) => {
85
81
  return mobxReaction(
86
82
  () => {
87
83
  return unwrap(observableValue);
88
84
  },
89
- (value, prev, r) => {
90
- effect(value as any, prev as any, r);
85
+ (value: TValue, prev: TValue, r) => {
86
+ effect(value, prev, r);
91
87
  }
92
88
  );
93
- }
89
+ };
94
90
 
95
- return result as any;
91
+ return observableValue;
96
92
  }
97
93
 
98
94
  export function observableArray<TItem = any, TSetter = Array<TItem>>(initialValues?: Array<TItem> | null, setter?: (value: TSetter, observableArray: observableInterfaces.IObservableArray<TItem, TSetter>) => void, options?: mobxCreateObservableOptions): observableInterfaces.IObservableArray<TItem, TSetter> {
99
- const observableArray = mobxObservable.array(initialValues || null, options);
95
+ //Make sure deep is set to false if not provided
96
+ options = setDefaultOptions(options, { deep: false });
100
97
 
101
- const result = function () {
102
- return observableArray.toJSON();
103
- }
98
+ const observableArray = mobxObservable.array(initialValues || null, options) as any as observableInterfaces.IObservableArray<TItem, TSetter>;
104
99
 
105
- result.setItems = (items: TSetter) => {
106
- if (items === undefined) {
107
- items = [] as any as TSetter;
100
+ observableArray.setItems = (newValue: TSetter) => {
101
+ if (newValue === undefined) {
102
+ newValue = [] as any as TSetter;
108
103
  }
109
104
  if (setter) {
110
- setter(items, observableArray as any as observableInterfaces.IObservableArray<TItem, TSetter>);
105
+ setter(newValue, observableArray);
111
106
  } else {
112
- observableArray["replace"](items as any);
107
+ observableArray["replace"](newValue);
113
108
  }
114
- }
109
+ };
115
110
 
116
- result.setItemsInAction = (items: TSetter) => {
111
+ observableArray.setItemsInAction = (newValue: TSetter) => {
117
112
  runInAction(() => {
118
- result.setItems(items);
113
+ observableArray.setItems(newValue);
119
114
  });
120
115
  };
121
116
 
122
- result.setInternal = observableArray["replace"];
117
+ observableArray.setInternal = observableArray["replace"];
123
118
 
124
- result.setInternalInAction = (items: Array<TItem> | null) => {
119
+ observableArray.setInternalInAction = (items: Array<TItem>) => {
125
120
  runInAction(() => {
126
- result.setInternal(items);
127
- })
128
- }
121
+ observableArray.setInternal(items);
122
+ });
123
+ };
124
+
125
+ observableArray.get = observableArray["toJSON"];
129
126
 
130
- result.subscribe = (effect: (arg: Array<TItem>, prev: Array<TItem>, r: mobxIReactionPublic) => void) => {
127
+ observableArray.subscribe = (effect: (arg: Array<TItem>, prev: Array<TItem>, r: mobxIReactionPublic) => void) => {
131
128
  return mobxReaction(
132
129
  () => {
133
130
  return unwrap(observableArray);
@@ -136,9 +133,9 @@ export function observableArray<TItem = any, TSetter = Array<TItem>>(initialValu
136
133
  effect(value, prev, r);
137
134
  }
138
135
  );
139
- }
136
+ };
140
137
 
141
- return result as any as observableInterfaces.IObservableArray<TItem, TSetter>;
138
+ return observableArray;
142
139
  }
143
140
 
144
141
  export function observableMap<TKey = any, TItem = any>(initialValues?: mobxIObservableMapInitialValues<TKey, TItem>, options?: mobxCreateObservableOptions): observableInterfaces.IObservableMap<TKey, TItem> {
@@ -203,4 +200,17 @@ export function unwrap<TValue>(value: TValue | observableInterfaces.ISubscribabl
203
200
  }
204
201
 
205
202
  return value as TValue;
203
+ }
204
+
205
+ function setDefaultOptions<TOptions>(target: TOptions, source: TOptions): TOptions {
206
+ if (source) {
207
+ target = target || {} as TOptions;
208
+ Object.keys(source).forEach((key) => {
209
+ if (!target.hasOwnProperty(key)) {
210
+ target[key] = source[key];
211
+ }
212
+ });
213
+ }
214
+
215
+ return target;
206
216
  }