map-transform 0.4.0-alpha.9 → 0.4.0-beta.0
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 +186 -40
- package/dist/functions/compare.d.ts +2 -1
- package/dist/functions/compare.js +26 -5
- package/dist/functions/compare.js.map +1 -1
- package/dist/functions/explode.js +4 -3
- package/dist/functions/explode.js.map +1 -1
- package/dist/functions/index.d.ts +4 -0
- package/dist/functions/index.js +4 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/indexFn.d.ts +2 -0
- package/dist/functions/indexFn.js +9 -0
- package/dist/functions/indexFn.js.map +1 -0
- package/dist/functions/joinSplit.d.ts +4 -4
- package/dist/functions/joinSplit.js +12 -4
- package/dist/functions/joinSplit.js.map +1 -1
- package/dist/functions/map.js +5 -4
- 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/sort.d.ts +7 -0
- package/dist/functions/sort.js +33 -0
- package/dist/functions/sort.js.map +1 -0
- 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 +4 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/operations/alt.d.ts +1 -1
- package/dist/operations/alt.js +28 -6
- package/dist/operations/alt.js.map +1 -1
- package/dist/operations/apply.js +10 -5
- package/dist/operations/apply.js.map +1 -1
- package/dist/operations/concat.js +9 -5
- package/dist/operations/concat.js.map +1 -1
- package/dist/operations/directionals.js +7 -6
- package/dist/operations/directionals.js.map +1 -1
- package/dist/operations/filter.js +5 -6
- package/dist/operations/filter.js.map +1 -1
- package/dist/operations/fixed.js +2 -4
- package/dist/operations/fixed.js.map +1 -1
- package/dist/operations/getSet.d.ts +3 -3
- package/dist/operations/getSet.js +139 -30
- package/dist/operations/getSet.js.map +1 -1
- package/dist/operations/ifelse.d.ts +1 -1
- package/dist/operations/ifelse.js +21 -10
- package/dist/operations/ifelse.js.map +1 -1
- package/dist/operations/iterate.d.ts +2 -1
- package/dist/operations/iterate.js +14 -10
- package/dist/operations/iterate.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/operations/lookup.js +9 -5
- package/dist/operations/lookup.js.map +1 -1
- package/dist/operations/merge.js +9 -7
- package/dist/operations/merge.js.map +1 -1
- package/dist/operations/modify.js +13 -6
- package/dist/operations/modify.js.map +1 -1
- package/dist/operations/pipe.js +14 -16
- package/dist/operations/pipe.js.map +1 -1
- package/dist/operations/plug.js +1 -1
- package/dist/operations/plug.js.map +1 -1
- package/dist/operations/props.d.ts +2 -0
- package/dist/operations/props.js +114 -0
- package/dist/operations/props.js.map +1 -0
- package/dist/operations/root.js +3 -5
- package/dist/operations/root.js.map +1 -1
- package/dist/operations/transform.js +4 -2
- package/dist/operations/transform.js.map +1 -1
- package/dist/operations/value.js +2 -4
- package/dist/operations/value.js.map +1 -1
- package/dist/types.d.ts +39 -12
- package/dist/utils/array.d.ts +1 -0
- package/dist/utils/array.js +3 -1
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/definitionHelpers.d.ts +3 -1
- package/dist/utils/definitionHelpers.js +72 -17
- package/dist/utils/definitionHelpers.js.map +1 -1
- package/dist/utils/escape.d.ts +2 -0
- package/dist/utils/escape.js +8 -0
- package/dist/utils/escape.js.map +1 -0
- 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/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/dist/utils/stateHelpers.d.ts +30 -6
- package/dist/utils/stateHelpers.js +30 -14
- package/dist/utils/stateHelpers.js.map +1 -1
- package/dist/utils/xor.d.ts +1 -0
- package/dist/utils/xor.js +7 -0
- package/dist/utils/xor.js.map +1 -0
- package/package.json +6 -6
- package/ava-dist.config.cjs +0 -3
- package/ava.config.cjs +0 -5
- package/dist/functions/join.d.ts +0 -7
- package/dist/functions/join.js +0 -12
- package/dist/functions/join.js.map +0 -1
- package/dist/operations/mutate.d.ts +0 -2
- package/dist/operations/mutate.js +0 -80
- package/dist/operations/mutate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":";;AAAA,kCAAkC;
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAClC,4CAA4D;AAO5D,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,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QAC3D,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAA;IACpD,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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pathGetter_1 = require("../utils/pathGetter");
|
|
4
|
+
const functional_1 = require("../utils/functional");
|
|
5
|
+
const compare = (direction, getFn) => function compare(valueA, valueB) {
|
|
6
|
+
const a = getFn(valueA);
|
|
7
|
+
const b = getFn(valueB);
|
|
8
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
9
|
+
return (a - b) * direction;
|
|
10
|
+
}
|
|
11
|
+
else if (a instanceof Date && b instanceof Date) {
|
|
12
|
+
return (a.getTime() - b.getTime()) * direction;
|
|
13
|
+
}
|
|
14
|
+
else if (a === undefined || a === null || b === undefined || b === null) {
|
|
15
|
+
return a === undefined || a === null ? 1 : -1;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const strA = String(a);
|
|
19
|
+
const strB = String(b);
|
|
20
|
+
return strA === strB ? 0 : strA > strB ? 1 * direction : -1 * direction;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
function template(operands) {
|
|
24
|
+
const direction = operands?.asc === false ? -1 : 1;
|
|
25
|
+
const getFn = operands?.path ? (0, pathGetter_1.default)(operands.path) : functional_1.identity;
|
|
26
|
+
return (data) => {
|
|
27
|
+
return Array.isArray(data)
|
|
28
|
+
? data.slice().sort(compare(direction, getFn))
|
|
29
|
+
: data;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.default = template;
|
|
33
|
+
//# sourceMappingURL=sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/functions/sort.ts"],"names":[],"mappings":";;AACA,oDAAwC;AACxC,oDAA8C;AAO9C,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,KAAiC,EAAE,EAAE,CACvE,SAAS,OAAO,CAAC,MAAe,EAAE,MAAe;IAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;KAC3B;SAAM,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;QACjD,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAA;KAC/C;SAAM,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;QACzE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAC9C;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACxE;AACH,CAAC,CAAA;AAEH,SAAwB,QAAQ,CAAC,QAAkB;IACjD,MAAM,SAAS,GAAG,QAAQ,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,oBAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAA;IAE/D,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAA;IACV,CAAC,CAAA;AACH,CAAC;AATD,2BASC"}
|
|
@@ -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,8 @@ 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
|
+
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;
|
|
26
|
+
export default mapTransform;
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
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");
|
|
7
7
|
exports.functions = functions_1.default;
|
|
8
8
|
const iterate_1 = require("./operations/iterate");
|
|
9
9
|
exports.iterate = iterate_1.default;
|
|
10
|
+
const functional_1 = require("./utils/functional");
|
|
10
11
|
var getSet_1 = require("./operations/getSet");
|
|
11
12
|
Object.defineProperty(exports, "get", { enumerable: true, get: function () { return getSet_1.get; } });
|
|
12
13
|
Object.defineProperty(exports, "set", { enumerable: true, get: function () { return getSet_1.set; } });
|
|
@@ -44,6 +45,10 @@ var merge_1 = require("./operations/merge");
|
|
|
44
45
|
Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return merge_1.default; } });
|
|
45
46
|
var modify_1 = require("./operations/modify");
|
|
46
47
|
Object.defineProperty(exports, "modify", { enumerable: true, get: function () { return modify_1.default; } });
|
|
48
|
+
var pathGetter_1 = require("./utils/pathGetter");
|
|
49
|
+
Object.defineProperty(exports, "pathGetter", { enumerable: true, get: function () { return pathGetter_1.default; } });
|
|
50
|
+
var pathSetter_1 = require("./utils/pathSetter");
|
|
51
|
+
Object.defineProperty(exports, "pathSetter", { enumerable: true, get: function () { return pathSetter_1.default; } });
|
|
47
52
|
const composeMapFunction = (mapFn, initialState) => {
|
|
48
53
|
const createState = (0, stateHelpers_1.populateState)(initialState);
|
|
49
54
|
return (data) => data === undefined ? undefined : (0, stateHelpers_1.getStateValue)(mapFn(createState(data)));
|
|
@@ -57,7 +62,7 @@ const mergeOptions = (options) => ({
|
|
|
57
62
|
});
|
|
58
63
|
function mapTransform(def, options = {}) {
|
|
59
64
|
const completeOptions = mergeOptions(options);
|
|
60
|
-
const mapFn = (0, definitionHelpers_1.
|
|
65
|
+
const mapFn = (0, definitionHelpers_1.operationFromDef)(def)(completeOptions)(functional_1.identity);
|
|
61
66
|
return Object.assign(composeMapFunction(mapFn, {}), {
|
|
62
67
|
onlyMappedValues: composeMapFunction(mapFn, { onlyMapped: true }),
|
|
63
68
|
rev: Object.assign(composeMapFunction(mapFn, { rev: true }), {
|
|
@@ -69,4 +74,5 @@ function mapTransform(def, options = {}) {
|
|
|
69
74
|
});
|
|
70
75
|
}
|
|
71
76
|
exports.mapTransform = mapTransform;
|
|
77
|
+
exports.default = mapTransform;
|
|
72
78
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,iEAA4D;AAC5D,uDAAmE;AACnE,2CAAmC;AAqBjB,oBArBX,mBAAS,CAqBW;AApB3B,kDAA0C;AAoBjC,kBApBF,iBAAO,CAoBE;AAnBhB,mDAA6C;AAE7C,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,oCAAgB,EAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,qBAAQ,CAAC,CAAA;IAE9D,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;AAED,kBAAe,YAAY,CAAA"}
|
package/dist/operations/alt.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Operation, MapDefinition } from '../types';
|
|
2
|
-
export default function alt(
|
|
2
|
+
export default function alt(...defs: MapDefinition[]): Operation[];
|
package/dist/operations/alt.js
CHANGED
|
@@ -2,13 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
const functional_1 = require("../utils/functional");
|
|
6
|
+
const runAlt = (isOneMode) => function runAlt(operation, index) {
|
|
7
|
+
return (options) => (next) => (state) => {
|
|
8
|
+
const nextState = next(state);
|
|
9
|
+
const { noneValues } = options;
|
|
10
|
+
const isFirst = !isOneMode && index === 0;
|
|
11
|
+
if (isFirst) {
|
|
12
|
+
const thisState = operation(options)(functional_1.identity)(nextState);
|
|
13
|
+
return (0, stateHelpers_1.isNoneValueState)(thisState, noneValues)
|
|
14
|
+
? { ...thisState, context: [...nextState.context, nextState.value] }
|
|
15
|
+
: thisState;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
if ((0, stateHelpers_1.isNoneValueState)(nextState, noneValues)) {
|
|
19
|
+
const thisState = operation(options)(functional_1.identity)((0, stateHelpers_1.removeLastContext)((0, stateHelpers_1.setStateValue)(nextState, (0, stateHelpers_1.getLastContext)(nextState))));
|
|
20
|
+
return (0, stateHelpers_1.isNoneValueState)(thisState, noneValues)
|
|
21
|
+
? (0, stateHelpers_1.setValueFromState)(nextState, thisState)
|
|
22
|
+
: thisState;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return nextState;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
11
28
|
};
|
|
29
|
+
};
|
|
30
|
+
function alt(...defs) {
|
|
31
|
+
const altOperations = defs.map((def) => (0, definitionHelpers_1.operationFromDef)(def));
|
|
32
|
+
const isOneMode = altOperations.length === 1;
|
|
33
|
+
return altOperations.map(runAlt(isOneMode));
|
|
12
34
|
}
|
|
13
35
|
exports.default = alt;
|
|
14
36
|
//# sourceMappingURL=alt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAM8B;AAC9B,kEAA6D;AAC7D,oDAA8C;AAE9C,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,EAAE,CACpC,SAAS,MAAM,CAAC,SAAoB,EAAE,KAAa;IACjD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAC9B,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAA;QAEzC,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;YACzD,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC;gBAC5C,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpE,CAAC,CAAC,SAAS,CAAA;SACd;aAAM;YACL,IAAI,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE;gBAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CAC5C,IAAA,gCAAiB,EACf,IAAA,4BAAa,EAAC,SAAS,EAAE,IAAA,6BAAc,EAAC,SAAS,CAAC,CAAC,CACpD,CACF,CAAA;gBACD,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,UAAU,CAAC;oBAC5C,CAAC,CAAC,IAAA,gCAAiB,EAAC,SAAS,EAAE,SAAS,CAAC;oBACzC,CAAC,CAAC,SAAS,CAAA;aACd;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEH,SAAwB,GAAG,CAAC,GAAG,IAAqB;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAA;IAK5C,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAC7C,CAAC;AATD,sBASC"}
|
package/dist/operations/apply.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
4
|
-
const
|
|
4
|
+
const functional_1 = require("../utils/functional");
|
|
5
5
|
const extractPipeline = (pipelineId, { pipelines }) => pipelineId && pipelines ? pipelines[pipelineId] : undefined;
|
|
6
|
+
const removeFlip = ({ flip, ...state }) => state;
|
|
6
7
|
function apply(pipelineId) {
|
|
7
|
-
return (options) => {
|
|
8
|
+
return (options) => (next) => {
|
|
8
9
|
const pipeline = extractPipeline(pipelineId, options);
|
|
9
|
-
|
|
10
|
-
? (0, definitionHelpers_1.
|
|
11
|
-
:
|
|
10
|
+
const fn = pipeline
|
|
11
|
+
? (0, definitionHelpers_1.operationFromDef)(pipeline)(options)(functional_1.identity)
|
|
12
|
+
: undefined;
|
|
13
|
+
return (state) => {
|
|
14
|
+
const nextState = next(state);
|
|
15
|
+
return fn ? fn(removeFlip(nextState)) : nextState;
|
|
16
|
+
};
|
|
12
17
|
};
|
|
13
18
|
}
|
|
14
19
|
exports.default = apply;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,kEAA6D;AAC7D,oDAA8C;AAE9C,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,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAS,EAAE,EAAE,CAAC,KAAK,CAAA;AAEvD,SAAwB,KAAK,CAAC,UAAkB;IAC9C,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,MAAM,EAAE,GAAG,QAAQ;YACjB,CAAC,CAAC,IAAA,oCAAgB,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnD,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAXD,wBAWC"}
|
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
5
|
+
const functional_1 = require("../utils/functional");
|
|
5
6
|
const merge = (left, right) => Array.isArray(right) ? [...left, ...right] : [...left, right];
|
|
6
7
|
function concat(...defs) {
|
|
7
|
-
return (options) => {
|
|
8
|
-
const fns = defs.map((def) => (0, definitionHelpers_1.
|
|
9
|
-
return (state)
|
|
10
|
-
|
|
11
|
-
.
|
|
8
|
+
return (options) => (next) => {
|
|
9
|
+
const fns = defs.map((def) => (0, definitionHelpers_1.operationFromDef)(def)(options)(functional_1.identity));
|
|
10
|
+
return function doConcat(state) {
|
|
11
|
+
const nextState = next(state);
|
|
12
|
+
return (0, stateHelpers_1.setStateValue)(nextState, fns
|
|
13
|
+
.reduce((value, fn) => merge(value, (0, stateHelpers_1.getStateValue)(fn(nextState))), [])
|
|
14
|
+
.filter((val) => val !== undefined));
|
|
15
|
+
};
|
|
12
16
|
};
|
|
13
17
|
}
|
|
14
18
|
exports.default = concat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operations/concat.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/operations/concat.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA6D;AAC7D,oDAA8C;AAE9C,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,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CAAC,CAAA;QAEvE,OAAO,SAAS,QAAQ,CAAC,KAAK;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,OAAO,IAAA,4BAAa,EAClB,SAAS,EACT,GAAG;iBACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,4BAAa,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EACzD,EAAe,CAChB;iBACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACtC,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAjBD,yBAiBC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.divide = exports.rev = exports.fwd = void 0;
|
|
4
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
5
|
+
const xor_1 = require("../utils/xor");
|
|
5
6
|
const applyInDirection = (def, rev) => {
|
|
6
|
-
return (options) => {
|
|
7
|
-
const fn = (0, definitionHelpers_1.
|
|
8
|
-
return (state) => ((
|
|
7
|
+
return (options) => (next) => {
|
|
8
|
+
const fn = (0, definitionHelpers_1.operationFromDef)(def)(options)(next);
|
|
9
|
+
return (state) => ((0, xor_1.default)(rev, !state.rev) ? fn(state) : next(state));
|
|
9
10
|
};
|
|
10
11
|
};
|
|
11
12
|
function fwd(def) {
|
|
@@ -17,9 +18,9 @@ function rev(def) {
|
|
|
17
18
|
}
|
|
18
19
|
exports.rev = rev;
|
|
19
20
|
function divide(fwdDef, revDef) {
|
|
20
|
-
return (options) => {
|
|
21
|
-
const fwdFn = (0, definitionHelpers_1.
|
|
22
|
-
const revFn = (0, definitionHelpers_1.
|
|
21
|
+
return (options) => (next) => {
|
|
22
|
+
const fwdFn = (0, definitionHelpers_1.operationFromDef)(fwdDef)(options)(next);
|
|
23
|
+
const revFn = (0, definitionHelpers_1.operationFromDef)(revDef)(options)(next);
|
|
23
24
|
return (state) => (state.rev ? revFn(state) : fwdFn(state));
|
|
24
25
|
};
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directionals.js","sourceRoot":"","sources":["../../src/operations/directionals.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"directionals.js","sourceRoot":"","sources":["../../src/operations/directionals.ts"],"names":[],"mappings":";;;AACA,kEAA6D;AAC7D,sCAA8B;AAE9B,MAAM,gBAAgB,GAAG,CAAC,GAAkB,EAAE,GAAY,EAAa,EAAE;IACvE,OAAO,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,MAAM,EAAE,GAAG,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAA,aAAG,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,CAAC,CAAA;AACH,CAAC,CAAA;AAED,SAAgB,GAAG,CAAC,GAAkB;IACpC,OAAO,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACrC,CAAC;AAFD,kBAEC;AAED,SAAgB,GAAG,CAAC,GAAkB;IACpC,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC;AAFD,kBAEC;AAED,SAAgB,MAAM,CACpB,MAAqB,EACrB,MAAqB;IAErB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAA,oCAAgB,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,IAAA,oCAAgB,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;QACrD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAA;AACH,CAAC;AATD,wBASC"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
|
-
const functional_1 = require("../utils/functional");
|
|
5
4
|
const filterValue = (value, filterFn) => Array.isArray(value)
|
|
6
5
|
? value.filter(filterFn)
|
|
7
6
|
: filterFn(value)
|
|
8
7
|
? value
|
|
9
8
|
: undefined;
|
|
10
9
|
function filter(fn) {
|
|
11
|
-
return (_options) => {
|
|
10
|
+
return (_options) => (next) => {
|
|
12
11
|
if (typeof fn !== 'function') {
|
|
13
|
-
return
|
|
12
|
+
return (state) => next(state);
|
|
14
13
|
}
|
|
15
14
|
return (state) => {
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
return (0, stateHelpers_1.setStateValue)(
|
|
15
|
+
const nextState = next(state);
|
|
16
|
+
const filterFn = (data) => !!fn(data, nextState);
|
|
17
|
+
return (0, stateHelpers_1.setStateValue)(nextState, filterValue((0, stateHelpers_1.getStateValue)(nextState), filterFn));
|
|
19
18
|
};
|
|
20
19
|
};
|
|
21
20
|
}
|
|
@@ -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;AAEpE,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,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC9B;QAED,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YACzD,OAAO,IAAA,4BAAa,EAClB,SAAS,EACT,WAAW,CAAC,IAAA,4BAAa,EAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAChD,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAfD,yBAeC"}
|
package/dist/operations/fixed.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const value_1 = require("../functions/value");
|
|
4
|
+
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
5
|
function fixed(val) {
|
|
5
|
-
return () => (state) => (
|
|
6
|
-
...state,
|
|
7
|
-
value: (0, value_1.extractValue)(val),
|
|
8
|
-
});
|
|
6
|
+
return () => (_next) => (state) => (0, stateHelpers_1.setStateValue)(state, (0, value_1.extractValue)(val), true);
|
|
9
7
|
}
|
|
10
8
|
exports.default = fixed;
|
|
11
9
|
//# sourceMappingURL=fixed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixed.js","sourceRoot":"","sources":["../../src/operations/fixed.ts"],"names":[],"mappings":";;AACA,8CAAiD;
|
|
1
|
+
{"version":3,"file":"fixed.js","sourceRoot":"","sources":["../../src/operations/fixed.ts"],"names":[],"mappings":";;AACA,8CAAiD;AACjD,wDAAqD;AAErD,SAAwB,KAAK,CAAC,GAA4B;IACxD,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAChC,IAAA,4BAAa,EAAC,KAAK,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;AACjD,CAAC;AAHD,wBAGC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const get: (path: Path) => Operation;
|
|
3
|
-
export declare const set: (path: Path) => Operation;
|
|
1
|
+
import { Path, Operation } from '../types';
|
|
2
|
+
export declare const get: (path: Path) => Operation[];
|
|
3
|
+
export declare const set: (path: Path) => Operation[];
|
|
@@ -1,36 +1,145 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.set = exports.get = void 0;
|
|
4
|
-
const
|
|
5
|
-
const pathSetter_1 = require("../utils/pathSetter");
|
|
4
|
+
const mapAny = require("map-any");
|
|
6
5
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
6
|
+
const is_1 = require("../utils/is");
|
|
7
|
+
const array_1 = require("../utils/array");
|
|
8
|
+
const functional_1 = require("../utils/functional");
|
|
9
|
+
const xor_1 = require("../utils/xor");
|
|
10
|
+
const adjustIsSet = (isSet, { rev = false, flip = false }) => (0, xor_1.default)(isSet, (0, xor_1.default)(rev, flip));
|
|
11
|
+
function flatMapAny(fn) {
|
|
12
|
+
return (value, target) => Array.isArray(value)
|
|
13
|
+
? value.flatMap((value) => fn(value, target))
|
|
14
|
+
: fn(value, target);
|
|
15
|
+
}
|
|
16
|
+
function preparePath(path) {
|
|
17
|
+
if (typeof path === 'string' && path.includes('[')) {
|
|
18
|
+
if (path.endsWith('][')) {
|
|
19
|
+
return [path.slice(0, path.length - 2), false, true];
|
|
20
|
+
}
|
|
21
|
+
const pos = path.indexOf('[');
|
|
22
|
+
if (path[pos - 1] === '\\') {
|
|
23
|
+
return [path.replace('\\[', '['), false, false];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const isArr = path[pos + 1] === ']';
|
|
27
|
+
return [path.slice(0, pos), isArr, false];
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
return [path, false, false];
|
|
31
|
+
}
|
|
32
|
+
function getSetProp(path) {
|
|
33
|
+
if (path === '') {
|
|
34
|
+
return functional_1.identity;
|
|
35
|
+
}
|
|
36
|
+
const getFn = flatMapAny((value) => (0, is_1.isObject)(value) ? value[path] : undefined);
|
|
37
|
+
const setFn = (value, target) => (0, is_1.isObject)(target) ? { ...target, [path]: value } : { [path]: value };
|
|
38
|
+
return (value, isSet, target) => {
|
|
39
|
+
if (isSet) {
|
|
40
|
+
return setFn(value, target);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return getFn(value);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function getSetIndex(index) {
|
|
48
|
+
return (value, isSet, target) => {
|
|
49
|
+
if (isSet) {
|
|
50
|
+
const arr = Array.isArray(target) ? [...target] : [];
|
|
51
|
+
arr[index] = value;
|
|
52
|
+
return arr;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return Array.isArray(value) ? value[index] : undefined;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function getParent(state) {
|
|
60
|
+
const nextValue = (0, stateHelpers_1.getLastContext)(state);
|
|
61
|
+
const nextContext = state.context.slice(0, -1);
|
|
62
|
+
return { ...state, context: nextContext, value: nextValue };
|
|
63
|
+
}
|
|
64
|
+
function getRoot(state) {
|
|
65
|
+
const nextValue = (0, stateHelpers_1.getRootFromState)(state);
|
|
66
|
+
const nextContext = [];
|
|
67
|
+
return { ...state, context: nextContext, value: nextValue };
|
|
68
|
+
}
|
|
69
|
+
function getSet(isSet = false) {
|
|
70
|
+
return (path) => {
|
|
71
|
+
if (typeof path === 'string' && path[0] === '^') {
|
|
72
|
+
const getFn = path[1] === '^' ? getRoot : getParent;
|
|
73
|
+
return () => (next) => (state) => {
|
|
74
|
+
if (adjustIsSet(isSet, state)) {
|
|
75
|
+
return (0, stateHelpers_1.setStateValue)(next(state), state.target);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return next(getFn(state));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const [basePath, isArr, isIndexProp] = preparePath(path);
|
|
83
|
+
const isIndex = typeof basePath === 'number';
|
|
84
|
+
const getArrAwareStateValue = isArr
|
|
85
|
+
? (0, functional_1.compose)(array_1.ensureArray, stateHelpers_1.getStateValue)
|
|
86
|
+
: stateHelpers_1.getStateValue;
|
|
87
|
+
const getSetFn = isIndex ? getSetIndex(basePath) : getSetProp(basePath);
|
|
88
|
+
return (_options) => (next) => (state) => {
|
|
89
|
+
if (adjustIsSet(isSet, state)) {
|
|
90
|
+
const target = (0, stateHelpers_1.getTargetFromState)(state);
|
|
91
|
+
const nextTarget = getSetFn(target, false);
|
|
92
|
+
const nextState = next((0, stateHelpers_1.setTargetOnState)({ ...state, iterate: state.iterate || isArr }, nextTarget));
|
|
93
|
+
const setIt = (value, index) => getSetFn(value, true, (0, array_1.indexOfIfArray)(target, index));
|
|
94
|
+
const thisValue = nextState.iterate && !isArr && !isIndexProp
|
|
95
|
+
? mapAny(setIt, (0, stateHelpers_1.getStateValue)(nextState))
|
|
96
|
+
: setIt(getArrAwareStateValue(nextState));
|
|
97
|
+
return (0, stateHelpers_1.setStateValue)(state, thisValue);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const nextState = next(state);
|
|
101
|
+
const thisValue = getSetFn((0, stateHelpers_1.getStateValue)(nextState), false);
|
|
102
|
+
return (0, stateHelpers_1.setStateValue)(nextState, isArr ? (0, array_1.ensureArray)(thisValue) : thisValue, true);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function dividePath(path) {
|
|
108
|
+
const pos = path.indexOf('[');
|
|
109
|
+
if (pos > -1 && path[pos - 1] !== '\\') {
|
|
110
|
+
const index = Number.parseInt(path.slice(pos + 1), 10);
|
|
111
|
+
if (!Number.isNaN(index)) {
|
|
112
|
+
const basePath = path.slice(0, pos).trim();
|
|
113
|
+
return basePath ? [`${basePath}][`, index] : [index];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (path.startsWith('^')) {
|
|
117
|
+
if (path.startsWith('^^') && path.length > 2) {
|
|
118
|
+
return ['^^', path.slice(2)];
|
|
119
|
+
}
|
|
120
|
+
else if (path.length > 1 && path !== '^^') {
|
|
121
|
+
return ['^^', path.slice(1)];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return path.trim();
|
|
125
|
+
}
|
|
126
|
+
function pathToNextOperations(path, isSet = false) {
|
|
127
|
+
if (!path || path === '.') {
|
|
128
|
+
return [() => (next) => (state) => next(state)];
|
|
129
|
+
}
|
|
130
|
+
if (path[0] === '>') {
|
|
131
|
+
path = path.slice(1);
|
|
132
|
+
isSet = true;
|
|
133
|
+
}
|
|
134
|
+
const parts = path.split('.').flatMap(dividePath);
|
|
135
|
+
const operations = parts.map(getSet(isSet));
|
|
136
|
+
if (isSet) {
|
|
137
|
+
operations.reverse();
|
|
138
|
+
}
|
|
139
|
+
return operations;
|
|
140
|
+
}
|
|
141
|
+
const get = (path) => pathToNextOperations(path, false);
|
|
142
|
+
exports.get = get;
|
|
143
|
+
const set = (path) => pathToNextOperations(path, true);
|
|
144
|
+
exports.set = set;
|
|
36
145
|
//# sourceMappingURL=getSet.js.map
|