map-transform 0.4.0-alpha.15 → 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/README.md +42 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/apply.js +1 -4
- package/dist/operations/apply.js.map +1 -1
- package/dist/operations/ifelse.js +1 -1
- package/dist/operations/ifelse.js.map +1 -1
- package/dist/operations/logical.d.ts +3 -0
- package/dist/operations/logical.js +17 -0
- package/dist/operations/logical.js.map +1 -0
- package/dist/types.d.ts +15 -1
- package/dist/utils/definitionHelpers.js +14 -1
- package/dist/utils/definitionHelpers.js.map +1 -1
- package/dist/utils/pathGetter.js +12 -3
- package/dist/utils/pathGetter.js.map +1 -1
- package/dist/utils/pathSetter.d.ts +1 -0
- package/dist/utils/pathSetter.js +16 -6
- package/dist/utils/pathSetter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -590,7 +590,7 @@ const def31 = [
|
|
|
590
590
|
Defining an if operation as an object:
|
|
591
591
|
|
|
592
592
|
```javascript
|
|
593
|
-
import { mapTransform
|
|
593
|
+
import { mapTransform } from 'map-transform'
|
|
594
594
|
|
|
595
595
|
const def31b = [
|
|
596
596
|
'members'
|
|
@@ -645,6 +645,9 @@ When an id is passed to the apply operation as `pipelinedId`, the pipeline will
|
|
|
645
645
|
be applied in the place of the apply operation and executed as if it was part of
|
|
646
646
|
the pipeline definition in the first place.
|
|
647
647
|
|
|
648
|
+
When no pipeline is provided, e.g. because the id is unknown, no pipeline will
|
|
649
|
+
be applied and the data will pass through untouched.
|
|
650
|
+
|
|
648
651
|
```javascript
|
|
649
652
|
import { mapTransform, apply, transform } from 'map-transform'
|
|
650
653
|
|
|
@@ -1054,6 +1057,44 @@ mapper.rev(mappedData)
|
|
|
1054
1057
|
// --> { content: { meta: { authors: ['user1', 'user3'] } } }
|
|
1055
1058
|
```
|
|
1056
1059
|
|
|
1060
|
+
#### `and(pipeline, pipeline, ...)` operation
|
|
1061
|
+
|
|
1062
|
+
Will run all provided pipelines, force their return values to boolean, according
|
|
1063
|
+
to JavaScript rules, and return `true` if they are all `true`, otherwise
|
|
1064
|
+
`false`.
|
|
1065
|
+
|
|
1066
|
+
Typically used together with [`ifelse` operation](#ifelseconditionFn-truePipeline-falsePipeline-operation),
|
|
1067
|
+
to support AND logic:
|
|
1068
|
+
|
|
1069
|
+
```javascript
|
|
1070
|
+
const def36 = [
|
|
1071
|
+
{
|
|
1072
|
+
$if: { $and: ['active', 'authorized'] },
|
|
1073
|
+
then: 'content',
|
|
1074
|
+
else: { $value: undefined },
|
|
1075
|
+
},
|
|
1076
|
+
]
|
|
1077
|
+
```
|
|
1078
|
+
|
|
1079
|
+
#### `or(pipeline, pipeline, ...)` operation
|
|
1080
|
+
|
|
1081
|
+
Will run all provided pipelines, force their return values to boolean, according
|
|
1082
|
+
to JavaScript rules, and return `true` if any of the are `true`, otherwise
|
|
1083
|
+
`false`.
|
|
1084
|
+
|
|
1085
|
+
Typically used together with [`ifelse` operation](#ifelseconditionFn-truePipeline-falsePipeline-operation),
|
|
1086
|
+
to support OR logic:
|
|
1087
|
+
|
|
1088
|
+
```javascript
|
|
1089
|
+
const def37 = [
|
|
1090
|
+
{
|
|
1091
|
+
$if: { $or: ['active', 'draft'] },
|
|
1092
|
+
then: 'content',
|
|
1093
|
+
else: { $value: undefined },
|
|
1094
|
+
},
|
|
1095
|
+
]
|
|
1096
|
+
```
|
|
1097
|
+
|
|
1057
1098
|
#### `compare({ path, operator, match, matchPath, not })` function
|
|
1058
1099
|
|
|
1059
1100
|
This is a helper function intended for use with the `filter()` operation. You
|
package/dist/index.d.ts
CHANGED
|
@@ -20,4 +20,6 @@ export { default as merge } from './operations/merge';
|
|
|
20
20
|
export { default as modify } from './operations/modify';
|
|
21
21
|
export { iterate, functions };
|
|
22
22
|
export { CustomFunction, DataMapper, MapDefinition, MapObject, MapPipe, MapTransform, Dictionary, Dictionaries, OperationObject, TransformObject, FilterObject, ApplyObject, AltObject, } from './types';
|
|
23
|
+
export { default as pathGetter } from './utils/pathGetter';
|
|
24
|
+
export { default as pathSetter } from './utils/pathSetter';
|
|
23
25
|
export declare function mapTransform(def: MapDefinition, options?: Options): MapTransform;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
3
|
+
exports.mapTransform = exports.pathSetter = exports.pathGetter = 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
4
|
const definitionHelpers_1 = require("./utils/definitionHelpers");
|
|
5
5
|
const stateHelpers_1 = require("./utils/stateHelpers");
|
|
6
6
|
const functions_1 = require("./functions");
|
|
@@ -44,6 +44,10 @@ var merge_1 = require("./operations/merge");
|
|
|
44
44
|
Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return merge_1.default; } });
|
|
45
45
|
var modify_1 = require("./operations/modify");
|
|
46
46
|
Object.defineProperty(exports, "modify", { enumerable: true, get: function () { return modify_1.default; } });
|
|
47
|
+
var pathGetter_1 = require("./utils/pathGetter");
|
|
48
|
+
Object.defineProperty(exports, "pathGetter", { enumerable: true, get: function () { return pathGetter_1.default; } });
|
|
49
|
+
var pathSetter_1 = require("./utils/pathSetter");
|
|
50
|
+
Object.defineProperty(exports, "pathSetter", { enumerable: true, get: function () { return pathSetter_1.default; } });
|
|
47
51
|
const composeMapFunction = (mapFn, initialState) => {
|
|
48
52
|
const createState = (0, stateHelpers_1.populateState)(initialState);
|
|
49
53
|
return (data) => data === undefined ? undefined : (0, stateHelpers_1.getStateValue)(mapFn(createState(data)));
|
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;AAiB1B,iDAA0D;AAAjD,wGAAA,OAAO,OAAc;AAC9B,iDAA0D;AAAjD,wGAAA,OAAO,OAAc;AAE9B,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/apply.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
4
|
-
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
5
4
|
const extractPipeline = (pipelineId, { pipelines }) => pipelineId && pipelines ? pipelines[pipelineId] : undefined;
|
|
6
5
|
function apply(pipelineId) {
|
|
7
6
|
return (options) => {
|
|
8
7
|
const pipeline = extractPipeline(pipelineId, options);
|
|
9
|
-
return pipeline
|
|
10
|
-
? (0, definitionHelpers_1.mapFunctionFromDef)(pipeline)(options)
|
|
11
|
-
: (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
|
|
8
|
+
return pipeline ? (0, definitionHelpers_1.mapFunctionFromDef)(pipeline)(options) : (state) => state;
|
|
12
9
|
};
|
|
13
10
|
}
|
|
14
11
|
exports.default = apply;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,kEAA+D;
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE,SAAS,EAAW,EAAE,EAAE,CACrE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7D,SAAwB,KAAK,CAAC,UAAkB;IAC9C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAA,sCAAkB,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAA;IAC5E,CAAC,CAAA;AACH,CAAC;AALD,wBAKC"}
|
|
@@ -16,7 +16,7 @@ function default_1(conditionDef, trueDef, falseDef) {
|
|
|
16
16
|
const runTrue = trueFn(options);
|
|
17
17
|
const runFalse = falseFn(options);
|
|
18
18
|
return (state) => {
|
|
19
|
-
const bool =
|
|
19
|
+
const bool = (0, stateHelpers_1.getStateValue)(runCondition(state));
|
|
20
20
|
return bool ? runTrue(state) : runFalse(state);
|
|
21
21
|
};
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,mBACE,YAAwC,EACxC,OAAuB,EACvB,QAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,sCAAkB,EAAC,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,OAAO,CAAA;KACf;IACD,MAAM,WAAW,GACf,OAAO,YAAY,KAAK,UAAU;QAChC,CAAC,CAAC,GAAG,EAAE,CACH,CAAC,KAAY,EAAS,EAAE,CACtB,IAAA,4BAAa,EACX,KAAK,EACJ,YAA2B,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D;QACP,CAAC,CAAC,IAAA,sCAAkB,EAAC,YAAY,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IAE1C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjC,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"ifelse.js","sourceRoot":"","sources":["../../src/operations/ifelse.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,mBACE,YAAwC,EACxC,OAAuB,EACvB,QAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,sCAAkB,EAAC,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,OAAO,CAAA;KACf;IACD,MAAM,WAAW,GACf,OAAO,YAAY,KAAK,UAAU;QAChC,CAAC,CAAC,GAAG,EAAE,CACH,CAAC,KAAY,EAAS,EAAE,CACtB,IAAA,4BAAa,EACX,KAAK,EACJ,YAA2B,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D;QACP,CAAC,CAAC,IAAA,sCAAkB,EAAC,YAAY,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IAE1C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjC,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,IAAA,4BAAa,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AA9BD,4BA8BC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.or = exports.and = void 0;
|
|
4
|
+
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
5
|
+
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
6
|
+
const prepareLogical = (logicFn) => function logical(...pipelines) {
|
|
7
|
+
const fns = pipelines.map(definitionHelpers_1.mapFunctionFromDef);
|
|
8
|
+
return (options) => {
|
|
9
|
+
return (state) => {
|
|
10
|
+
const values = fns.map((fn) => (0, stateHelpers_1.getStateValue)(fn(options)(state)));
|
|
11
|
+
return (0, stateHelpers_1.setStateValue)(state, values.reduce((a, b) => logicFn(Boolean(a), Boolean(b))));
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
exports.and = prepareLogical((a, b) => a && b);
|
|
16
|
+
exports.or = prepareLogical((a, b) => a || b);
|
|
17
|
+
//# sourceMappingURL=logical.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logical.js","sourceRoot":"","sources":["../../src/operations/logical.ts"],"names":[],"mappings":";;;AACA,wDAAoE;AACpE,kEAA+D;AAI/D,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC1C,SAAS,OAAO,CAAC,GAAG,SAA0B;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sCAAkB,CAAC,CAAA;IAE7C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACjE,OAAO,IAAA,4BAAa,EAClB,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEU,QAAA,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AACtC,QAAA,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -61,7 +61,18 @@ export interface AltObject extends Operands {
|
|
|
61
61
|
$iterate?: boolean;
|
|
62
62
|
$direction?: string;
|
|
63
63
|
}
|
|
64
|
-
export
|
|
64
|
+
export interface ValueObject extends Operands {
|
|
65
|
+
$value: string;
|
|
66
|
+
$iterate?: boolean;
|
|
67
|
+
$direction?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface AndObject extends Operands {
|
|
70
|
+
$and: MapDefinition[];
|
|
71
|
+
}
|
|
72
|
+
export interface OrObject extends Operands {
|
|
73
|
+
$or: MapDefinition[];
|
|
74
|
+
}
|
|
75
|
+
export declare type OperationObject = TransformObject | FilterObject | IfObject | ApplyObject | AltObject | ValueObject | AndObject | OrObject;
|
|
65
76
|
export interface StateMapper {
|
|
66
77
|
(state: State): State;
|
|
67
78
|
getTarget?: (state: State) => unknown;
|
|
@@ -83,7 +94,10 @@ export interface MapObject {
|
|
|
83
94
|
$filter?: undefined;
|
|
84
95
|
$if?: undefined;
|
|
85
96
|
$apply?: undefined;
|
|
97
|
+
$valud?: undefined;
|
|
86
98
|
$alt?: undefined;
|
|
99
|
+
$and?: undefined;
|
|
100
|
+
$or?: undefined;
|
|
87
101
|
}
|
|
88
102
|
export declare type MapDefinition = MapObject | Operation | OperationObject | MapPipe | Path | null;
|
|
89
103
|
export interface MapTransformWithOnlyMappedValues {
|
|
@@ -13,6 +13,7 @@ const ifelse_1 = require("../operations/ifelse");
|
|
|
13
13
|
const apply_1 = require("../operations/apply");
|
|
14
14
|
const alt_1 = require("../operations/alt");
|
|
15
15
|
const directionals_1 = require("../operations/directionals");
|
|
16
|
+
const logical_1 = require("../operations/logical");
|
|
16
17
|
const altOperation = (fn) => (0, alt_1.default)((0, transform_1.default)(fn));
|
|
17
18
|
const transformDefFromValue = ({ $value: value, ...def }) => ({
|
|
18
19
|
...def,
|
|
@@ -26,7 +27,9 @@ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform
|
|
|
26
27
|
(0, exports.isOperationType)(def, '$if') ||
|
|
27
28
|
(0, exports.isOperationType)(def, '$apply') ||
|
|
28
29
|
(0, exports.isOperationType)(def, '$alt') ||
|
|
29
|
-
(0, exports.isOperationType)(def, '$value')
|
|
30
|
+
(0, exports.isOperationType)(def, '$value') ||
|
|
31
|
+
(0, exports.isOperationType)(def, '$and') ||
|
|
32
|
+
(0, exports.isOperationType)(def, '$or');
|
|
30
33
|
exports.hasOperationProps = hasOperationProps;
|
|
31
34
|
const isPath = (def) => typeof def === 'string';
|
|
32
35
|
exports.isPath = isPath;
|
|
@@ -67,6 +70,10 @@ const createApplyOperation = (operationFn, def) => {
|
|
|
67
70
|
const pipelineId = def.$apply;
|
|
68
71
|
return wrapFromDefinition(operationFn(pipelineId), def);
|
|
69
72
|
};
|
|
73
|
+
const createLogicalOperation = (operationFn, fnProp, def) => {
|
|
74
|
+
const pipelines = def[fnProp];
|
|
75
|
+
return operationFn(...pipelines);
|
|
76
|
+
};
|
|
70
77
|
const operationFromObject = (def) => {
|
|
71
78
|
if ((0, exports.isOperationType)(def, '$transform')) {
|
|
72
79
|
return createOperation(transform_1.default, '$transform', def);
|
|
@@ -86,6 +93,12 @@ const operationFromObject = (def) => {
|
|
|
86
93
|
else if ((0, exports.isOperationType)(def, '$alt')) {
|
|
87
94
|
return createOperation(altOperation, '$alt', def);
|
|
88
95
|
}
|
|
96
|
+
else if ((0, exports.isOperationType)(def, '$and')) {
|
|
97
|
+
return createLogicalOperation(logical_1.and, '$and', def);
|
|
98
|
+
}
|
|
99
|
+
else if ((0, exports.isOperationType)(def, '$or')) {
|
|
100
|
+
return createLogicalOperation(logical_1.or, '$or', def);
|
|
101
|
+
}
|
|
89
102
|
else {
|
|
90
103
|
return (0, mutate_1.default)(def);
|
|
91
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
|
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