map-transform 0.4.0-alpha.4 → 0.4.0-alpha.7
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 +27 -8
- package/ava-dist.config.cjs +3 -0
- package/ava.config.cjs +5 -0
- package/dist/functions/explode.d.ts +2 -1
- package/dist/functions/explode.js +9 -2
- package/dist/functions/explode.js.map +1 -1
- package/dist/functions/index.d.ts +2 -1
- package/dist/functions/index.js +2 -1
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/joinSplit.js +4 -5
- package/dist/functions/joinSplit.js.map +1 -1
- package/dist/functions/logical.js +1 -5
- package/dist/functions/logical.js.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/operations/alt.js +1 -1
- package/dist/operations/alt.js.map +1 -1
- package/dist/operations/concat.js +1 -1
- package/dist/operations/concat.js.map +1 -1
- package/dist/operations/filter.js +10 -8
- package/dist/operations/filter.js.map +1 -1
- package/dist/operations/getSet.js +6 -5
- package/dist/operations/getSet.js.map +1 -1
- package/dist/operations/ifelse.js +5 -3
- package/dist/operations/ifelse.js.map +1 -1
- package/dist/operations/iterate.js +6 -8
- package/dist/operations/iterate.js.map +1 -1
- package/dist/operations/lookup.js.map +1 -1
- package/dist/operations/merge.d.ts +1 -0
- package/dist/operations/merge.js +25 -2
- package/dist/operations/merge.js.map +1 -1
- package/dist/operations/modify.d.ts +1 -1
- package/dist/operations/modify.js +2 -2
- package/dist/operations/modify.js.map +1 -1
- package/dist/operations/mutate.js +50 -25
- package/dist/operations/mutate.js.map +1 -1
- package/dist/operations/plug.js +1 -1
- package/dist/operations/plug.js.map +1 -1
- package/dist/operations/root.js +2 -1
- package/dist/operations/root.js.map +1 -1
- package/dist/operations/transform.js +2 -2
- package/dist/operations/transform.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/utils/array.d.ts +2 -0
- package/dist/utils/array.js +12 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/definitionHelpers.js +29 -13
- package/dist/utils/definitionHelpers.js.map +1 -1
- package/dist/utils/functional.d.ts +1 -0
- package/dist/utils/functional.js +3 -1
- package/dist/utils/functional.js.map +1 -1
- package/dist/utils/pathGetter.d.ts +4 -2
- package/dist/utils/pathGetter.js +15 -19
- package/dist/utils/pathGetter.js.map +1 -1
- package/dist/utils/pathSetter.d.ts +4 -3
- package/dist/utils/pathSetter.js +34 -39
- package/dist/utils/pathSetter.js.map +1 -1
- package/dist/utils/stateHelpers.d.ts +1 -1
- package/dist/utils/stateHelpers.js +1 -1
- package/dist/utils/stateHelpers.js.map +1 -1
- package/package.json +6 -9
package/README.md
CHANGED
|
@@ -188,11 +188,14 @@ const def2 = {
|
|
|
188
188
|
// }
|
|
189
189
|
```
|
|
190
190
|
|
|
191
|
-
When you transform an array of data with a mapping object,
|
|
192
|
-
data array
|
|
191
|
+
When you transform an array of data with a mapping object, you'll have to set
|
|
192
|
+
`$iterate: true` to have each item in the data array be transformed with the
|
|
193
|
+
mapping object. If you don't the entire array will be passed to the mapping
|
|
194
|
+
object.
|
|
193
195
|
|
|
194
196
|
```javascript
|
|
195
197
|
const def3 = {
|
|
198
|
+
$iterate: true,
|
|
196
199
|
title: 'heading',
|
|
197
200
|
}
|
|
198
201
|
|
|
@@ -203,12 +206,8 @@ const def3 = {
|
|
|
203
206
|
// ]
|
|
204
207
|
```
|
|
205
208
|
|
|
206
|
-
|
|
207
|
-
the
|
|
208
|
-
transform pipeline.
|
|
209
|
-
|
|
210
|
-
**Note:** When a mapping object is part of a transform pipeline, the default is
|
|
211
|
-
to not iterate. See [**transform pipeline**](#transform-pipeline) for more.
|
|
209
|
+
**Note:** Iterating used to be the default behavior, but it has been changed due
|
|
210
|
+
to the contradiction with how the mapping object behaves everywhere else.
|
|
212
211
|
|
|
213
212
|
A key will set whatever is returned by the pipeline (see
|
|
214
213
|
[next section](#values-on-the-transform-object)), whether it is a string, a
|
|
@@ -326,6 +325,17 @@ When running a forward transformation, transform objects marked with
|
|
|
326
325
|
`$direction: 'rev'` will be skipped. The same goes for `$direction: 'fwd'` in
|
|
327
326
|
reverse.
|
|
328
327
|
|
|
328
|
+
You may specify aliases for `fwd` and `rev` in the `mapTransform` options:
|
|
329
|
+
|
|
330
|
+
```javascript
|
|
331
|
+
const options = { fwdAlias: 'from', revAlias: 'to' }
|
|
332
|
+
const mapper = mapTransform(def, options)
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
In this case, `from` and `to` may be used to specify forward and reverse
|
|
336
|
+
direction respectively. `fwd` and `rev` will still work in addition to the
|
|
337
|
+
aliases.
|
|
338
|
+
|
|
329
339
|
### Transform pipeline
|
|
330
340
|
|
|
331
341
|
The idea of the transform pipeline, is that you describe a set of
|
|
@@ -697,6 +707,8 @@ const def10asObject = {
|
|
|
697
707
|
}
|
|
698
708
|
```
|
|
699
709
|
|
|
710
|
+
There is also a shortcut for `{ $transform: 'value', value: 'customer' }`: `{ $value: 'customer' }`, which might be useful when typing definitions by hand.
|
|
711
|
+
|
|
700
712
|
#### `fixed(data)` operation
|
|
701
713
|
|
|
702
714
|
The data given to the fixed operation, will be inserted in the pipeline in place
|
|
@@ -1081,6 +1093,13 @@ Or as a transform object:
|
|
|
1081
1093
|
const def32o = ['currencies', { $transform: 'explode' }]
|
|
1082
1094
|
```
|
|
1083
1095
|
|
|
1096
|
+
#### `implode()` function
|
|
1097
|
+
|
|
1098
|
+
This is the exact opposite of the `explode` helper, imploding from a service and
|
|
1099
|
+
explode in reverse (to a service). See
|
|
1100
|
+
[the documentation for `explode()`](#explode-function), but remember that the
|
|
1101
|
+
directions will be reversed for `implode()`.
|
|
1102
|
+
|
|
1084
1103
|
#### `map(dictionary)` function
|
|
1085
1104
|
|
|
1086
1105
|
This helper function accepts a dictionary described as an array of tuples, where
|
package/ava.config.cjs
ADDED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.implode = exports.explode = void 0;
|
|
3
4
|
const is_1 = require("../utils/is");
|
|
4
5
|
const isExplodedArray = (data) => data.every((item) => (0, is_1.isObject)(item) && typeof item.key === 'number');
|
|
5
6
|
const setValueOnKey = (target, keyValue) => {
|
|
@@ -26,7 +27,9 @@ function doImplode(data) {
|
|
|
26
27
|
}
|
|
27
28
|
function doExplode(data) {
|
|
28
29
|
if ((0, is_1.isObject)(data)) {
|
|
29
|
-
return Object.entries(data)
|
|
30
|
+
return Object.entries(data)
|
|
31
|
+
.filter(([, value]) => value !== undefined)
|
|
32
|
+
.map(([key, value]) => ({
|
|
30
33
|
key,
|
|
31
34
|
value,
|
|
32
35
|
}));
|
|
@@ -41,5 +44,9 @@ function doExplode(data) {
|
|
|
41
44
|
function explode() {
|
|
42
45
|
return (data, context) => (context.rev ? doImplode(data) : doExplode(data));
|
|
43
46
|
}
|
|
44
|
-
exports.
|
|
47
|
+
exports.explode = explode;
|
|
48
|
+
function implode() {
|
|
49
|
+
return (data, context) => (context.rev ? doExplode(data) : doImplode(data));
|
|
50
|
+
}
|
|
51
|
+
exports.implode = implode;
|
|
45
52
|
//# sourceMappingURL=explode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/functions/explode.ts"],"names":[],"mappings":"
|
|
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,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,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7E,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7E,CAAC;AAFD,0BAEC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { value, fixed } from './value';
|
|
2
2
|
import compare from './compare';
|
|
3
|
-
import explode from './explode';
|
|
3
|
+
import { explode, implode } from './explode';
|
|
4
4
|
import get from './get';
|
|
5
5
|
import { join, split } from './joinSplit';
|
|
6
6
|
import logical from './logical';
|
|
@@ -11,6 +11,7 @@ declare const _default: {
|
|
|
11
11
|
explode: typeof explode;
|
|
12
12
|
fixed: typeof fixed;
|
|
13
13
|
get: typeof get;
|
|
14
|
+
implode: typeof implode;
|
|
14
15
|
join: typeof join;
|
|
15
16
|
logical: typeof logical;
|
|
16
17
|
map: typeof map;
|
package/dist/functions/index.js
CHANGED
|
@@ -10,9 +10,10 @@ const map_1 = require("./map");
|
|
|
10
10
|
const template_1 = require("./template");
|
|
11
11
|
exports.default = {
|
|
12
12
|
compare: compare_1.default,
|
|
13
|
-
explode: explode_1.
|
|
13
|
+
explode: explode_1.explode,
|
|
14
14
|
fixed: value_1.fixed,
|
|
15
15
|
get: get_1.default,
|
|
16
|
+
implode: explode_1.implode,
|
|
16
17
|
join: joinSplit_1.join,
|
|
17
18
|
logical: logical_1.default,
|
|
18
19
|
map: map_1.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AACtC,uCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AACtC,uCAA+B;AAC/B,uCAA4C;AAC5C,+BAAuB;AACvB,2CAAyC;AACzC,uCAA+B;AAC/B,+BAAuB;AACvB,yCAAiC;AAEjC,kBAAe;IACb,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,KAAK,EAAL,aAAK;IACL,GAAG,EAAH,aAAG;IACH,OAAO,EAAP,iBAAO;IACP,IAAI,EAAJ,gBAAI;IACJ,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,aAAG;IACH,KAAK,EAAL,iBAAK;IACL,QAAQ,EAAR,kBAAQ;IACR,KAAK,EAAL,aAAK;CACN,CAAA"}
|
|
@@ -5,16 +5,15 @@ const pathGetter_1 = require("../utils/pathGetter");
|
|
|
5
5
|
const pathSetter_1 = require("../utils/pathSetter");
|
|
6
6
|
function joinSplit({ path = [], sep = ' ' }, split) {
|
|
7
7
|
const pathArr = [].concat(path);
|
|
8
|
+
if (pathArr.length === 0) {
|
|
9
|
+
return (_data, _context) => undefined;
|
|
10
|
+
}
|
|
8
11
|
const getFns = pathArr.map(pathGetter_1.default);
|
|
9
12
|
const setFns = pathArr.map(pathSetter_1.default);
|
|
10
13
|
return (data, { rev }) => {
|
|
11
14
|
if (split ? !rev : rev) {
|
|
12
15
|
const values = typeof data === 'string' ? data.split(sep) : [];
|
|
13
|
-
|
|
14
|
-
setFns.forEach((setFn, index) => {
|
|
15
|
-
ret = setFn(values[index], ret);
|
|
16
|
-
});
|
|
17
|
-
return ret;
|
|
16
|
+
return setFns.reduce((obj, setFn, index) => setFn(values[index], obj), undefined);
|
|
18
17
|
}
|
|
19
18
|
else {
|
|
20
19
|
const values = getFns.map((fn) => fn(data));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinSplit.js","sourceRoot":"","sources":["../../src/functions/joinSplit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"joinSplit.js","sourceRoot":"","sources":["../../src/functions/joinSplit.ts"],"names":[],"mappings":";;;AAEA,oDAAwC;AACxC,oDAAwC;AAOxC,SAAS,SAAS,CAChB,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAW,EACjC,KAAc;IAEd,MAAM,OAAO,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAA;KACtC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAElC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9D,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EACzD,SAAS,CACV,CAAA;SACF;aAAM;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC/D;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,IAAI,CAAC,OAAgB;IACnC,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,KAAK,CAAC,OAAgB;IACpC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC"}
|
|
@@ -11,12 +11,8 @@ function compare({ path = '.', operator = 'AND', }) {
|
|
|
11
11
|
: (a, b) => Boolean(a) && Boolean(b);
|
|
12
12
|
return (data, { rev }) => {
|
|
13
13
|
if (rev) {
|
|
14
|
-
let ret = {};
|
|
15
14
|
const value = Boolean(data);
|
|
16
|
-
setFns.
|
|
17
|
-
ret = setFn(value, ret);
|
|
18
|
-
});
|
|
19
|
-
return ret;
|
|
15
|
+
return setFns.reduce((obj, setFn) => setFn(value, obj), undefined);
|
|
20
16
|
}
|
|
21
17
|
else {
|
|
22
18
|
const values = getFns.map((fn) => fn(data));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logical.js","sourceRoot":"","sources":["../../src/functions/logical.ts"],"names":[],"mappings":";;AACA,oDAAwC;AACxC,oDAAwC;AAOxC,SAAwB,OAAO,CAAC,EAC9B,IAAI,GAAG,GAAG,EACV,QAAQ,GAAG,KAAK,GACA;IAChB,MAAM,OAAO,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,SAAS,GACb,QAAQ,KAAK,IAAI;QACf,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,IAAI,GAAG,EAAE;YACP,
|
|
1
|
+
{"version":3,"file":"logical.js","sourceRoot":"","sources":["../../src/functions/logical.ts"],"names":[],"mappings":";;AACA,oDAAwC;AACxC,oDAAwC;AAOxC,SAAwB,OAAO,CAAC,EAC9B,IAAI,GAAG,GAAG,EACV,QAAQ,GAAG,KAAK,GACA;IAChB,MAAM,OAAO,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,SAAS,GACb,QAAQ,KAAK,IAAI;QACf,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,IAAI,GAAG,EAAE;YACP,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAY,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAC1C,SAAS,CACV,CAAA;SACF;aAAM;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;SAChC;IACH,CAAC,CAAA;AACH,CAAC;AAxBD,0BAwBC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mapTransform = exports.functions = exports.iterate = exports.modify = exports.merge = exports.divide = exports.rev = exports.fwd = exports.ifelse = exports.filter = exports.transform = exports.lookup = exports.plug = exports.not = exports.validate = exports.concat = exports.fixed = exports.value = exports.apply = exports.alt = exports.root = exports.set = exports.get = void 0;
|
|
4
|
-
const ramda_1 = require("ramda");
|
|
5
4
|
const definitionHelpers_1 = require("./utils/definitionHelpers");
|
|
6
5
|
const stateHelpers_1 = require("./utils/stateHelpers");
|
|
7
6
|
const functions_1 = require("./functions");
|
|
@@ -46,8 +45,8 @@ Object.defineProperty(exports, "merge", { enumerable: true, get: function () { r
|
|
|
46
45
|
var modify_1 = require("./operations/modify");
|
|
47
46
|
Object.defineProperty(exports, "modify", { enumerable: true, get: function () { return modify_1.default; } });
|
|
48
47
|
const composeMapFunction = (mapFn, initialState) => {
|
|
49
|
-
const
|
|
50
|
-
return (data) =>
|
|
48
|
+
const createState = (0, stateHelpers_1.populateState)(initialState);
|
|
49
|
+
return (data) => data === undefined ? undefined : (0, stateHelpers_1.getStateValue)(mapFn(createState(data)));
|
|
51
50
|
};
|
|
52
51
|
const mergeOptions = (options) => ({
|
|
53
52
|
...options,
|
|
@@ -56,10 +55,9 @@ const mergeOptions = (options) => ({
|
|
|
56
55
|
...(options.functions || {}),
|
|
57
56
|
},
|
|
58
57
|
});
|
|
59
|
-
const createRootMapper = (def) => (0, definitionHelpers_1.isMapObject)(def) ? (0, iterate_1.default)(def) : (0, definitionHelpers_1.mapFunctionFromDef)(def);
|
|
60
58
|
function mapTransform(def, options = {}) {
|
|
61
59
|
const completeOptions = mergeOptions(options);
|
|
62
|
-
const mapFn =
|
|
60
|
+
const mapFn = (0, definitionHelpers_1.mapFunctionFromDef)(def)(completeOptions);
|
|
63
61
|
return Object.assign(composeMapFunction(mapFn, {}), {
|
|
64
62
|
onlyMappedValues: composeMapFunction(mapFn, { onlyMapped: true }),
|
|
65
63
|
rev: Object.assign(composeMapFunction(mapFn, { rev: true }), {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
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;AAa1B,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"}
|
package/dist/operations/alt.js
CHANGED
|
@@ -5,7 +5,7 @@ const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
|
5
5
|
function alt(fn) {
|
|
6
6
|
return (options) => {
|
|
7
7
|
const runAlt = (0, definitionHelpers_1.mapFunctionFromDef)(fn)(options);
|
|
8
|
-
return (state) =>
|
|
8
|
+
return (state) => (0, stateHelpers_1.getStateValue)(state) === undefined
|
|
9
9
|
? runAlt((0, stateHelpers_1.setStateValue)(state, state.context))
|
|
10
10
|
: state;
|
|
11
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,SAAwB,GAAG,CAAC,EAAiB;IAC3C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAE9C,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,
|
|
1
|
+
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,SAAwB,GAAG,CAAC,EAAiB;IAC3C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAE9C,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EAAC,KAAK,CAAC,KAAK,SAAS;YAChC,CAAC,CAAC,MAAM,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AATD,sBASC"}
|
|
@@ -8,7 +8,7 @@ function concat(...defs) {
|
|
|
8
8
|
const fns = defs.map((def) => (0, definitionHelpers_1.mapFunctionFromDef)(def)(options));
|
|
9
9
|
return (state) => (0, stateHelpers_1.setStateValue)(state, fns
|
|
10
10
|
.reduce((value, fn) => merge(value, (0, stateHelpers_1.getStateValue)(fn(state))), [])
|
|
11
|
-
.filter((val) =>
|
|
11
|
+
.filter((val) => val !== undefined));
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
exports.default = concat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operations/concat.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,MAAM,KAAK,GAAG,CAAO,IAAS,EAAE,KAAc,EAAE,EAAE,CAChD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;AAE/D,SAAwB,MAAM,CAAC,GAAG,IAAqB;IACrD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAE/D,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,GAAG;aACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,4BAAa,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EACrD,EAAe,CAChB;aACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operations/concat.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,MAAM,KAAK,GAAG,CAAO,IAAS,EAAE,KAAc,EAAE,EAAE,CAChD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;AAE/D,SAAwB,MAAM,CAAC,GAAG,IAAqB;IACrD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAE/D,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,GAAG;aACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,4BAAa,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EACrD,EAAe,CAChB;aACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACtC,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAfD,yBAeC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const ramda_1 = require("ramda");
|
|
4
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
|
+
const functional_1 = require("../utils/functional");
|
|
5
|
+
const filterValue = (value, filterFn) => Array.isArray(value)
|
|
6
|
+
? value.filter(filterFn)
|
|
7
|
+
: filterFn(value)
|
|
8
|
+
? value
|
|
9
|
+
: undefined;
|
|
5
10
|
function filter(fn) {
|
|
6
11
|
return (_options) => {
|
|
7
12
|
if (typeof fn !== 'function') {
|
|
8
|
-
return
|
|
13
|
+
return functional_1.identity;
|
|
9
14
|
}
|
|
10
15
|
return (state) => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
return
|
|
14
|
-
...state,
|
|
15
|
-
value: runFilter(state),
|
|
16
|
-
};
|
|
16
|
+
const filterFn = (data) => !!fn(data, (0, stateHelpers_1.contextFromState)(state));
|
|
17
|
+
const value = (0, stateHelpers_1.getStateValue)(state);
|
|
18
|
+
return (0, stateHelpers_1.setStateValue)(state, filterValue(value, filterFn));
|
|
17
19
|
};
|
|
18
20
|
};
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":";;AACA,wDAI8B;AAC9B,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,IAAA,+BAAgB,EAAC,KAAK,CAAC,CAAC,CAAA;YACvE,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,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.set = exports.get = void 0;
|
|
4
|
-
const ramda_1 = require("ramda");
|
|
5
4
|
const pathGetter_1 = require("../utils/pathGetter");
|
|
6
5
|
const pathSetter_1 = require("../utils/pathSetter");
|
|
7
6
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
@@ -9,15 +8,17 @@ const root_1 = require("./root");
|
|
|
9
8
|
const plug_1 = require("./plug");
|
|
10
9
|
const directionals_1 = require("./directionals");
|
|
11
10
|
const isGet = (isGetOperation, isRev = false) => isGetOperation ? !isRev : isRev;
|
|
12
|
-
const setWithOnlyMapped = (state, setFn) => (value) =>
|
|
13
|
-
|
|
11
|
+
const setWithOnlyMapped = (state, setFn) => (value) => state.onlyMapped && value === undefined
|
|
12
|
+
? state.target
|
|
13
|
+
: setFn(value, state.target);
|
|
14
|
+
const getValueFromState = (path) => (state) => (0, pathGetter_1.default)(path)((0, stateHelpers_1.getStateValue)(state));
|
|
14
15
|
const setValueFromState = (path) => (state) => {
|
|
15
16
|
const setFn = setWithOnlyMapped(state, (0, pathSetter_1.default)(path));
|
|
16
|
-
return setFn((0, stateHelpers_1.getStateValue)(state));
|
|
17
|
+
return setFn((0, stateHelpers_1.getStateValue)(state), undefined);
|
|
17
18
|
};
|
|
18
19
|
const getOrSet = (isGetOperation) => (path) => {
|
|
19
20
|
if (path && path.startsWith('^')) {
|
|
20
|
-
const rootGetSet = (0, root_1.default)(getOrSet(isGetOperation)(path.
|
|
21
|
+
const rootGetSet = (0, root_1.default)(getOrSet(isGetOperation)(path.slice(1)));
|
|
21
22
|
return isGetOperation
|
|
22
23
|
? (0, directionals_1.divide)(rootGetSet, (0, plug_1.default)())
|
|
23
24
|
: (0, directionals_1.divide)((0, plug_1.default)(), rootGetSet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":";;;
|
|
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;AAElC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CACzD,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC,CAAA;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,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,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,CAAA;AACL,CAAC,CAAA;AAEU,QAAA,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpB,QAAA,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const ramda_1 = require("ramda");
|
|
4
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
5
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
6
5
|
function default_1(fn, trueDef, falseDef) {
|
|
@@ -10,8 +9,11 @@ function default_1(fn, trueDef, falseDef) {
|
|
|
10
9
|
}
|
|
11
10
|
const trueFn = (0, definitionHelpers_1.mapFunctionFromDef)(trueDef);
|
|
12
11
|
return (options) => {
|
|
13
|
-
const
|
|
14
|
-
|
|
12
|
+
const runTrue = trueFn(options);
|
|
13
|
+
const runFalse = falseFn(options);
|
|
14
|
+
return (state) => fn((0, stateHelpers_1.getStateValue)(state), (0, stateHelpers_1.contextFromState)(state))
|
|
15
|
+
? runTrue(state)
|
|
16
|
+
: runFalse(state);
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
exports.default = default_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;AACA,wDAAuE;AACvE,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,IAAA,+BAAgB,EAAC,KAAK,CAAC,CAAC;YAC/C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAChB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC,CAAA;AACH,CAAC;AApBD,4BAoBC"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const ramda_1 = require("ramda");
|
|
4
3
|
const mapAny = require("map-any");
|
|
5
4
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
6
5
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
7
6
|
const indexOfIfArray = (arr, index) => Array.isArray(arr) && typeof index === 'number' ? arr[index] : arr;
|
|
8
|
-
const iterateWithContext = (state, value, index) => ({
|
|
9
|
-
...state,
|
|
10
|
-
context: indexOfIfArray(state.context, index),
|
|
11
|
-
value,
|
|
12
|
-
});
|
|
13
7
|
function iterate(def) {
|
|
14
8
|
return (options) => {
|
|
15
9
|
if (!def || (typeof def === 'object' && Object.keys(def).length === 0)) {
|
|
16
10
|
return (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
|
|
17
11
|
}
|
|
18
|
-
const fn = (0,
|
|
19
|
-
return (state) => (0, stateHelpers_1.setStateValue)(state, mapAny((value, index) =>
|
|
12
|
+
const fn = (0, definitionHelpers_1.mapFunctionFromDef)(def)(options);
|
|
13
|
+
return (state) => (0, stateHelpers_1.setStateValue)(state, mapAny((value, index) => (0, stateHelpers_1.getStateValue)(fn({
|
|
14
|
+
...state,
|
|
15
|
+
context: indexOfIfArray(state.context, index),
|
|
16
|
+
value,
|
|
17
|
+
})), (0, stateHelpers_1.getStateValue)(state)));
|
|
20
18
|
};
|
|
21
19
|
}
|
|
22
20
|
exports.default = iterate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate.js","sourceRoot":"","sources":["../../src/operations/iterate.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"iterate.js","sourceRoot":"","sources":["../../src/operations/iterate.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAElC,wDAAoE;AACpE,kEAA+D;AAE/D,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAc,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAEpE,SAAwB,OAAO,CAAC,GAAkB;IAChD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YACtE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;SAClD;QACD,MAAM,EAAE,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAE3C,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,MAAM,CACJ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,EAAE,CAAC;YACD,GAAG,KAAK;YACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;YAC7C,KAAK;SACN,CAAC,CACH,EACH,IAAA,4BAAa,EAAC,KAAK,CAAC,CACrB,CACF,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAvBD,0BAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAElC,
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAElC,oDAAoD;AACpD,qCAA8B;AAC9B,wDAAqD;AAErD,MAAM,gBAAgB,GACpB,CAAC,OAAe,EAAE,EAAE,CACpB,CAAC,GAAc,EAAE,EAAE,CACnB,CAAC,KAAuC,EAAE,EAAE,CAC1C,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;AAE7C,MAAM,QAAQ,GAAG,CAAC,QAAmB,EAAE,OAAe,EAAE,EAAE;IACxD,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC9C,OAAO,CAAC,KAAY,EAAE,EAAE;QACtB,IAAI,KAAK,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAA;SACf;aAAM;YACL,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1C,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAA;SAC9D;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,SAAwB,MAAM,CAAC,SAAe,EAAE,QAAc;IAC5D,OAAO,GAAG,EAAE;QACV,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAA,YAAG,EAAC,SAAS,CAAC,EAAE,IAAA,oBAAM,EAAC,QAAQ,CAAC,CAAC,CAAA;QAE7D,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,CAAC,CAAA;AACH,CAAC;AAPD,yBAOC"}
|
package/dist/operations/merge.js
CHANGED
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.mergeExisting = void 0;
|
|
4
|
+
const deepmerge = require("deepmerge");
|
|
4
5
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
5
6
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
6
|
-
const
|
|
7
|
+
const isNullOrUndefined = (value) => value === null || value === undefined;
|
|
8
|
+
function mergeExisting(target, source) {
|
|
9
|
+
if (Array.isArray(target)) {
|
|
10
|
+
const arr = source.slice();
|
|
11
|
+
target.forEach((value, index) => {
|
|
12
|
+
arr[index] = deepmerge(source[index], value, {
|
|
13
|
+
arrayMerge: mergeExisting,
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
return arr;
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
}
|
|
20
|
+
exports.mergeExisting = mergeExisting;
|
|
21
|
+
function mergeStates(state, thisState) {
|
|
22
|
+
const target = (0, stateHelpers_1.getStateValue)(state);
|
|
23
|
+
const source = (0, stateHelpers_1.getStateValue)(thisState);
|
|
24
|
+
return (0, stateHelpers_1.setStateValue)(state, isNullOrUndefined(source)
|
|
25
|
+
? target
|
|
26
|
+
: isNullOrUndefined(target)
|
|
27
|
+
? source
|
|
28
|
+
: deepmerge(target, source, { arrayMerge: mergeExisting }));
|
|
29
|
+
}
|
|
7
30
|
function merge(...defs) {
|
|
8
31
|
return (options) => {
|
|
9
32
|
const skipMutation = (0, stateHelpers_1.shouldSkipMutation)(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAEvC,wDAI8B;AAC9B,kEAA+D;AAE/D,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA6B,EAAE,CACtE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,SAAgB,aAAa,CAC3B,MAAW,EACX,MAAW;IAEX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAE9B,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;gBAC3C,UAAU,EAAE,aAAa;aAC1B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;KACX;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAfD,sCAeC;AAED,SAAS,WAAW,CAAC,KAAY,EAAE,SAAgB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,IAAA,4BAAa,EAAC,SAAS,CAAC,CAAA;IACvC,OAAO,IAAA,4BAAa,EAClB,KAAK,EACL,iBAAiB,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAC7D,CAAA;AACH,CAAC;AAED,SAAwB,KAAK,CAAC,GAAG,IAAqB;IACpD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,YAAY,GAAG,IAAA,iCAAkB,EAAC,OAAO,CAAC,CAAA;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;SAClD;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAErE,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,YAAY,CAAC,KAAK,CAAC;YACjB,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACxE,CAAC,CAAA;AACH,CAAC;AAbD,wBAaC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Operation, MapDefinition } from '../types';
|
|
2
|
-
export default function
|
|
2
|
+
export default function modify(def: MapDefinition): Operation;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
5
5
|
const is_1 = require("../utils/is");
|
|
6
|
-
function
|
|
6
|
+
function modify(def) {
|
|
7
7
|
const runFn = (0, definitionHelpers_1.mapFunctionFromDef)(def);
|
|
8
8
|
return (options) => (state) => {
|
|
9
9
|
const nextState = runFn(options)(state);
|
|
@@ -14,5 +14,5 @@ function merge(def) {
|
|
|
14
14
|
: nextValue);
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
exports.default =
|
|
17
|
+
exports.default = modify;
|
|
18
18
|
//# sourceMappingURL=modify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/operations/modify.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAC/D,oCAAsC;AAEtC,SAAwB,
|
|
1
|
+
{"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/operations/modify.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAC/D,oCAAsC;AAEtC,SAAwB,MAAM,CAAC,GAAkB;IAC/C,MAAM,KAAK,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAA;IACrC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;QAEvC,MAAM,SAAS,GAAG,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,IAAA,4BAAa,EAAC,SAAS,CAAC,CAAA;QAE1C,OAAO,IAAA,4BAAa,EAClB,KAAK,EACL,IAAA,aAAQ,EAAC,SAAS,CAAC,IAAI,IAAA,aAAQ,EAAC,SAAS,CAAC;YACxC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE;YAChC,CAAC,CAAC,SAAS,CACd,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAfD,yBAeC"}
|