1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getObject = getObject;
|
7 | exports.purge = purge;
|
8 | exports.extract = extract;
|
9 | exports.get = get;
|
10 | exports.performGetOnProperties = performGetOnProperties;
|
11 | exports.filterProperties = filterProperties;
|
12 | exports.filterPropertiesOnValues = filterPropertiesOnValues;
|
13 | exports.isObject = exports.cloneWithout = void 0;
|
14 |
|
15 | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
16 |
|
17 | function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
18 |
|
19 | function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
20 |
|
21 | function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
22 |
|
23 | var keys = Object.keys,
|
24 | entries = Object.entries;
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | var cloneWithout = function cloneWithout(object) {
|
34 | for (var _len = arguments.length, exclusions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
35 | exclusions[_key - 1] = arguments[_key];
|
36 | }
|
37 |
|
38 | return keys(object).reduce(function (accumulator, key) {
|
39 | if (!exclusions.includes(key)) {
|
40 | accumulator[key] = object[key];
|
41 | }
|
42 |
|
43 | return accumulator;
|
44 | }, {});
|
45 | };
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 | exports.cloneWithout = cloneWithout;
|
53 |
|
54 | var isObject = function isObject(value) {
|
55 | return typeof value !== 'string';
|
56 | };
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 | exports.isObject = isObject;
|
64 |
|
65 | function getObject(array) {
|
66 | var _array$filter = array.filter(function (value) {
|
67 | return isObject(value);
|
68 | }),
|
69 | _array$filter2 = _slicedToArray(_array$filter, 2),
|
70 | object = _array$filter2[0],
|
71 | invalid = _array$filter2[1];
|
72 |
|
73 | if (object === undefined) {
|
74 | throw new TypeError('no object');
|
75 | }
|
76 |
|
77 | if (invalid !== undefined) {
|
78 | throw new TypeError('multiple objects');
|
79 | }
|
80 |
|
81 | return object;
|
82 | }
|
83 |
|
84 |
|
85 |
|
86 |
|
87 |
|
88 |
|
89 | function purge() {
|
90 | for (var _len2 = arguments.length, rest = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
91 | rest[_key2] = arguments[_key2];
|
92 | }
|
93 |
|
94 | var object = getObject(rest);
|
95 | return entries(object).reduce(function (accumulator, _ref) {
|
96 | var _ref2 = _slicedToArray(_ref, 2),
|
97 | key = _ref2[0],
|
98 | value = _ref2[1];
|
99 |
|
100 | if (!rest.includes(key)) {
|
101 | accumulator[key] = value;
|
102 | }
|
103 |
|
104 | return accumulator;
|
105 | }, {});
|
106 | }
|
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 | function extract() {
|
114 | for (var _len3 = arguments.length, rest = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
115 | rest[_key3] = arguments[_key3];
|
116 | }
|
117 |
|
118 | var object = getObject(rest);
|
119 |
|
120 | var map = function map(value) {
|
121 | if (value === object) {
|
122 | return purge.apply(void 0, rest);
|
123 | }
|
124 |
|
125 | return object[value];
|
126 | };
|
127 |
|
128 | return rest.map(map);
|
129 | }
|
130 |
|
131 |
|
132 |
|
133 |
|
134 |
|
135 |
|
136 |
|
137 |
|
138 | function get(obj, path, def) {
|
139 | var fullPath = path.replace(/\[/g, '.').replace(/]/g, '').split('.').filter(Boolean);
|
140 | if (!obj) return def || undefined;
|
141 | return fullPath.every(everyFunc) ? obj : def;
|
142 |
|
143 | function everyFunc(step) {
|
144 | return !(step && obj && (obj = obj[step]) === undefined);
|
145 | }
|
146 | }
|
147 |
|
148 |
|
149 |
|
150 |
|
151 |
|
152 |
|
153 |
|
154 | function performGetOnProperties(object, paramGetters) {
|
155 | return keys(object).reduce(function (acc, param) {
|
156 | acc[param] = get(object, paramGetters[param]);
|
157 | return acc;
|
158 | }, {});
|
159 | }
|
160 |
|
161 |
|
162 |
|
163 |
|
164 |
|
165 |
|
166 |
|
167 | function filterProperties(object) {
|
168 | for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
169 | rest[_key4 - 1] = arguments[_key4];
|
170 | }
|
171 |
|
172 | return rest.reduce(function addProperty(accumulator, x) {
|
173 | if (object.hasOwnProperty(x)) {
|
174 | accumulator[x] = object[x];
|
175 | }
|
176 |
|
177 | return accumulator;
|
178 | }, {});
|
179 | }
|
180 |
|
181 | function filterPropertiesOnValues(object, filter) {
|
182 | return keys(object).reduce(function filterProps(accumulator, x) {
|
183 | if (filter(object[x])) {
|
184 | accumulator[x] = object[x];
|
185 | }
|
186 |
|
187 | return accumulator;
|
188 | }, {});
|
189 | } |
\ | No newline at end of file |