map-transform 0.4.0-alpha.17 → 0.4.0-alpha.18
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/utils/pathGetter.js
CHANGED
|
@@ -4,11 +4,11 @@ const definitionHelpers_1 = require("./definitionHelpers");
|
|
|
4
4
|
const is_1 = require("./is");
|
|
5
5
|
const array_1 = require("./array");
|
|
6
6
|
const functional_1 = require("./functional");
|
|
7
|
+
const pathSetter_1 = require("./pathSetter");
|
|
7
8
|
const numberOrString = (val) => {
|
|
8
9
|
const num = Number.parseInt(val, 10);
|
|
9
10
|
return Number.isNaN(num) ? val : num;
|
|
10
11
|
};
|
|
11
|
-
const split = (str) => str.split(/\[|]?\.|]/).filter((str) => str !== '');
|
|
12
12
|
const getProp = (prop) => (object) => (0, is_1.isObject)(object) ? object[prop] : undefined;
|
|
13
13
|
const getArrayIndex = (index) => (arr) => Array.isArray(arr) ? arr[index] : undefined;
|
|
14
14
|
const getObjectOrArray = (fn) => (object) => Array.isArray(object) ? object.flatMap(fn) : fn(object);
|
|
@@ -18,11 +18,20 @@ function createGetter(part) {
|
|
|
18
18
|
? getArrayIndex(prop)
|
|
19
19
|
: getObjectOrArray(getProp(prop));
|
|
20
20
|
}
|
|
21
|
+
const removeBrackets = (value) => value[0] === '[' && value[value.length - 1] === ']'
|
|
22
|
+
? value.slice(1, value.length - 1)
|
|
23
|
+
: value;
|
|
21
24
|
function pathGetter(path) {
|
|
22
25
|
if ((0, definitionHelpers_1.isPath)(path)) {
|
|
23
|
-
const
|
|
26
|
+
const parts = [...(0, pathSetter_1.pathSplitter)(path)];
|
|
27
|
+
const getters = parts
|
|
28
|
+
.map(removeBrackets)
|
|
29
|
+
.filter((str) => str !== '')
|
|
30
|
+
.map(createGetter);
|
|
24
31
|
const fn = getters.length === 0 ? functional_1.identity : (0, functional_1.pipe)(...getters);
|
|
25
|
-
return
|
|
32
|
+
return parts.some((part) => part === '[]')
|
|
33
|
+
? (value) => (0, array_1.ensureArray)(fn(value))
|
|
34
|
+
: fn;
|
|
26
35
|
}
|
|
27
36
|
return functional_1.identity;
|
|
28
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AAEA,2DAA4C;AAC5C,6BAA+B;AAC/B,mCAAqC;AACrC,6CAA6C;
|
|
1
|
+
{"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AAEA,2DAA4C;AAC5C,6BAA+B;AAC/B,mCAAqC;AACrC,6CAA6C;AAC7C,6CAA2C;AAM3C,MAAM,cAAc,GAAG,CAAC,GAAW,EAAmB,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACpD,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,gBAAgB,GACpB,CAAC,EAAgC,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;AAE3D,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CACvC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;IACjD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,KAAK,CAAA;AAQX,SAAwB,UAAU,CAAC,IAAiB;IAClD,IAAI,IAAA,0BAAM,EAAC,IAAI,CAAC,EAAE;QAChB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,KAAK;aAClB,GAAG,CAAC,cAAc,CAAC;aACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;aAC3B,GAAG,CAAC,YAAY,CAAC,CAAA;QACpB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAC,CAAC,CAAC,IAAA,iBAAI,EAAC,GAAG,OAAO,CAAC,CAAA;QAE7D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,EAAE,CAAA;KACP;IACD,OAAO,qBAAQ,CAAA;AACjB,CAAC;AAdD,6BAcC"}
|
|
@@ -2,4 +2,5 @@ import { Path } from '../types';
|
|
|
2
2
|
export interface Setter {
|
|
3
3
|
(value: unknown, target: unknown): unknown;
|
|
4
4
|
}
|
|
5
|
+
export declare const pathSplitter: (path: Path, markAfterOpen?: boolean) => Generator<string, void, unknown>;
|
|
5
6
|
export default function pathSetter(path: Path): Setter;
|
package/dist/utils/pathSetter.js
CHANGED
|
@@ -1,21 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pathSplitter = void 0;
|
|
3
4
|
const functional_1 = require("./functional");
|
|
4
5
|
const is_1 = require("./is");
|
|
5
6
|
const array_1 = require("./array");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
7
|
+
const removeEscaping = (value) => value.replace('\\[', '[');
|
|
8
|
+
const preparePathPart = (part, isAfterOpenArray) => removeEscaping(isAfterOpenArray ? `]${part}` : part);
|
|
9
|
+
const pathSplitter = function* (path, markAfterOpen = false) {
|
|
10
|
+
const regEx = /[^[\].]+|\[\w*]/g;
|
|
9
11
|
let match;
|
|
10
12
|
let isAfterOpenArray = false;
|
|
13
|
+
let prev = '';
|
|
11
14
|
do {
|
|
12
15
|
match = regEx.exec(path);
|
|
13
16
|
if (match) {
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
if (match[0].endsWith('\\')) {
|
|
18
|
+
prev = match[0];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
yield preparePathPart(prev + match[0], markAfterOpen && isAfterOpenArray);
|
|
22
|
+
prev = '';
|
|
23
|
+
isAfterOpenArray = match[0] === '[]';
|
|
24
|
+
}
|
|
16
25
|
}
|
|
17
26
|
} while (match !== null);
|
|
18
27
|
};
|
|
28
|
+
exports.pathSplitter = pathSplitter;
|
|
19
29
|
const createObjectSetter = (prop, next) => function setOnObject(value, target) {
|
|
20
30
|
const obj = (0, is_1.isObject)(target) ? target : {};
|
|
21
31
|
return {
|
|
@@ -55,7 +65,7 @@ function createSetter(prop, next) {
|
|
|
55
65
|
}
|
|
56
66
|
}
|
|
57
67
|
function pathSetter(path) {
|
|
58
|
-
return [...pathSplitter(path)].reduceRight((next, part) => createSetter(part, next), functional_1.identity);
|
|
68
|
+
return [...(0, exports.pathSplitter)(path, true)].reduceRight((next, part) => createSetter(part, next), functional_1.identity);
|
|
59
69
|
}
|
|
60
70
|
exports.default = pathSetter;
|
|
61
71
|
//# sourceMappingURL=pathSetter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED