map-transform 0.4.0-alpha.20 → 0.4.0-alpha.23

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.
Files changed (67) hide show
  1. package/README.md +44 -30
  2. package/dist/functions/compare.js +8 -3
  3. package/dist/functions/compare.js.map +1 -1
  4. package/dist/index.js +2 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/operations/alt.d.ts +1 -1
  7. package/dist/operations/alt.js +25 -8
  8. package/dist/operations/alt.js.map +1 -1
  9. package/dist/operations/apply.js +4 -2
  10. package/dist/operations/apply.js.map +1 -1
  11. package/dist/operations/concat.js +9 -5
  12. package/dist/operations/concat.js.map +1 -1
  13. package/dist/operations/directionals.js +7 -6
  14. package/dist/operations/directionals.js.map +1 -1
  15. package/dist/operations/filter.js +5 -6
  16. package/dist/operations/filter.js.map +1 -1
  17. package/dist/operations/fixed.js +1 -1
  18. package/dist/operations/fixed.js.map +1 -1
  19. package/dist/operations/getSet.d.ts +3 -4
  20. package/dist/operations/getSet.js +138 -32
  21. package/dist/operations/getSet.js.map +1 -1
  22. package/dist/operations/ifelse.js +14 -8
  23. package/dist/operations/ifelse.js.map +1 -1
  24. package/dist/operations/iterate.d.ts +2 -1
  25. package/dist/operations/iterate.js +14 -10
  26. package/dist/operations/iterate.js.map +1 -1
  27. package/dist/operations/logical.js +6 -6
  28. package/dist/operations/logical.js.map +1 -1
  29. package/dist/operations/lookup.js +9 -5
  30. package/dist/operations/lookup.js.map +1 -1
  31. package/dist/operations/merge.js +9 -7
  32. package/dist/operations/merge.js.map +1 -1
  33. package/dist/operations/modify.js +12 -6
  34. package/dist/operations/modify.js.map +1 -1
  35. package/dist/operations/pipe.js +14 -16
  36. package/dist/operations/pipe.js.map +1 -1
  37. package/dist/operations/plug.js +1 -1
  38. package/dist/operations/plug.js.map +1 -1
  39. package/dist/operations/props.d.ts +2 -0
  40. package/dist/operations/props.js +112 -0
  41. package/dist/operations/props.js.map +1 -0
  42. package/dist/operations/root.js +3 -5
  43. package/dist/operations/root.js.map +1 -1
  44. package/dist/operations/transform.js +3 -1
  45. package/dist/operations/transform.js.map +1 -1
  46. package/dist/operations/value.js +1 -1
  47. package/dist/operations/value.js.map +1 -1
  48. package/dist/types.d.ts +13 -8
  49. package/dist/utils/array.d.ts +1 -0
  50. package/dist/utils/array.js +3 -1
  51. package/dist/utils/array.js.map +1 -1
  52. package/dist/utils/definitionHelpers.d.ts +3 -1
  53. package/dist/utils/definitionHelpers.js +46 -24
  54. package/dist/utils/definitionHelpers.js.map +1 -1
  55. package/dist/utils/stateHelpers.d.ts +18 -5
  56. package/dist/utils/stateHelpers.js +26 -10
  57. package/dist/utils/stateHelpers.js.map +1 -1
  58. package/dist/utils/xor.d.ts +1 -0
  59. package/dist/utils/xor.js +7 -0
  60. package/dist/utils/xor.js.map +1 -0
  61. package/package.json +4 -4
  62. package/dist/functions/join.d.ts +0 -7
  63. package/dist/functions/join.js +0 -12
  64. package/dist/functions/join.js.map +0 -1
  65. package/dist/operations/mutate.d.ts +0 -2
  66. package/dist/operations/mutate.js +0 -111
  67. package/dist/operations/mutate.js.map +0 -1
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const iterate_1 = require("./iterate");
4
+ const modify_1 = require("./modify");
5
+ const pipe_1 = require("./pipe");
6
+ const getSet_1 = require("./getSet");
7
+ const directionals_1 = require("./directionals");
8
+ const plug_1 = require("./plug");
9
+ const stateHelpers_1 = require("../utils/stateHelpers");
10
+ const definitionHelpers_1 = require("../utils/definitionHelpers");
11
+ const functional_1 = require("../utils/functional");
12
+ const is_1 = require("../utils/is");
13
+ const setFlipOnState = (state, flip) => flip ? { ...state, flip } : state;
14
+ function isRegularProp(entry) {
15
+ const [prop, pipeline] = entry;
16
+ return prop[0] !== '$' && (0, definitionHelpers_1.isMapDefinition)(pipeline);
17
+ }
18
+ function isWrongDirection(direction, options) {
19
+ if (direction === 'rev' ||
20
+ (options.revAlias && direction === options.revAlias)) {
21
+ return (rev = false) => !rev;
22
+ }
23
+ else if (direction === 'fwd' ||
24
+ (options.fwdAlias && direction === options.fwdAlias)) {
25
+ return (rev = false) => rev;
26
+ }
27
+ else {
28
+ return () => false;
29
+ }
30
+ }
31
+ function runOperationWithOriginalValue({ value }, options) {
32
+ return (state, fn) => {
33
+ const nextState = fn(options)(functional_1.identity)((0, stateHelpers_1.setStateValue)(state, value));
34
+ const target = state.target;
35
+ const nextValue = (0, stateHelpers_1.getStateValue)(nextState);
36
+ if ((0, is_1.isObject)(target) && (0, is_1.isObject)(nextValue)) {
37
+ const thisValue = { ...target, ...nextValue };
38
+ return (0, stateHelpers_1.setStateValue)((0, stateHelpers_1.setTargetOnState)(nextState, nextValue), thisValue);
39
+ }
40
+ else {
41
+ return (0, stateHelpers_1.setTargetOnState)(nextState, nextValue);
42
+ }
43
+ };
44
+ }
45
+ const isArr = (prop) => prop.endsWith('[]') && prop[prop.length - 3] !== '\\';
46
+ const isNumeric = (value) => !Number.isNaN(Number.parseInt(value, 10));
47
+ function removeSlash(prop) {
48
+ const index = prop.indexOf('/');
49
+ if (index > -1 &&
50
+ prop[index - 1] !== '\\' &&
51
+ isNumeric(prop.slice(index + 1))) {
52
+ return prop.slice(0, index);
53
+ }
54
+ return prop;
55
+ }
56
+ function createSetPipeline(shouldFlip) {
57
+ return ([prop, pipeline]) => {
58
+ if ((0, definitionHelpers_1.isMapObject)(pipeline)) {
59
+ pipeline = {
60
+ ...pipeline,
61
+ $iterate: pipeline.$iterate || isArr(prop),
62
+ $flip: shouldFlip,
63
+ };
64
+ }
65
+ const unslashedProp = removeSlash(prop);
66
+ const onlyRev = prop !== unslashedProp;
67
+ const operations = [(0, definitionHelpers_1.operationsFromDef)(pipeline), (0, getSet_1.set)(unslashedProp)].flat();
68
+ return onlyRev ? (0, directionals_1.divide)((0, plug_1.default)(), operations) : (0, pipe_1.default)(operations);
69
+ };
70
+ }
71
+ function modifyWithGivenPath(path, options, next) {
72
+ if (path) {
73
+ const fn = (0, modify_1.default)(path)(options)(next);
74
+ return (state, nextState) => fn((0, stateHelpers_1.setTargetOnState)(state, (0, stateHelpers_1.getStateValue)(nextState)));
75
+ }
76
+ return functional_1.identity;
77
+ }
78
+ const runOperations = (modifyFn, operations, options) => (state) => {
79
+ return (0, stateHelpers_1.isNoneValueState)(state, options.noneValues)
80
+ ? state
81
+ : modifyFn(operations.reduce(runOperationWithOriginalValue(state, options), (0, stateHelpers_1.setTargetOnState)(state, {})), state);
82
+ };
83
+ function props(def) {
84
+ if (Object.keys(def).length === 0) {
85
+ return (_options) => (next) => (state) => (0, stateHelpers_1.setStateValue)(next(state), undefined);
86
+ }
87
+ const modifyPath = def.$modify === true ? '.' : def.$modify || undefined;
88
+ const shouldIterate = def.$iterate === true;
89
+ const shouldFlip = def.$flip === true;
90
+ const direction = def.$direction;
91
+ const operations = Object.entries(def)
92
+ .filter(isRegularProp)
93
+ .map(createSetPipeline(shouldFlip));
94
+ return (options) => (next) => {
95
+ const modifyFn = modifyWithGivenPath(modifyPath, options, functional_1.identity);
96
+ const run = runOperations(modifyFn, operations, options);
97
+ const isWrongDirectionFn = isWrongDirection(direction, options);
98
+ return function doMutate(state) {
99
+ if ((0, stateHelpers_1.isNoneValueState)(state, options.noneValues) ||
100
+ isWrongDirectionFn(state.rev)) {
101
+ return state;
102
+ }
103
+ const stateWithFlip = setFlipOnState(state, shouldFlip);
104
+ const thisState = shouldIterate
105
+ ? (0, iterate_1.default)(() => () => run)(options)(next)(stateWithFlip)
106
+ : run(next(stateWithFlip));
107
+ return (0, stateHelpers_1.setValueFromState)(state, thisState);
108
+ };
109
+ };
110
+ }
111
+ exports.default = props;
112
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/operations/props.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const pipe_1 = require("./pipe");
3
4
  const definitionHelpers_1 = require("../utils/definitionHelpers");
4
- const valueFromRoot = (state) => ({ ...state, value: state.root });
5
5
  function default_1(def) {
6
- return (options) => {
7
- const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)(def)(options);
8
- return (state) => pipeline(valueFromRoot(state));
9
- };
6
+ const pipeline = ['^^', (0, definitionHelpers_1.operationsFromDef)(def)].flat();
7
+ return (0, pipe_1.default)(pipeline);
10
8
  }
11
9
  exports.default = default_1;
12
10
  //# sourceMappingURL=root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAEzE,mBAAyB,GAAkB;IACzC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,CAAC,CAAA;AACH,CAAC;AAND,4BAMC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AAAA,iCAAyB;AAEzB,kEAA8D;AAE9D,mBAAyB,GAAkB;IACzC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAA,qCAAiB,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,OAAO,IAAA,cAAI,EAAC,QAAQ,CAAC,CAAA;AACvB,CAAC;AAHD,4BAGC"}
@@ -6,7 +6,9 @@ const callTransformFn = (fn) => (state) => (0, stateHelpers_1.setStateValue)(sta
6
6
  function transform(fn, revFn) {
7
7
  const fwdTransform = typeof fn === 'function' ? callTransformFn(fn) : functional_1.identity;
8
8
  const revTransform = typeof revFn === 'function' ? callTransformFn(revFn) : fwdTransform;
9
- return (_options) => (state) => state.rev ? revTransform(state) : fwdTransform(state);
9
+ return (_options) => (next) => (state) => {
10
+ return state.rev ? revTransform(next(state)) : fwdTransform(next(state));
11
+ };
10
12
  }
11
13
  exports.default = transform;
12
14
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,oDAA8C;AAE9C,MAAM,eAAe,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAC3D,IAAA,4BAAa,EAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAEvD,SAAwB,SAAS,CAC/B,EAAc,EACd,KAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAA;IAC9E,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAErE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AACzD,CAAC;AAVD,4BAUC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,oDAA8C;AAE9C,MAAM,eAAe,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAC3D,IAAA,4BAAa,EAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAEvD,SAAwB,SAAS,CAC/B,EAAc,EACd,KAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAA;IAC9E,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAErE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAA;AACH,CAAC;AAXD,4BAWC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const value_1 = require("../functions/value");
4
4
  function value(val) {
5
- return () => (state) => ({
5
+ return () => (_next) => (state) => ({
6
6
  ...state,
7
7
  value: state.onlyMapped ? undefined : (0, value_1.extractValue)(val),
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/operations/value.ts"],"names":[],"mappings":";;AACA,8CAAiD;AAEjD,SAAwB,KAAK,CAAC,GAAY;IACxC,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,GAAG,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC;AALD,wBAKC"}
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/operations/value.ts"],"names":[],"mappings":";;AACA,8CAAiD;AAEjD,SAAwB,KAAK,CAAC,GAAY;IACxC,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,GAAG,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC;AALD,wBAKC"}
package/dist/types.d.ts CHANGED
@@ -18,13 +18,14 @@ export interface CustomFunction<T = Operands> {
18
18
  (operands: T, options: Options): DataMapper;
19
19
  }
20
20
  export interface State {
21
- root: unknown;
22
- context: unknown;
23
- target?: unknown;
21
+ context: unknown[];
24
22
  value: unknown;
23
+ target?: unknown;
25
24
  rev?: boolean;
25
+ flip?: boolean;
26
26
  onlyMapped?: boolean;
27
27
  arr?: boolean;
28
+ iterate?: boolean;
28
29
  }
29
30
  export interface Options {
30
31
  functions?: {
@@ -34,7 +35,7 @@ export interface Options {
34
35
  [key: string]: MapDefinition;
35
36
  };
36
37
  dictionaries?: Dictionaries;
37
- mutateNull?: boolean;
38
+ noneValues?: unknown[];
38
39
  fwdAlias?: string;
39
40
  revAlias?: string;
40
41
  }
@@ -48,7 +49,7 @@ export interface FilterObject extends Operands {
48
49
  $direction?: string;
49
50
  }
50
51
  export interface IfObject extends Operands {
51
- $if: string | MapDefinition;
52
+ $if: MapDefinition;
52
53
  $direction?: string;
53
54
  }
54
55
  export interface ApplyObject extends Operands {
@@ -57,7 +58,7 @@ export interface ApplyObject extends Operands {
57
58
  $direction?: string;
58
59
  }
59
60
  export interface AltObject extends Operands {
60
- $alt: string;
61
+ $alt: MapDefinition[];
61
62
  $iterate?: boolean;
62
63
  $direction?: string;
63
64
  undefined?: unknown[];
@@ -76,13 +77,17 @@ export interface OrObject extends Operands {
76
77
  export interface ConcatObject extends Operands {
77
78
  $concat: MapDefinition[];
78
79
  }
79
- export declare type OperationObject = TransformObject | FilterObject | IfObject | ApplyObject | AltObject | ValueObject | AndObject | OrObject | ConcatObject;
80
+ export interface LookupObject extends Operands {
81
+ $lookup: Path;
82
+ path: Path;
83
+ }
84
+ export declare type OperationObject = TransformObject | FilterObject | IfObject | ApplyObject | AltObject | ValueObject | AndObject | OrObject | ConcatObject | LookupObject;
80
85
  export interface StateMapper {
81
86
  (state: State): State;
82
87
  getTarget?: (state: State) => unknown;
83
88
  }
84
89
  export interface Operation {
85
- (options: Options): StateMapper;
90
+ (options: Options): (next: StateMapper) => StateMapper;
86
91
  }
87
92
  export interface MapFunction {
88
93
  (options: Options): (state: State) => State;
@@ -1,2 +1,3 @@
1
1
  export declare const ensureArray: (value: unknown) => any[];
2
2
  export declare const cloneAsArray: (value: unknown) => any[];
3
+ export declare const indexOfIfArray: (arr: unknown, index?: number) => any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cloneAsArray = exports.ensureArray = void 0;
3
+ exports.indexOfIfArray = exports.cloneAsArray = exports.ensureArray = void 0;
4
4
  const ensureArray = (value) => Array.isArray(value)
5
5
  ? value
6
6
  : value === undefined || value === null
@@ -9,4 +9,6 @@ const ensureArray = (value) => Array.isArray(value)
9
9
  exports.ensureArray = ensureArray;
10
10
  const cloneAsArray = (value) => (0, exports.ensureArray)(value).slice();
11
11
  exports.cloneAsArray = cloneAsArray;
12
+ const indexOfIfArray = (arr, index) => Array.isArray(arr) && typeof index === 'number' ? arr[index] : arr;
13
+ exports.indexOfIfArray = indexOfIfArray;
12
14
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD;AAEnE,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAc,EAAE,EAAE,CAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AADvD,QAAA,cAAc,kBACyC"}
@@ -5,4 +5,6 @@ export declare const isPath: (def: unknown) => def is string;
5
5
  export declare const isMapObject: (def: unknown) => def is MapObject;
6
6
  export declare const isMapPipe: (def: unknown) => def is MapPipe;
7
7
  export declare const isOperation: (def: unknown) => def is Operation;
8
- export declare const mapFunctionFromDef: (def?: MapDefinition | undefined) => Operation;
8
+ export declare const isMapDefinition: (def: unknown) => def is MapDefinition;
9
+ export declare const operationsFromDef: (def?: MapDefinition) => Operation[] | Operation;
10
+ export declare function operationFromDef(def?: MapDefinition): Operation;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapFunctionFromDef = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
3
+ exports.operationFromDef = exports.operationsFromDef = exports.isMapDefinition = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
4
4
  const functional_1 = require("./functional");
5
5
  const is_1 = require("./is");
6
6
  const getSet_1 = require("../operations/getSet");
7
- const mutate_1 = require("../operations/mutate");
7
+ const props_1 = require("../operations/props");
8
8
  const iterate_1 = require("../operations/iterate");
9
- const pipe_1 = require("../operations/pipe");
10
9
  const transform_1 = require("../operations/transform");
11
10
  const filter_1 = require("../operations/filter");
12
11
  const ifelse_1 = require("../operations/ifelse");
@@ -15,6 +14,9 @@ const alt_1 = require("../operations/alt");
15
14
  const directionals_1 = require("../operations/directionals");
16
15
  const logical_1 = require("../operations/logical");
17
16
  const concat_1 = require("../operations/concat");
17
+ const lookup_1 = require("../operations/lookup");
18
+ const pipe_1 = require("../operations/pipe");
19
+ const escape_1 = require("./escape");
18
20
  const transformDefFromValue = ({ $value: value, ...def }) => ({
19
21
  ...def,
20
22
  $transform: 'value',
@@ -30,7 +32,8 @@ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform
30
32
  (0, exports.isOperationType)(def, '$value') ||
31
33
  (0, exports.isOperationType)(def, '$and') ||
32
34
  (0, exports.isOperationType)(def, '$or') ||
33
- (0, exports.isOperationType)(def, '$concat');
35
+ (0, exports.isOperationType)(def, '$concat') ||
36
+ (0, exports.isOperationType)(def, '$lookup');
34
37
  exports.hasOperationProps = hasOperationProps;
35
38
  const isPath = (def) => typeof def === 'string';
36
39
  exports.isPath = isPath;
@@ -40,39 +43,45 @@ const isMapPipe = (def) => Array.isArray(def);
40
43
  exports.isMapPipe = isMapPipe;
41
44
  const isOperation = (def) => typeof def === 'function';
42
45
  exports.isOperation = isOperation;
46
+ const isMapDefinition = (def) => (0, exports.isPath)(def) || (0, is_1.isObject)(def) || (0, exports.isMapPipe)(def) || (0, exports.isOperation)(def);
47
+ exports.isMapDefinition = isMapDefinition;
43
48
  const iterateIf = (fn, should) => should ? (0, iterate_1.default)(fn) : fn;
44
49
  const wrapFromDefinition = (fn, def) => {
45
50
  const fnIterated = iterateIf(fn, def.$iterate === true);
46
- return (options) => {
51
+ return (options) => (next) => {
47
52
  const dir = def.$direction;
48
53
  if (typeof dir === 'string') {
49
54
  if (dir === 'rev' || dir === options.revAlias) {
50
- return (0, directionals_1.rev)(fnIterated)(options);
55
+ return (0, directionals_1.rev)(fnIterated)(options)(next);
51
56
  }
52
57
  else if (dir === 'fwd' || dir === options.fwdAlias) {
53
- return (0, directionals_1.fwd)(fnIterated)(options);
58
+ return (0, directionals_1.fwd)(fnIterated)(options)(next);
54
59
  }
55
60
  }
56
- return fnIterated(options);
61
+ return Array.isArray(fnIterated)
62
+ ? (0, pipe_1.default)(fnIterated)(options)(next)
63
+ : fnIterated(options)(next);
57
64
  };
58
65
  };
59
- const createOperation = (operationFn, fnProp, def) => (options) => {
66
+ const createOperation = (operationFn, fnProp, def) => (options) => (next) => {
60
67
  const { [fnProp]: fnId, ...operands } = def;
61
68
  const fn = options.functions && options.functions[fnId];
62
69
  return typeof fn === 'function'
63
- ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
64
- : functional_1.identity;
70
+ ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)(next)
71
+ : (state) => next(state);
65
72
  };
66
- const createAltOperation = (operationFn, def) => (options) => {
67
- const { $alt: fnId, $undefined: undefinedValues, ...operands } = def;
68
- const fn = options.functions && options.functions[fnId];
69
- return typeof fn === 'function'
70
- ? wrapFromDefinition(operationFn((0, transform_1.default)(fn(operands, options)), undefinedValues), def)(options)
71
- : functional_1.identity;
73
+ const setNoneValuesOnOptions = (options, noneValues) => Array.isArray(noneValues)
74
+ ? { ...options, noneValues: noneValues.map(escape_1.unescapeValue) }
75
+ : options;
76
+ const createAltOperation = (operationFn, def) => (options) => (next) => {
77
+ const { $alt: defs, $undefined: noneValues } = def;
78
+ return Array.isArray(defs)
79
+ ? wrapFromDefinition(operationFn(...defs), def)(setNoneValuesOnOptions(options, noneValues))(next)
80
+ : (state) => next(state);
72
81
  };
73
- const createIfOperation = (def) => (options) => {
74
- const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline } = def;
75
- return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options);
82
+ const createIfOperation = (def) => (options) => (next) => {
83
+ const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline, } = def;
84
+ return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options)(next);
76
85
  };
77
86
  const createApplyOperation = (operationFn, def) => {
78
87
  const pipelineId = def.$apply;
@@ -82,6 +91,11 @@ const createPipelineOperation = (operationFn, fnProp, def) => {
82
91
  const pipelines = def[fnProp];
83
92
  return operationFn(...pipelines);
84
93
  };
94
+ const createLookupOperation = (operationFn, def) => {
95
+ const arrayPath = def.$lookup;
96
+ const propPath = def.path;
97
+ return wrapFromDefinition(operationFn(arrayPath, propPath), def);
98
+ };
85
99
  const operationFromObject = (def) => {
86
100
  if ((0, exports.isOperationType)(def, '$transform')) {
87
101
  return createOperation(transform_1.default, '$transform', def);
@@ -110,12 +124,15 @@ const operationFromObject = (def) => {
110
124
  else if ((0, exports.isOperationType)(def, '$concat')) {
111
125
  return createPipelineOperation(concat_1.default, '$concat', def);
112
126
  }
127
+ else if ((0, exports.isOperationType)(def, '$lookup')) {
128
+ return createLookupOperation(lookup_1.default, def);
129
+ }
113
130
  else {
114
- return (0, mutate_1.default)(def);
131
+ return (0, props_1.default)(def);
115
132
  }
116
133
  };
117
- const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
118
- ? (0, pipe_1.default)(def)
134
+ const operationsFromDef = (def) => Array.isArray(def)
135
+ ? def.flatMap(exports.operationsFromDef)
119
136
  : (0, is_1.isObject)(def)
120
137
  ? operationFromObject(def)
121
138
  : (0, exports.isPath)(def)
@@ -123,5 +140,10 @@ const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
123
140
  : (0, exports.isOperation)(def)
124
141
  ? def
125
142
  : (_options) => functional_1.identity;
126
- exports.mapFunctionFromDef = mapFunctionFromDef;
143
+ exports.operationsFromDef = operationsFromDef;
144
+ function operationFromDef(def) {
145
+ const operations = (0, exports.operationsFromDef)(def);
146
+ return Array.isArray(operations) ? (0, pipe_1.default)(operations) : operations;
147
+ }
148
+ exports.operationFromDef = operationFromDef;
127
149
  //# sourceMappingURL=definitionHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
- import { State, Options } from '../types';
2
- export declare const setStateValue: (state: State, value: unknown) => State;
1
+ import { State } from '../types';
2
+ export declare const setStateValue: (state: State, value: unknown, shouldPushContext?: boolean) => State;
3
3
  export declare const getStateValue: (state: State) => any;
4
- export declare const setValueFromState: (state: State, { value }: State) => State;
5
- export declare const setTargetOnState: (state: State, target?: unknown) => State;
4
+ export declare const setValueFromState: (state: State, { value, context }: State, shouldSetContext?: boolean) => State;
5
+ export declare const getRootFromState: (state: State) => unknown;
6
+ export declare const getTargetFromState: (state: State) => unknown;
7
+ export declare function setTargetOnState(state: State, target: unknown): State;
8
+ export declare const getLastContext: (state: State) => unknown;
9
+ export declare const removeLastContext: (state: State) => {
10
+ context: unknown[];
11
+ value: unknown;
12
+ target?: unknown;
13
+ rev?: boolean | undefined;
14
+ flip?: boolean | undefined;
15
+ onlyMapped?: boolean | undefined;
16
+ arr?: boolean | undefined;
17
+ iterate?: boolean | undefined;
18
+ };
6
19
  export declare const populateState: ({ rev, onlyMapped }: Partial<State>) => (data: unknown) => State;
7
- export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;
20
+ export declare const isNoneValueState: (state: State, noneValues?: unknown[]) => boolean;
@@ -1,31 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shouldSkipMutation = exports.populateState = exports.setTargetOnState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
- const setStateValue = (state, value) => ({
3
+ exports.isNoneValueState = exports.populateState = exports.removeLastContext = exports.getLastContext = exports.setTargetOnState = exports.getTargetFromState = exports.getRootFromState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
+ const setStateValue = (state, value, shouldPushContext = false) => ({
5
5
  ...state,
6
+ context: shouldPushContext && state.value !== undefined
7
+ ? [...state.context, state.value]
8
+ : state.context,
6
9
  value,
7
10
  });
8
11
  exports.setStateValue = setStateValue;
9
12
  const getStateValue = (state) => state.value;
10
13
  exports.getStateValue = getStateValue;
11
- const setValueFromState = (state, { value }) => ({
14
+ const setValueFromState = (state, { value, context }, shouldSetContext = false) => ({
12
15
  ...state,
13
16
  value,
17
+ context: shouldSetContext ? context : state.context,
14
18
  });
15
19
  exports.setValueFromState = setValueFromState;
16
- const setTargetOnState = (state, target) => ({
20
+ const getRootFromState = (state) => state.context.length === 0 ? state.value : state.context[0];
21
+ exports.getRootFromState = getRootFromState;
22
+ const getTargetFromState = (state) => state.target;
23
+ exports.getTargetFromState = getTargetFromState;
24
+ function setTargetOnState(state, target) {
25
+ return {
26
+ ...state,
27
+ target,
28
+ };
29
+ }
30
+ exports.setTargetOnState = setTargetOnState;
31
+ const getLastContext = (state) => state.context[state.context.length - 1];
32
+ exports.getLastContext = getLastContext;
33
+ const removeLastContext = (state) => ({
17
34
  ...state,
18
- target,
35
+ context: state.context.slice(0, -1),
19
36
  });
20
- exports.setTargetOnState = setTargetOnState;
37
+ exports.removeLastContext = removeLastContext;
21
38
  const populateState = ({ rev = false, onlyMapped = false }) => (data) => ({
22
- root: data,
23
- context: data,
39
+ context: [],
24
40
  value: data,
25
41
  rev,
26
42
  onlyMapped,
27
43
  });
28
44
  exports.populateState = populateState;
29
- const shouldSkipMutation = ({ mutateNull = true }) => (state) => state.value === undefined || (!mutateNull && state.value === null);
30
- exports.shouldSkipMutation = shouldSkipMutation;
45
+ const isNoneValueState = (state, noneValues = [undefined]) => noneValues.includes(state.value);
46
+ exports.isNoneValueState = isNoneValueState;
31
47
  //# sourceMappingURL=stateHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AARS,QAAA,aAAa,iBAQtB;AAEG,MAAM,kBAAkB,GAC7B,CAAC,EAAE,UAAU,GAAG,IAAI,EAAW,EAAE,EAAE,CACnC,CAAC,KAAY,EAAW,EAAE,CACxB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAHzD,QAAA,kBAAkB,sBAGuC"}
1
+ {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAC3B,KAAY,EACZ,KAAc,EACd,iBAAiB,GAAG,KAAK,EAClB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,OAAO,EACL,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAC5C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO;IACnB,KAAK;CACN,CAAC,CAAA;AAXW,QAAA,aAAa,iBAWxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAC/B,KAAY,EACZ,EAAE,KAAK,EAAE,OAAO,EAAS,EACzB,gBAAgB,GAAG,KAAK,EACjB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,KAAK;IACL,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;CACpD,CAAC,CAAA;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE,CAC/C,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AADhD,QAAA,gBAAgB,oBACgC;AAEtD,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAA;AAAnD,QAAA,kBAAkB,sBAAiC;AAEhE,SAAgB,gBAAgB,CAAC,KAAY,EAAE,MAAe;IAC5D,OAAO;QACL,GAAG,KAAK;QACR,MAAM;KACP,CAAA;AACH,CAAC;AALD,4CAKC;AAEM,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAD5B,QAAA,cAAc,kBACc;AAElC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAClD,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AAPS,QAAA,aAAa,iBAOtB;AAEG,MAAM,gBAAgB,GAAG,CAC9B,KAAY,EACZ,aAAwB,CAAC,SAAS,CAAC,EACnC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAHxB,QAAA,gBAAgB,oBAGQ"}
@@ -0,0 +1 @@
1
+ export default function xor(a?: boolean, b?: boolean): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function xor(a = false, b = false) {
4
+ return a ? !b : b;
5
+ }
6
+ exports.default = xor;
7
+ //# sourceMappingURL=xor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xor.js","sourceRoot":"","sources":["../../src/utils/xor.ts"],"names":[],"mappings":";;AAAA,SAAwB,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAFD,sBAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "0.4.0-alpha.20",
3
+ "version": "0.4.0-alpha.23",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <post@kjellmorten.no>",
6
6
  "license": "ISC",
@@ -36,16 +36,16 @@
36
36
  },
37
37
  "homepage": "https://github.com/integreat-io/map-transform#readme",
38
38
  "dependencies": {
39
- "@types/mustache": "^4.1.3",
39
+ "@types/mustache": "^4.2.1",
40
40
  "ajv": "^8.11.0",
41
41
  "deepmerge": "^4.2.2",
42
42
  "map-any": "^0.2.1",
43
43
  "mustache": "^4.2.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@integreat/ts-dev-setup": "^2.3.0",
46
+ "@integreat/ts-dev-setup": "^2.3.1",
47
47
  "@types/deep-freeze": "^0.1.2",
48
- "@types/sinon": "^10.0.12",
48
+ "@types/sinon": "^10.0.13",
49
49
  "deep-freeze": "0.0.1",
50
50
  "sinon": "^14.0.0"
51
51
  }
@@ -1,7 +0,0 @@
1
- import { Operands, DataMapper } from '../types';
2
- interface Options extends Operands {
3
- path?: string | string[];
4
- sep?: string;
5
- }
6
- export default function join({ path, sep }: Options): DataMapper;
7
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pathGetter_1 = require("../utils/pathGetter");
4
- function join({ path = [], sep = ' ' }) {
5
- const getFns = [].concat(path).map(pathGetter_1.default);
6
- return (data) => {
7
- const values = getFns.map((fn) => fn(data));
8
- return values.filter((value) => typeof value !== 'undefined').join(sep);
9
- };
10
- }
11
- exports.default = join;
12
- //# sourceMappingURL=join.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/functions/join.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAOxC,SAAwB,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAW;IAC5D,MAAM,MAAM,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAExD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,CAAC,CAAA;AACH,CAAC;AAPD,uBAOC"}
@@ -1,2 +0,0 @@
1
- import { Operation, MapObject } from '../types';
2
- export default function mutate(def: MapObject): Operation;