map-transform 0.4.0-alpha.10 → 0.4.0-alpha.13
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/README.md +28 -4
- package/dist/functions/compare.d.ts +2 -1
- package/dist/functions/compare.js +13 -5
- package/dist/functions/compare.js.map +1 -1
- package/dist/functions/explode.js +2 -2
- package/dist/functions/explode.js.map +1 -1
- package/dist/functions/map.js +2 -2
- package/dist/functions/map.js.map +1 -1
- package/dist/functions/not.js +1 -1
- package/dist/functions/not.js.map +1 -1
- package/dist/functions/validate.js +2 -2
- package/dist/functions/validate.js.map +1 -1
- package/dist/functions/value.js +2 -2
- package/dist/functions/value.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/filter.js +1 -1
- package/dist/operations/filter.js.map +1 -1
- package/dist/operations/getSet.d.ts +2 -1
- package/dist/operations/getSet.js +3 -2
- package/dist/operations/getSet.js.map +1 -1
- package/dist/operations/ifelse.js +1 -3
- package/dist/operations/ifelse.js.map +1 -1
- package/dist/operations/mutate.js +51 -20
- package/dist/operations/mutate.js.map +1 -1
- package/dist/operations/transform.js +1 -1
- package/dist/operations/transform.js.map +1 -1
- package/dist/types.d.ts +2 -5
- package/dist/utils/is.d.ts +2 -0
- package/dist/utils/is.js +5 -1
- package/dist/utils/is.js.map +1 -1
- package/dist/utils/stateHelpers.d.ts +1 -2
- package/dist/utils/stateHelpers.js +1 -6
- package/dist/utils/stateHelpers.js.map +1 -1
- package/package.json +5 -5
- package/ava-dist.config.cjs +0 -3
- package/ava.config.cjs +0 -5
package/README.md
CHANGED
|
@@ -830,6 +830,27 @@ const response = {
|
|
|
830
830
|
Had we ran this without the `modify()` operation, the returned object would only
|
|
831
831
|
have the `data` prop.
|
|
832
832
|
|
|
833
|
+
This is equivalent to setting the `$modify` property to `true` on the object
|
|
834
|
+
mutation object:
|
|
835
|
+
|
|
836
|
+
```javascript
|
|
837
|
+
const def34b = {
|
|
838
|
+
$modify: true,
|
|
839
|
+
data: 'data.deeply.placed.items',
|
|
840
|
+
}
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
Note that `$modify` may also be set further down in the object structure. Also,
|
|
844
|
+
in some cases it may make more sense to specify a path in the source data to
|
|
845
|
+
merge with:
|
|
846
|
+
|
|
847
|
+
```javascript
|
|
848
|
+
const def34c = {
|
|
849
|
+
$modify: 'response',
|
|
850
|
+
data: 'response.data.deeply.placed.items',
|
|
851
|
+
}
|
|
852
|
+
```
|
|
853
|
+
|
|
833
854
|
#### `fwd(pipeline)` and `rev(pipeline)` operation
|
|
834
855
|
|
|
835
856
|
All operations in MapTransform will apply in both directions, although some of
|
|
@@ -1010,7 +1031,7 @@ mapper.rev(mappedData)
|
|
|
1010
1031
|
// --> { content: { meta: { authors: ['user1', 'user3'] } } }
|
|
1011
1032
|
```
|
|
1012
1033
|
|
|
1013
|
-
#### `compare({ path, operator, match, matchPath })` function
|
|
1034
|
+
#### `compare({ path, operator, match, matchPath, not })` function
|
|
1014
1035
|
|
|
1015
1036
|
This is a helper function intended for use with the `filter()` operation. You
|
|
1016
1037
|
pass a dot notation `path` and a `match` value (string, number, boolean) to
|
|
@@ -1023,10 +1044,13 @@ data.
|
|
|
1023
1044
|
|
|
1024
1045
|
The default is to compare the values resulting from `path` and `match` or
|
|
1025
1046
|
`matchPath` with equality, but other operations may be set on the `operator`
|
|
1026
|
-
property. Alternatives: `'='`, `'!='`, `'>'`, `'>='`, `'<'`, or `'<='
|
|
1047
|
+
property. Alternatives: `'='`, `'!='`, `'>'`, `'>='`, `'<'`, or `'<='`, or `in`
|
|
1048
|
+
(equality to at least one of the elements in an array).
|
|
1049
|
+
|
|
1050
|
+
If the `path` points to an array, the value is expected to be one of the values
|
|
1051
|
+
in the array.
|
|
1027
1052
|
|
|
1028
|
-
|
|
1029
|
-
the array.
|
|
1053
|
+
Set `not` to `true` to reverse the result of the comparison.
|
|
1030
1054
|
|
|
1031
1055
|
Here's an example where only data where role is set to 'admin' will be kept:
|
|
1032
1056
|
|
|
@@ -4,6 +4,7 @@ interface CompareOperands extends Operands {
|
|
|
4
4
|
operator?: string;
|
|
5
5
|
match?: unknown;
|
|
6
6
|
matchPath?: Path;
|
|
7
|
+
not?: boolean;
|
|
7
8
|
}
|
|
8
|
-
export default function compare({ path, operator, match, matchPath, }: CompareOperands): DataMapper;
|
|
9
|
+
export default function compare({ path, operator, match, matchPath, not, }: CompareOperands): DataMapper;
|
|
9
10
|
export {};
|
|
@@ -8,6 +8,9 @@ const compareArrayOrValue = (comparer) => (value, match) => Array.isArray(value)
|
|
|
8
8
|
const isNumeric = (value) => typeof value === 'number';
|
|
9
9
|
const compareArrayOrValueNumeric = (comparer) => compareArrayOrValue((value, match) => isNumeric(value) && isNumeric(match) && comparer(value, match));
|
|
10
10
|
const compareEqual = compareArrayOrValue((value, match) => value === match);
|
|
11
|
+
const compareIn = (value, match) => Array.isArray(match)
|
|
12
|
+
? match.some((item) => compareEqual(value, item))
|
|
13
|
+
: compareEqual(value, match);
|
|
11
14
|
function createComparer(operator) {
|
|
12
15
|
switch (operator) {
|
|
13
16
|
case '=':
|
|
@@ -22,18 +25,23 @@ function createComparer(operator) {
|
|
|
22
25
|
return compareArrayOrValueNumeric((value, match) => value < match);
|
|
23
26
|
case '<=':
|
|
24
27
|
return compareArrayOrValueNumeric((value, match) => value <= match);
|
|
28
|
+
case 'in':
|
|
29
|
+
return compareIn;
|
|
25
30
|
default:
|
|
26
31
|
return (_value, _match) => false;
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
|
-
function compare({ path = '.', operator = '=', match, matchPath, }) {
|
|
34
|
+
function compare({ path = '.', operator = '=', match, matchPath, not = false, }) {
|
|
30
35
|
const getValue = (0, pathGetter_1.default)(path);
|
|
31
|
-
const
|
|
36
|
+
const useRoot = typeof matchPath === 'string' && matchPath[0] === '^';
|
|
37
|
+
const realMatchPath = useRoot ? matchPath.slice(1) : matchPath;
|
|
38
|
+
const getMatch = typeof realMatchPath === 'string' ? (0, pathGetter_1.default)(realMatchPath) : () => match;
|
|
32
39
|
const comparer = createComparer(operator);
|
|
33
|
-
return (data) => {
|
|
40
|
+
return (data, state) => {
|
|
34
41
|
const value = getValue(data);
|
|
35
|
-
const match = getMatch(data);
|
|
36
|
-
|
|
42
|
+
const match = getMatch(useRoot ? state.root : data);
|
|
43
|
+
const result = comparer(value, match);
|
|
44
|
+
return not ? !result : result;
|
|
37
45
|
};
|
|
38
46
|
}
|
|
39
47
|
exports.default = compare;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/functions/compare.ts"],"names":[],"mappings":";;AACA,oDAAwC;
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/functions/compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,11 +43,11 @@ function doExplode(data) {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
function explode() {
|
|
46
|
-
return (data,
|
|
46
|
+
return (data, state) => (state.rev ? doImplode(data) : doExplode(data));
|
|
47
47
|
}
|
|
48
48
|
exports.explode = explode;
|
|
49
49
|
function implode() {
|
|
50
|
-
return (data,
|
|
50
|
+
return (data, state) => (state.rev ? doExplode(data) : doImplode(data));
|
|
51
51
|
}
|
|
52
52
|
exports.implode = implode;
|
|
53
53
|
//# sourceMappingURL=explode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/functions/explode.ts"],"names":[],"mappings":";;;AAEA,oCAAsC;AAOtC,MAAM,eAAe,GAAG,CAAC,IAAe,EAAE,EAAE,CAC1C,IAAI,CAAC,MAAM,GAAG,CAAC;IACf,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;AAEtE,MAAM,aAAa,GAAG,CACpB,MAA2C,EAC3C,QAAiB,EACjB,EAAE;IACF,IAAI,IAAA,aAAQ,EAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,GAAa,CAAC,GAAG,KAAK,CAAA;SAC9B;aAAM;YACL,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;SAC5B;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,MAAM,CAChB,aAAa,EACb,eAAe,CAAC,IAAI,CAAC;YACnB,CAAC,CAAE,EAAgB;YACnB,CAAC,CAAE,EAA8B,CACpC,CAAA;KACF;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAoB,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG;YACH,KAAK;SACN,CAAC,CAAC,CAAA;KACN;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;KACnE;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/functions/explode.ts"],"names":[],"mappings":";;;AAEA,oCAAsC;AAOtC,MAAM,eAAe,GAAG,CAAC,IAAe,EAAE,EAAE,CAC1C,IAAI,CAAC,MAAM,GAAG,CAAC;IACf,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;AAEtE,MAAM,aAAa,GAAG,CACpB,MAA2C,EAC3C,QAAiB,EACjB,EAAE;IACF,IAAI,IAAA,aAAQ,EAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,GAAa,CAAC,GAAG,KAAK,CAAA;SAC9B;aAAM;YACL,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;SAC5B;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,MAAM,CAChB,aAAa,EACb,eAAe,CAAC,IAAI,CAAC;YACnB,CAAC,CAAE,EAAgB;YACnB,CAAC,CAAE,EAA8B,CACpC,CAAA;KACF;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAoB,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG;YACH,KAAK;SACN,CAAC,CAAC,CAAA;KACN;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;KACnE;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACzE,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACzE,CAAC;AAFD,0BAEC"}
|
package/dist/functions/map.js
CHANGED
|
@@ -33,8 +33,8 @@ function map(operands, options) {
|
|
|
33
33
|
if (!dictionary) {
|
|
34
34
|
return () => undefined;
|
|
35
35
|
}
|
|
36
|
-
return (data,
|
|
37
|
-
const { rev } =
|
|
36
|
+
return (data, state) => {
|
|
37
|
+
const { rev = false } = state;
|
|
38
38
|
const match = translate(data, dictionary, rev);
|
|
39
39
|
return match === '*' ? data : match;
|
|
40
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAOlC,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAA2B,EAAE,CAClE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC;IACrD,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,SAAS,CAAA;AAEpB,SAAS,cAAc,CACrB,KAAsB,EACtB,UAAsB,EACtB,SAAgB;IAGhB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,UAAsB,EAAE,GAAY;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAU,CAAA;IACtC,OAAO,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACvD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;QAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG,EAAE;YACxC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAC5D,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;SACnD;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAgC,EAChC,YAA2B;IAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,CAAA;KAChD;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;AACH,CAAC;AAED,SAAwB,GAAG,CACzB,QAAkB,EAClB,OAAyC;IAEzC,MAAM,UAAU,GAAG,iBAAiB,CAClC,QAAQ,CAAC,UAAU,EACnB,OAAO,IAAI,OAAO,CAAC,YAAY,CAChC,CAAA;IACD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;KACvB;IACD,OAAO,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAOlC,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAA2B,EAAE,CAClE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC;IACrD,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,SAAS,CAAA;AAEpB,SAAS,cAAc,CACrB,KAAsB,EACtB,UAAsB,EACtB,SAAgB;IAGhB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,UAAsB,EAAE,GAAY;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAU,CAAA;IACtC,OAAO,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACvD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;QAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG,EAAE;YACxC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAC5D,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;SACnD;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAgC,EAChC,YAA2B;IAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,CAAA;KAChD;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;AACH,CAAC;AAED,SAAwB,GAAG,CACzB,QAAkB,EAClB,OAAyC;IAEzC,MAAM,UAAU,GAAG,iBAAiB,CAClC,QAAQ,CAAC,UAAU,EACnB,OAAO,IAAI,OAAO,CAAC,YAAY,CAChC,CAAA;IACD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;KACvB;IACD,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,KAAK,CAAA;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QAC9C,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACrC,CAAC,CAAA;AACH,CAAC;AAhBD,sBAgBC"}
|
package/dist/functions/not.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../src/functions/not.ts"],"names":[],"mappings":";;AAEA,SAAwB,GAAG,CAAC,EAAc;IACxC,OAAO,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../src/functions/not.ts"],"names":[],"mappings":";;AAEA,SAAwB,GAAG,CAAC,EAAc;IACxC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAFD,sBAEC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const ajv_1 = require("ajv");
|
|
4
4
|
const pathGetter_1 = require("../utils/pathGetter");
|
|
5
|
-
const ajv = new
|
|
5
|
+
const ajv = new ajv_1.default();
|
|
6
6
|
function validate(path, schema) {
|
|
7
7
|
const getFn = (0, pathGetter_1.default)(path);
|
|
8
8
|
const validate = ajv.compile(schema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/functions/validate.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/functions/validate.ts"],"names":[],"mappings":";;AAAA,6BAAqB;AAErB,oDAAwC;AAExC,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;AAErB,SAAwB,QAAQ,CAC9B,IAAU,EACV,MAAyC;IAEzC,MAAM,KAAK,GAAG,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAY,CAAA;AACnD,CAAC;AARD,2BAQC"}
|
package/dist/functions/value.js
CHANGED
|
@@ -9,12 +9,12 @@ const extractValue = (value) => {
|
|
|
9
9
|
exports.extractValue = extractValue;
|
|
10
10
|
function value(operands) {
|
|
11
11
|
const value = (0, exports.extractValue)(operands);
|
|
12
|
-
return (_data,
|
|
12
|
+
return (_data, state) => (state.onlyMapped ? undefined : value);
|
|
13
13
|
}
|
|
14
14
|
exports.value = value;
|
|
15
15
|
function fixed(operands) {
|
|
16
16
|
const value = (0, exports.extractValue)(operands);
|
|
17
|
-
return (_data,
|
|
17
|
+
return (_data, _state) => value;
|
|
18
18
|
}
|
|
19
19
|
exports.fixed = fixed;
|
|
20
20
|
//# sourceMappingURL=value.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/functions/value.ts"],"names":[],"mappings":";;;AAOA,MAAM,SAAS,GAAG,CAAC,KAAc,EAAoB,EAAE,CACrD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AAEtC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAO,EAAE;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAClD,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC,CAAA;AAHY,QAAA,YAAY,gBAGxB;AAED,SAAgB,KAAK,CAAC,QAAiB;IACrC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/functions/value.ts"],"names":[],"mappings":";;;AAOA,MAAM,SAAS,GAAG,CAAC,KAAc,EAAoB,EAAE,CACrD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AAEtC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAO,EAAE;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAClD,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC,CAAA;AAHY,QAAA,YAAY,gBAGxB;AAED,SAAgB,KAAK,CAAC,QAAiB;IACrC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAHD,sBAGC;AAED,SAAgB,KAAK,CAAC,QAAiB;IACrC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAA;AACjC,CAAC;AAHD,sBAGC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,5 +19,5 @@ export { fwd, rev, divide } from './operations/directionals';
|
|
|
19
19
|
export { default as merge } from './operations/merge';
|
|
20
20
|
export { default as modify } from './operations/modify';
|
|
21
21
|
export { iterate, functions };
|
|
22
|
-
export { CustomFunction, DataMapper, MapDefinition, MapObject, MapPipe, MapTransform, Dictionary, Dictionaries, } from './types';
|
|
22
|
+
export { CustomFunction, DataMapper, MapDefinition, MapObject, MapPipe, MapTransform, Dictionary, Dictionaries, OperationObject, TransformObject, FilterObject, ApplyObject, AltObject, } from './types';
|
|
23
23
|
export declare function mapTransform(def: MapDefinition, options?: Options): MapTransform;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,iEAA8D;AAC9D,uDAAmE;AACnE,2CAAmC;AAoBjB,oBApBX,mBAAS,CAoBW;AAnB3B,kDAA0C;AAmBjC,kBAnBF,iBAAO,CAmBE;AAjBhB,8CAA8C;AAArC,6FAAA,GAAG,OAAA;AAAE,6FAAA,GAAG,OAAA;AACjB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,wCAAiD;AAAxC,0FAAA,OAAO,OAAO;AACvB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,iDAA0D;AAAjD,oGAAA,OAAO,OAAY;AAC5B,uCAAgD;AAAvC,0FAAA,OAAO,OAAO;AACvB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,oDAA6D;AAApD,sGAAA,OAAO,OAAa;AAC7B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,0DAA4D;AAAnD,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,sGAAA,MAAM,OAAA;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,iEAA8D;AAC9D,uDAAmE;AACnE,2CAAmC;AAoBjB,oBApBX,mBAAS,CAoBW;AAnB3B,kDAA0C;AAmBjC,kBAnBF,iBAAO,CAmBE;AAjBhB,8CAA8C;AAArC,6FAAA,GAAG,OAAA;AAAE,6FAAA,GAAG,OAAA;AACjB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,wCAAiD;AAAxC,0FAAA,OAAO,OAAO;AACvB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,iDAA0D;AAAjD,oGAAA,OAAO,OAAY;AAC5B,uCAAgD;AAAvC,0FAAA,OAAO,OAAO;AACvB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,oDAA6D;AAApD,sGAAA,OAAO,OAAa;AAC7B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,0DAA4D;AAAnD,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,sGAAA,MAAM,OAAA;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAkB1B,MAAM,kBAAkB,GAAG,CACzB,KAAkB,EAClB,YAA4B,EAC5B,EAAE;IACF,MAAM,WAAW,GAAG,IAAA,4BAAa,EAAC,YAAY,CAAC,CAAA;IAE/C,OAAO,CAAC,IAAa,EAAE,EAAE,CACvB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC;IAC1C,GAAG,OAAO;IACV,SAAS,EAAE;QACT,GAAG,mBAAS;QACZ,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;KAC7B;CACF,CAAC,CAAA;AAEF,SAAgB,YAAY,CAC1B,GAAkB,EAClB,UAAmB,EAAE;IAErB,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAA;IAEtD,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;QAClD,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACjE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;YAC3D,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,EAAE;gBAC1C,GAAG,EAAE,IAAI;gBACT,UAAU,EAAE,IAAI;aACjB,CAAC;SACH,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;AAhBD,oCAgBC"}
|
|
@@ -13,7 +13,7 @@ function filter(fn) {
|
|
|
13
13
|
return functional_1.identity;
|
|
14
14
|
}
|
|
15
15
|
return (state) => {
|
|
16
|
-
const filterFn = (data) => !!fn(data,
|
|
16
|
+
const filterFn = (data) => !!fn(data, state);
|
|
17
17
|
const value = (0, stateHelpers_1.getStateValue)(state);
|
|
18
18
|
return (0, stateHelpers_1.setStateValue)(state, filterValue(value, filterFn));
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,oDAA8C;AAE9C,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,QAAoC,EAAE,EAAE,CAC3E,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;IACxB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAA;AAEf,SAAwB,MAAM,CAAC,EAAc;IAC3C,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO,qBAAQ,CAAA;SAChB;QAED,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACrD,MAAM,KAAK,GAAG,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAA;YAClC,OAAO,IAAA,4BAAa,EAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAZD,yBAYC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { Operation, Path } from '../types';
|
|
1
|
+
import { Operation, State, Path } from '../types';
|
|
2
|
+
export declare const getValueFromState: (path: Path) => (state: State) => unknown;
|
|
2
3
|
export declare const get: (path: Path) => Operation;
|
|
3
4
|
export declare const set: (path: Path) => Operation;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.set = exports.get = void 0;
|
|
3
|
+
exports.set = exports.get = exports.getValueFromState = void 0;
|
|
4
4
|
const pathGetter_1 = require("../utils/pathGetter");
|
|
5
5
|
const pathSetter_1 = require("../utils/pathSetter");
|
|
6
6
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
@@ -12,6 +12,7 @@ const setWithOnlyMapped = (state, setFn) => (value) => state.onlyMapped && value
|
|
|
12
12
|
? state.target
|
|
13
13
|
: setFn(value, state.target);
|
|
14
14
|
const getValueFromState = (path) => (state) => (0, pathGetter_1.default)(path)((0, stateHelpers_1.getStateValue)(state));
|
|
15
|
+
exports.getValueFromState = getValueFromState;
|
|
15
16
|
const setValueFromState = (path) => (state) => {
|
|
16
17
|
const setFn = setWithOnlyMapped(state, (0, pathSetter_1.default)(path));
|
|
17
18
|
return setFn((0, stateHelpers_1.getStateValue)(state), undefined);
|
|
@@ -23,7 +24,7 @@ const getOrSet = (isGetOperation) => (path) => {
|
|
|
23
24
|
? (0, directionals_1.divide)(rootGetSet, (0, plug_1.default)())
|
|
24
25
|
: (0, directionals_1.divide)((0, plug_1.default)(), rootGetSet);
|
|
25
26
|
}
|
|
26
|
-
const getFn = getValueFromState(path);
|
|
27
|
+
const getFn = (0, exports.getValueFromState)(path);
|
|
27
28
|
const setFn = setValueFromState(path);
|
|
28
29
|
return () => Object.assign((state) => (0, stateHelpers_1.setStateValue)(state, isGet(isGetOperation, state.rev) ? getFn(state) : setFn(state)), {
|
|
29
30
|
getTarget: (state) => !isGet(isGetOperation, state.rev)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":";;;AACA,oDAAwC;AACxC,oDAAoD;AACpD,wDAAoE;AACpE,iCAAyB;AACzB,iCAAyB;AACzB,iDAAuC;AAEvC,MAAM,KAAK,GAAG,CAAC,cAAuB,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,CACvD,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjC,MAAM,iBAAiB,GACrB,CAAC,KAAY,EAAE,KAAa,EAAU,EAAE,CACxC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,IAAI,KAAK,KAAK,SAAS;IACrC,CAAC,CAAC,KAAK,CAAC,MAAM;IACd,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":";;;AACA,oDAAwC;AACxC,oDAAoD;AACpD,wDAAoE;AACpE,iCAAyB;AACzB,iCAAyB;AACzB,iDAAuC;AAEvC,MAAM,KAAK,GAAG,CAAC,cAAuB,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,CACvD,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjC,MAAM,iBAAiB,GACrB,CAAC,KAAY,EAAE,KAAa,EAAU,EAAE,CACxC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,IAAI,KAAK,KAAK,SAAS;IACrC,CAAC,CAAC,KAAK,CAAC,MAAM;IACd,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AAE3B,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAChE,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC,CAAA;AADvB,QAAA,iBAAiB,qBACM;AAEpC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,CAAA;IACpD,OAAO,KAAK,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,QAAQ,GACZ,CAAC,cAAuB,EAAE,EAAE,CAC5B,CAAC,IAAU,EAAa,EAAE;IACxB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,cAAc;YACnB,CAAC,CAAC,IAAA,qBAAM,EAAC,UAAU,EAAE,IAAA,cAAI,GAAE,CAAC;YAC5B,CAAC,CAAC,IAAA,qBAAM,EAAC,IAAA,cAAI,GAAE,EAAE,UAAU,CAAC,CAAA;KAC/B;IAED,MAAM,KAAK,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,CAAC,KAAY,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/D,EACH;QACE,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE,CAC1B,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;KACnB,CACF,CAAA;AACL,CAAC,CAAA;AAGU,QAAA,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpB,QAAA,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA"}
|
|
@@ -11,9 +11,7 @@ function default_1(fn, trueDef, falseDef) {
|
|
|
11
11
|
return (options) => {
|
|
12
12
|
const runTrue = trueFn(options);
|
|
13
13
|
const runFalse = falseFn(options);
|
|
14
|
-
return (state) => fn((0, stateHelpers_1.getStateValue)(state), (
|
|
15
|
-
? runTrue(state)
|
|
16
|
-
: runFalse(state);
|
|
14
|
+
return (state) => fn((0, stateHelpers_1.getStateValue)(state), state) ? runTrue(state) : runFalse(state);
|
|
17
15
|
};
|
|
18
16
|
}
|
|
19
17
|
exports.default = default_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;AACA,wDAAqD;AACrD,kEAA+D;AAE/D,mBACE,EAAc,EACd,OAAuB,EACvB,QAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,sCAAkB,EAAC,QAAQ,CAAC,CAAA;IAC5C,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;QAC5B,OAAO,OAAO,CAAA;KACf;IACD,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IAE1C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjC,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC,CAAA;AACH,CAAC;AAlBD,4BAkBC"}
|
|
@@ -7,12 +7,19 @@ const iterate_1 = require("./iterate");
|
|
|
7
7
|
const plug_1 = require("./plug");
|
|
8
8
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
9
9
|
const array_1 = require("../utils/array");
|
|
10
|
+
const is_1 = require("../utils/is");
|
|
10
11
|
const setIfPath = (map) => (typeof map === 'string' ? (0, getSet_1.set)(map) : map);
|
|
11
|
-
const flipIfNeeded = (pipe,
|
|
12
|
-
const pipeline =
|
|
12
|
+
const flipIfNeeded = (pipe, shouldFlip) => {
|
|
13
|
+
const pipeline = shouldFlip ? pipe.slice().reverse().map(setIfPath) : pipe;
|
|
13
14
|
return pipeline;
|
|
14
15
|
};
|
|
15
|
-
const shouldIterate = (def, path) => ((0, definitionHelpers_1.isMapObject)(def) && def
|
|
16
|
+
const shouldIterate = (def, path) => ((0, definitionHelpers_1.isMapObject)(def) && def.$iterate === true) || (0, is_1.isArrayPath)(path);
|
|
17
|
+
const shouldModify = (def) => (0, definitionHelpers_1.isMapObject)(def) && !!def.$modify;
|
|
18
|
+
const extractModifyPath = (def) => shouldModify(def)
|
|
19
|
+
? def.$modify === true
|
|
20
|
+
? '.'
|
|
21
|
+
: def.$modify || undefined
|
|
22
|
+
: undefined;
|
|
16
23
|
const extractRealPath = (path) => {
|
|
17
24
|
const [realPath, index] = path.split('/');
|
|
18
25
|
return [realPath, index !== undefined];
|
|
@@ -23,46 +30,70 @@ const setTargetOnState = (state, target) => ({
|
|
|
23
30
|
});
|
|
24
31
|
const runWithTarget = (options, state) => (prevState, operation) => operation(options)(setTargetOnState(state, prevState?.value));
|
|
25
32
|
const revertTarget = ({ target, ...state }, originalState) => originalState.target ? setTargetOnState(state, originalState.target) : state;
|
|
26
|
-
|
|
33
|
+
function modifyStateValue(prevStateValue, nextState) {
|
|
34
|
+
const nextStateValue = (0, stateHelpers_1.getStateValue)(nextState);
|
|
35
|
+
if ((0, is_1.isObject)(prevStateValue) && (0, is_1.isObject)(nextStateValue)) {
|
|
36
|
+
return (0, stateHelpers_1.setStateValue)(nextState, {
|
|
37
|
+
...prevStateValue,
|
|
38
|
+
...nextStateValue,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return nextState;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const run = (operations, modifySourcePath) => function (options) {
|
|
27
46
|
const shouldSkip = (0, stateHelpers_1.shouldSkipMutation)(options);
|
|
28
|
-
return (state)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
return function runMutation(state) {
|
|
48
|
+
if (shouldSkip(state)) {
|
|
49
|
+
return (0, stateHelpers_1.setStateValue)(state, undefined);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const nextState = revertTarget(operations.reduce(runWithTarget(options, state), undefined) || state, state);
|
|
53
|
+
return modifySourcePath
|
|
54
|
+
? modifyStateValue((0, getSet_1.getValueFromState)(modifySourcePath)(state), nextState)
|
|
55
|
+
: nextState;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
32
58
|
};
|
|
33
|
-
const objectToMapFunction = (objectDef,
|
|
59
|
+
const objectToMapFunction = (objectDef, shouldFlip, parentPath = '') => Object.entries(objectDef)
|
|
34
60
|
.flatMap(([path, def]) => {
|
|
35
61
|
if (!def || path.startsWith('$')) {
|
|
36
62
|
return null;
|
|
37
63
|
}
|
|
38
64
|
const [realPath, revOnly] = extractRealPath(path);
|
|
39
65
|
const nextPath = [parentPath, realPath].filter(Boolean).join('.');
|
|
40
|
-
if ((0, definitionHelpers_1.isMapObject)(def) &&
|
|
41
|
-
|
|
66
|
+
if ((0, definitionHelpers_1.isMapObject)(def) &&
|
|
67
|
+
!shouldIterate(def, nextPath) &&
|
|
68
|
+
!shouldModify(def)) {
|
|
69
|
+
return objectToMapFunction(def, shouldFlip, nextPath);
|
|
42
70
|
}
|
|
43
71
|
else {
|
|
44
72
|
const subPipeline = (0, definitionHelpers_1.isMapObject)(def)
|
|
45
|
-
? [runAndIterate(def,
|
|
46
|
-
: flipIfNeeded((0, array_1.ensureArray)(def),
|
|
73
|
+
? [runAndIterate(def, shouldFlip, nextPath)]
|
|
74
|
+
: flipIfNeeded((0, array_1.ensureArray)(def), shouldFlip);
|
|
47
75
|
const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)([
|
|
48
|
-
|
|
76
|
+
shouldFlip ? nextPath : null,
|
|
49
77
|
...subPipeline,
|
|
50
|
-
|
|
78
|
+
shouldFlip ? null : (0, getSet_1.set)(nextPath),
|
|
51
79
|
]);
|
|
52
80
|
return revOnly ? (0, directionals_1.divide)((0, plug_1.default)(), pipeline) : pipeline;
|
|
53
81
|
}
|
|
54
82
|
})
|
|
55
83
|
.filter((pipeline) => !!pipeline);
|
|
56
|
-
function runAndIterate(def,
|
|
57
|
-
const operations = objectToMapFunction(def,
|
|
58
|
-
|
|
84
|
+
function runAndIterate(def, shouldFlip, nextPath = '') {
|
|
85
|
+
const operations = objectToMapFunction(def, shouldFlip);
|
|
86
|
+
const modifySourcePath = extractModifyPath(def);
|
|
87
|
+
return shouldIterate(def, nextPath)
|
|
88
|
+
? (0, iterate_1.default)(run(operations, modifySourcePath))
|
|
89
|
+
: run(operations, modifySourcePath);
|
|
59
90
|
}
|
|
60
91
|
function mutate(def) {
|
|
61
92
|
if (Object.keys(def).length === 0) {
|
|
62
93
|
return (_options) => (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
|
|
63
94
|
}
|
|
64
|
-
const
|
|
65
|
-
const runMutation = runAndIterate(def,
|
|
95
|
+
const shouldFlip = def.$flip === true;
|
|
96
|
+
const runMutation = runAndIterate(def, shouldFlip);
|
|
66
97
|
return function mutateFn(options) {
|
|
67
98
|
const dir = def.$direction;
|
|
68
99
|
if (typeof dir === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/operations/mutate.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/operations/mutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
4
|
const functional_1 = require("../utils/functional");
|
|
5
|
-
const callTransformFn = (fn) => (state) => (0, stateHelpers_1.setStateValue)(state, fn((0, stateHelpers_1.getStateValue)(state),
|
|
5
|
+
const callTransformFn = (fn) => (state) => (0, stateHelpers_1.setStateValue)(state, fn((0, stateHelpers_1.getStateValue)(state), state));
|
|
6
6
|
function transform(fn, revFn) {
|
|
7
7
|
const fwdTransform = typeof fn === 'function' ? callTransformFn(fn) : functional_1.identity;
|
|
8
8
|
const revTransform = typeof revFn === 'function' ? callTransformFn(revFn) : fwdTransform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,oDAA8C;AAE9C,MAAM,eAAe,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAC3D,IAAA,4BAAa,EAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAEvD,SAAwB,SAAS,CAC/B,EAAc,EACd,KAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAA;IAC9E,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAErE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AACzD,CAAC;AAVD,4BAUC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -11,12 +11,8 @@ export interface ValueFunction {
|
|
|
11
11
|
export interface Operands {
|
|
12
12
|
[key: string]: any | ValueFunction;
|
|
13
13
|
}
|
|
14
|
-
export interface Context {
|
|
15
|
-
rev: boolean;
|
|
16
|
-
onlyMappedValues: boolean;
|
|
17
|
-
}
|
|
18
14
|
export interface DataMapper {
|
|
19
|
-
(data: unknown,
|
|
15
|
+
(data: unknown, state: State): any;
|
|
20
16
|
}
|
|
21
17
|
export interface CustomFunction<T = Operands> {
|
|
22
18
|
(operands: T, options: Options): DataMapper;
|
|
@@ -77,6 +73,7 @@ export declare type MapPipe = (MapObject | Operation | OperationObject | Path |
|
|
|
77
73
|
export interface MapObject {
|
|
78
74
|
[key: string]: MapDefinition | undefined | boolean;
|
|
79
75
|
$iterate?: boolean;
|
|
76
|
+
$modify?: boolean | Path;
|
|
80
77
|
$flip?: boolean;
|
|
81
78
|
$transform?: undefined;
|
|
82
79
|
$filter?: undefined;
|
package/dist/utils/is.d.ts
CHANGED
package/dist/utils/is.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isObject = void 0;
|
|
3
|
+
exports.isArrayPath = exports.isPath = exports.isObject = void 0;
|
|
4
4
|
const isObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
|
|
5
5
|
exports.isObject = isObject;
|
|
6
|
+
const isPath = (value) => typeof value === 'string';
|
|
7
|
+
exports.isPath = isPath;
|
|
8
|
+
const isArrayPath = (value) => (0, exports.isPath)(value) && value.endsWith('[]');
|
|
9
|
+
exports.isArrayPath = isArrayPath;
|
|
6
10
|
//# sourceMappingURL=is.js.map
|
package/dist/utils/is.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":";;;AAEO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AADhD,QAAA,QAAQ,YACwC;AAEtD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,CAAA;AADd,QAAA,MAAM,UACQ;AAEpB,MAAM,WAAW,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC3D,IAAA,cAAM,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAD1B,QAAA,WAAW,eACe"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { State, Options
|
|
1
|
+
import { State, Options } from '../types';
|
|
2
2
|
export declare const setStateValue: (state: State, value: unknown) => State;
|
|
3
3
|
export declare const getStateValue: (state: State) => any;
|
|
4
4
|
export declare const setValueFromState: (state: State, { value }: State) => State;
|
|
5
5
|
export declare const setTargetOnState: (state: State, target?: unknown) => State;
|
|
6
|
-
export declare const contextFromState: ({ rev, onlyMapped, }: State) => Context;
|
|
7
6
|
export declare const populateState: ({ rev, onlyMapped }: Partial<State>) => (data: unknown) => State;
|
|
8
7
|
export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.shouldSkipMutation = exports.populateState = exports.
|
|
3
|
+
exports.shouldSkipMutation = exports.populateState = exports.setTargetOnState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
|
|
4
4
|
const setStateValue = (state, value) => ({
|
|
5
5
|
...state,
|
|
6
6
|
value,
|
|
@@ -18,11 +18,6 @@ const setTargetOnState = (state, target) => ({
|
|
|
18
18
|
target,
|
|
19
19
|
});
|
|
20
20
|
exports.setTargetOnState = setTargetOnState;
|
|
21
|
-
const contextFromState = ({ rev = false, onlyMapped = false, }) => ({
|
|
22
|
-
rev,
|
|
23
|
-
onlyMappedValues: onlyMapped,
|
|
24
|
-
});
|
|
25
|
-
exports.contextFromState = contextFromState;
|
|
26
21
|
const populateState = ({ rev = false, onlyMapped = false }) => (data) => ({
|
|
27
22
|
root: data,
|
|
28
23
|
context: data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,
|
|
1
|
+
{"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AARS,QAAA,aAAa,iBAQtB;AAEG,MAAM,kBAAkB,GAC7B,CAAC,EAAE,UAAU,GAAG,IAAI,EAAW,EAAE,EAAE,CACnC,CAAC,KAAY,EAAW,EAAE,CACxB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAHzD,QAAA,kBAAkB,sBAGuC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "map-transform",
|
|
3
|
-
"version": "0.4.0-alpha.
|
|
3
|
+
"version": "0.4.0-alpha.13",
|
|
4
4
|
"description": "Map and transform objects with mapping definitions",
|
|
5
5
|
"author": "Kjell-Morten Bratsberg Thorsen <post@kjellmorten.no>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://github.com/integreat-io/map-transform#readme",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@types/mustache": "^4.1.
|
|
40
|
-
"ajv": "^
|
|
39
|
+
"@types/mustache": "^4.1.3",
|
|
40
|
+
"ajv": "^8.11.0",
|
|
41
41
|
"deepmerge": "^4.2.2",
|
|
42
42
|
"map-any": "^0.2.1",
|
|
43
43
|
"mustache": "^4.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@integreat/ts-dev-setup": "^2.
|
|
46
|
+
"@integreat/ts-dev-setup": "^2.3.0",
|
|
47
47
|
"@types/deep-freeze": "^0.1.2",
|
|
48
48
|
"@types/sinon": "^10.0.11",
|
|
49
49
|
"deep-freeze": "0.0.1",
|
|
50
|
-
"sinon": "^
|
|
50
|
+
"sinon": "^14.0.0"
|
|
51
51
|
}
|
|
52
52
|
}
|
package/ava-dist.config.cjs
DELETED