@webkrafters/react-observable-context 4.1.0-rc.8.1 → 4.1.0
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/types.d.ts +0 -10
- package/dist/utils/index.d.ts +2 -5
- package/dist/utils/index.js +21 -96
- package/package.json +2 -1
package/dist/types.d.ts
CHANGED
|
@@ -29,16 +29,6 @@ export type Prehooks<T extends State> = {
|
|
|
29
29
|
}) => boolean;
|
|
30
30
|
setState?: (newChanges: PartialState<T>) => boolean;
|
|
31
31
|
};
|
|
32
|
-
export type PropertyInfo<T extends any[] | State> = {
|
|
33
|
-
_value: any;
|
|
34
|
-
exists: boolean;
|
|
35
|
-
index: number;
|
|
36
|
-
isSelf: KeyType;
|
|
37
|
-
key: KeyType;
|
|
38
|
-
source: T;
|
|
39
|
-
trail: Array<KeyType>;
|
|
40
|
-
value: any;
|
|
41
|
-
};
|
|
42
32
|
export type State = {
|
|
43
33
|
[x: string]: any;
|
|
44
34
|
[x: number]: any;
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -5,8 +5,5 @@ export function mapPathsToObject<T extends {
|
|
|
5
5
|
[x: string]: any;
|
|
6
6
|
}>(source: T, propertyPaths: Array<string>): { [K in keyof T]?: any; };
|
|
7
7
|
export function clonedeep<T, R>(value: T): R;
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
export type PropertyInfo<T extends any[] | import("../types").State> = import("../types").PropertyInfo<T>;
|
|
11
|
-
export type State = import("../types").State;
|
|
12
|
-
export type KeyType = import("../types").KeyType;
|
|
8
|
+
export const getProperty: typeof get;
|
|
9
|
+
import get from "@webkrafters/get-property";
|
package/dist/utils/index.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.mapPathsToObject = mapPathsToObject;
|
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash.clonedeepwith"));
|
|
11
11
|
var _lodash2 = _interopRequireDefault(require("lodash.isplainobject"));
|
|
12
12
|
var _clonedeepEligibilityCheck = _interopRequireDefault(require("./clonedeep-eligibility-check"));
|
|
13
|
+
var _getProperty2 = _interopRequireDefault(require("@webkrafters/get-property"));
|
|
13
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
15
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
15
16
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
@@ -33,15 +34,16 @@ function arrangePropertyPaths(propertyPaths) {
|
|
|
33
34
|
})) {
|
|
34
35
|
return "break|L2";
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
pathTokens.every(function (p, i) {
|
|
38
|
-
return p === superPathTokens[i];
|
|
39
|
-
}) && replacedSuperPaths.push(superPath);
|
|
37
|
+
return "continue";
|
|
40
38
|
}
|
|
39
|
+
pathTokens.every(function (p, i) {
|
|
40
|
+
return p === superPathTokens[i];
|
|
41
|
+
}) && replacedSuperPaths.push(superPath);
|
|
41
42
|
};
|
|
42
43
|
for (var superPath in superPathTokensMap) {
|
|
43
44
|
var _ret = _loop2(superPath);
|
|
44
45
|
if (_ret === "break|L2") break L2;
|
|
46
|
+
if (_ret === "continue") continue;
|
|
45
47
|
}
|
|
46
48
|
superPathTokensMap[path] = pathTokens;
|
|
47
49
|
for (var _i = 0, _replacedSuperPaths = replacedSuperPaths; _i < _replacedSuperPaths.length; _i++) {
|
|
@@ -87,84 +89,7 @@ var clonedeep = function () {
|
|
|
87
89
|
return clonedeep;
|
|
88
90
|
}();
|
|
89
91
|
exports.clonedeep = clonedeep;
|
|
90
|
-
var getProperty =
|
|
91
|
-
var RE_DELIMITER = /[\[\]|\.]+/g;
|
|
92
|
-
var RE_END_BRACKET_LAST_CHAR = /\]$/;
|
|
93
|
-
var RE_TYPE = /.*\s(\w+)\]$/;
|
|
94
|
-
var toString = Object.prototype.toString;
|
|
95
|
-
var hasEntry = function hasEntry(key, object) {
|
|
96
|
-
try {
|
|
97
|
-
return key in object;
|
|
98
|
-
} catch (e) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
var get = function get(source, path, defaultValue) {
|
|
103
|
-
var _path2, _value2;
|
|
104
|
-
switch (toString.call(path).replace(RE_TYPE, '$1')) {
|
|
105
|
-
case 'String':
|
|
106
|
-
path = path.replace(RE_END_BRACKET_LAST_CHAR, '').split(RE_DELIMITER);
|
|
107
|
-
break;
|
|
108
|
-
case 'Array':
|
|
109
|
-
break;
|
|
110
|
-
case 'Undefined':
|
|
111
|
-
path = [];
|
|
112
|
-
break;
|
|
113
|
-
default:
|
|
114
|
-
path = [path];
|
|
115
|
-
}
|
|
116
|
-
var _value = source;
|
|
117
|
-
var exists = true;
|
|
118
|
-
var index = NaN;
|
|
119
|
-
var trail = [];
|
|
120
|
-
var _iterator2 = _createForOfIteratorHelper(path),
|
|
121
|
-
_step2;
|
|
122
|
-
try {
|
|
123
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
124
|
-
var p = _step2.value;
|
|
125
|
-
index = NaN;
|
|
126
|
-
if (Array.isArray(_value)) {
|
|
127
|
-
var _index = +p;
|
|
128
|
-
if (Number.isInteger(_index)) {
|
|
129
|
-
if (_index < 0) {
|
|
130
|
-
_index = _value.length + _index;
|
|
131
|
-
}
|
|
132
|
-
index = _index;
|
|
133
|
-
if (index in _value) {
|
|
134
|
-
source = _value;
|
|
135
|
-
_value = _value[index];
|
|
136
|
-
trail.push(index);
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
source = _value;
|
|
142
|
-
if (!hasEntry(p, _value)) {
|
|
143
|
-
exists = false;
|
|
144
|
-
_value = undefined;
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
_value = _value[p];
|
|
148
|
-
trail.push(p);
|
|
149
|
-
}
|
|
150
|
-
} catch (err) {
|
|
151
|
-
_iterator2.e(err);
|
|
152
|
-
} finally {
|
|
153
|
-
_iterator2.f();
|
|
154
|
-
}
|
|
155
|
-
return {
|
|
156
|
-
_value: _value,
|
|
157
|
-
exists: exists,
|
|
158
|
-
index: index,
|
|
159
|
-
isSelf: !path.length,
|
|
160
|
-
key: (_path2 = path) === null || _path2 === void 0 ? void 0 : _path2[path.length - 1],
|
|
161
|
-
source: path.length && path.length - trail.length < 2 ? source : undefined,
|
|
162
|
-
trail: trail,
|
|
163
|
-
value: (_value2 = _value) !== null && _value2 !== void 0 ? _value2 : defaultValue
|
|
164
|
-
};
|
|
165
|
-
};
|
|
166
|
-
return get;
|
|
167
|
-
}();
|
|
92
|
+
var getProperty = _getProperty2["default"];
|
|
168
93
|
exports.getProperty = getProperty;
|
|
169
94
|
function isDataContainer(v) {
|
|
170
95
|
return (0, _lodash2["default"])(v) || Array.isArray(v);
|
|
@@ -189,32 +114,32 @@ function makeReadonly(v) {
|
|
|
189
114
|
;
|
|
190
115
|
function mapPathsToObject(source, propertyPaths) {
|
|
191
116
|
var paths = [];
|
|
192
|
-
var
|
|
193
|
-
|
|
117
|
+
var _iterator2 = _createForOfIteratorHelper(propertyPaths),
|
|
118
|
+
_step2;
|
|
194
119
|
try {
|
|
195
|
-
for (
|
|
196
|
-
var path =
|
|
120
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
121
|
+
var path = _step2.value;
|
|
197
122
|
paths.push(path.replace(/\.?\[/g, '.').replace(/^\.|\]/g, ''));
|
|
198
123
|
}
|
|
199
124
|
} catch (err) {
|
|
200
|
-
|
|
125
|
+
_iterator2.e(err);
|
|
201
126
|
} finally {
|
|
202
|
-
|
|
127
|
+
_iterator2.f();
|
|
203
128
|
}
|
|
204
129
|
var dest = {};
|
|
205
130
|
var object = dest;
|
|
206
|
-
var
|
|
207
|
-
|
|
131
|
+
var _iterator3 = _createForOfIteratorHelper(arrangePropertyPaths(paths)),
|
|
132
|
+
_step3;
|
|
208
133
|
try {
|
|
209
|
-
for (
|
|
210
|
-
var
|
|
211
|
-
var _getProperty = getProperty(source,
|
|
134
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
135
|
+
var _path2 = _step3.value;
|
|
136
|
+
var _getProperty = getProperty(source, _path2),
|
|
212
137
|
exists = _getProperty.exists,
|
|
213
138
|
value = _getProperty.value;
|
|
214
139
|
if (!exists) {
|
|
215
140
|
continue;
|
|
216
141
|
}
|
|
217
|
-
for (var tokens =
|
|
142
|
+
for (var tokens = _path2.split('.'), tLen = tokens.length, t = 0; t < tLen; t++) {
|
|
218
143
|
var token = tokens[t];
|
|
219
144
|
if (t + 1 === tLen) {
|
|
220
145
|
object[token] = value;
|
|
@@ -228,9 +153,9 @@ function mapPathsToObject(source, propertyPaths) {
|
|
|
228
153
|
}
|
|
229
154
|
}
|
|
230
155
|
} catch (err) {
|
|
231
|
-
|
|
156
|
+
_iterator3.e(err);
|
|
232
157
|
} finally {
|
|
233
|
-
|
|
158
|
+
_iterator3.f();
|
|
234
159
|
}
|
|
235
160
|
return dest;
|
|
236
161
|
}
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"steveswork <stephen.isienyi@gmail.com> (https://github.com/steveswork)"
|
|
8
8
|
],
|
|
9
9
|
"dependencies": {
|
|
10
|
+
"@webkrafters/get-property": "^1.0.1",
|
|
10
11
|
"lodash.clonedeepwith": "^4.5.0",
|
|
11
12
|
"lodash.isboolean": "^3.0.3",
|
|
12
13
|
"lodash.isempty": "^4.4.0",
|
|
@@ -132,5 +133,5 @@
|
|
|
132
133
|
"test:watch": "eslint --fix && jest --updateSnapshot --watchAll"
|
|
133
134
|
},
|
|
134
135
|
"types": "dist/main/index.d.ts",
|
|
135
|
-
"version": "4.1.0
|
|
136
|
+
"version": "4.1.0"
|
|
136
137
|
}
|