map-transform 0.3.12 → 0.4.0-alpha.4

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 (114) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +573 -98
  3. package/dist/functions/compare.d.ts +6 -5
  4. package/dist/functions/compare.js +21 -16
  5. package/dist/functions/compare.js.map +1 -1
  6. package/dist/functions/explode.d.ts +6 -0
  7. package/dist/functions/explode.js +45 -0
  8. package/dist/functions/explode.js.map +1 -0
  9. package/dist/functions/get.d.ts +2 -2
  10. package/dist/functions/get.js +4 -2
  11. package/dist/functions/get.js.map +1 -1
  12. package/dist/functions/index.d.ts +13 -5
  13. package/dist/functions/index.js +14 -6
  14. package/dist/functions/index.js.map +1 -1
  15. package/dist/functions/join.d.ts +2 -2
  16. package/dist/functions/join.js +1 -1
  17. package/dist/functions/join.js.map +1 -1
  18. package/dist/functions/joinSplit.d.ts +8 -0
  19. package/dist/functions/joinSplit.js +33 -0
  20. package/dist/functions/joinSplit.js.map +1 -0
  21. package/dist/functions/logical.d.ts +7 -0
  22. package/dist/functions/logical.js +28 -0
  23. package/dist/functions/logical.js.map +1 -0
  24. package/dist/functions/map.d.ts +8 -0
  25. package/dist/functions/map.js +43 -0
  26. package/dist/functions/map.js.map +1 -0
  27. package/dist/functions/not.d.ts +2 -2
  28. package/dist/functions/not.js.map +1 -1
  29. package/dist/functions/template.d.ts +7 -0
  30. package/dist/functions/template.js +29 -0
  31. package/dist/functions/template.js.map +1 -0
  32. package/dist/functions/validate.d.ts +2 -2
  33. package/dist/functions/validate.js +1 -1
  34. package/dist/functions/validate.js.map +1 -1
  35. package/dist/functions/value.d.ts +4 -0
  36. package/dist/functions/value.js +20 -0
  37. package/dist/functions/value.js.map +1 -0
  38. package/dist/index.d.ts +8 -8
  39. package/dist/index.js +29 -12
  40. package/dist/index.js.map +1 -1
  41. package/dist/operations/alt.js +4 -9
  42. package/dist/operations/alt.js.map +1 -1
  43. package/dist/operations/apply.d.ts +2 -0
  44. package/dist/operations/apply.js +15 -0
  45. package/dist/operations/apply.js.map +1 -0
  46. package/dist/operations/concat.js +4 -4
  47. package/dist/operations/concat.js.map +1 -1
  48. package/dist/operations/directionals.d.ts +1 -1
  49. package/dist/operations/directionals.js +5 -5
  50. package/dist/operations/directionals.js.map +1 -1
  51. package/dist/operations/filter.d.ts +2 -2
  52. package/dist/operations/filter.js +6 -3
  53. package/dist/operations/filter.js.map +1 -1
  54. package/dist/operations/fixed.d.ts +2 -2
  55. package/dist/operations/fixed.js +5 -1
  56. package/dist/operations/fixed.js.map +1 -1
  57. package/dist/operations/getSet.js +17 -24
  58. package/dist/operations/getSet.js.map +1 -1
  59. package/dist/operations/ifelse.d.ts +2 -0
  60. package/dist/operations/ifelse.js +18 -0
  61. package/dist/operations/ifelse.js.map +1 -0
  62. package/dist/operations/iterate.d.ts +2 -0
  63. package/dist/operations/iterate.js +23 -0
  64. package/dist/operations/iterate.js.map +1 -0
  65. package/dist/operations/lookup.js +3 -3
  66. package/dist/operations/lookup.js.map +1 -1
  67. package/dist/operations/merge.d.ts +2 -0
  68. package/dist/operations/merge.js +20 -0
  69. package/dist/operations/merge.js.map +1 -0
  70. package/dist/operations/modify.d.ts +2 -0
  71. package/dist/operations/modify.js +18 -0
  72. package/dist/operations/modify.js.map +1 -0
  73. package/dist/operations/mutate.js +48 -8
  74. package/dist/operations/mutate.js.map +1 -1
  75. package/dist/operations/pipe.js +9 -5
  76. package/dist/operations/pipe.js.map +1 -1
  77. package/dist/operations/plug.js +1 -1
  78. package/dist/operations/plug.js.map +1 -1
  79. package/dist/operations/root.js +2 -2
  80. package/dist/operations/root.js.map +1 -1
  81. package/dist/operations/transform.js +2 -2
  82. package/dist/operations/transform.js.map +1 -1
  83. package/dist/operations/value.d.ts +2 -2
  84. package/dist/operations/value.js +5 -1
  85. package/dist/operations/value.js.map +1 -1
  86. package/dist/types.d.ts +46 -21
  87. package/dist/utils/definitionHelpers.d.ts +7 -8
  88. package/dist/utils/definitionHelpers.js +60 -43
  89. package/dist/utils/definitionHelpers.js.map +1 -1
  90. package/dist/utils/functional.d.ts +2 -0
  91. package/dist/utils/functional.js +8 -0
  92. package/dist/utils/functional.js.map +1 -0
  93. package/dist/utils/is.d.ts +1 -0
  94. package/dist/utils/is.js +6 -0
  95. package/dist/utils/is.js.map +1 -0
  96. package/dist/utils/pathGetter.d.ts +2 -2
  97. package/dist/utils/pathGetter.js +23 -9
  98. package/dist/utils/pathGetter.js.map +1 -1
  99. package/dist/utils/pathSetter.d.ts +3 -3
  100. package/dist/utils/pathSetter.js +19 -22
  101. package/dist/utils/pathSetter.js.map +1 -1
  102. package/dist/utils/stateHelpers.d.ts +7 -36
  103. package/dist/utils/stateHelpers.js +21 -11
  104. package/dist/utils/stateHelpers.js.map +1 -1
  105. package/package.json +17 -54
  106. package/dist/functions/alt.d.ts +0 -6
  107. package/dist/functions/alt.js +0 -10
  108. package/dist/functions/alt.js.map +0 -1
  109. package/dist/functions/exclude.d.ts +0 -7
  110. package/dist/functions/exclude.js +0 -16
  111. package/dist/functions/exclude.js.map +0 -1
  112. package/dist/utils/objectToMapFunction.d.ts +0 -2
  113. package/dist/utils/objectToMapFunction.js +0 -34
  114. package/dist/utils/objectToMapFunction.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":";;AAAA,iCAA+B;AAE/B,wDAAqE;AACrE,kEAA+D;AAE/D,SAAwB,IAAI,CAAE,IAAa;IACzC,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sCAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,yBAAU,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,UAAU,GAAG,yBAAU,CAAC,eAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAE3C,OAAO,CAAC,KAAY,EAAE,EAAE,CAAC,gCAAiB,CACxC,KAAK,EACL,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CACjD,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAXD,uBAWC"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":";;AACA,oDAA6D;AAC7D,wDAAyD;AACzD,kEAA+D;AAE/D,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IACnC,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,KAAK;CACrB,CAAC,CAAA;AAEF,SAAwB,IAAI,CAAC,IAAa;IACxC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,IAAA,iBAAM,EAAC,GAAG,GAAG,CAAC,CAAA;QAC9B,MAAM,UAAU,GAAG,IAAA,oBAAO,EAAC,GAAG,GAAG,CAAC,CAAA;QAElC,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,gCAAiB,EACf,KAAK,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACrE,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAZD,uBAYC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const stateHelpers_1 = require("../utils/stateHelpers");
4
4
  function plug() {
5
- return () => (state) => stateHelpers_1.setStateValue(state, undefined);
5
+ return () => (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
6
6
  }
7
7
  exports.default = plug;
8
8
  //# sourceMappingURL=plug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plug.js","sourceRoot":"","sources":["../../src/operations/plug.ts"],"names":[],"mappings":";;AACA,wDAAqD;AAErD,SAAwB,IAAI;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,4BAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAChE,CAAC;AAFD,uBAEC"}
1
+ {"version":3,"file":"plug.js","sourceRoot":"","sources":["../../src/operations/plug.ts"],"names":[],"mappings":";;AACA,wDAAqD;AAErD,SAAwB,IAAI;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AACzD,CAAC;AAFD,uBAEC"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const definitionHelpers_1 = require("../utils/definitionHelpers");
4
4
  function default_1(def) {
5
5
  return (options) => {
6
- const pipeline = definitionHelpers_1.mapFunctionFromDef(def, options);
7
- return (state) => pipeline(Object.assign(Object.assign({}, state), { value: state.root }));
6
+ const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)(def)(options);
7
+ return (state) => pipeline({ ...state, value: state.root });
8
8
  };
9
9
  }
10
10
  exports.default = default_1;
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,mBAAyB,GAAkB;IACzC,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,sCAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAEjD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,iCAAM,KAAK,KAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAG,CAAA;IAC7D,CAAC,CAAA;AACH,CAAC;AAND,4BAMC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,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,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAA;AACH,CAAC;AAND,4BAMC"}
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ramda_1 = require("ramda");
4
4
  const stateHelpers_1 = require("../utils/stateHelpers");
5
- const callTransformFn = (fn) => (state) => stateHelpers_1.setStateValue(state, fn(stateHelpers_1.getStateValue(state), stateHelpers_1.contextFromState(state)));
5
+ const callTransformFn = (fn) => (state) => (0, stateHelpers_1.setStateValue)(state, fn((0, stateHelpers_1.getStateValue)(state), (0, stateHelpers_1.contextFromState)(state)));
6
6
  function transform(fn, revFn) {
7
7
  const fwdTransform = typeof fn === 'function' ? callTransformFn(fn) : ramda_1.identity;
8
8
  const revTransform = typeof revFn === 'function' ? callTransformFn(revFn) : fwdTransform;
9
- return () => state => (state.rev ? revTransform(state) : fwdTransform(state));
9
+ return (_options) => (state) => state.rev ? revTransform(state) : fwdTransform(state);
10
10
  }
11
11
  exports.default = transform;
12
12
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAEhC,wDAI8B;AAE9B,MAAM,eAAe,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAC3D,4BAAa,CAAC,KAAK,EAAE,EAAE,CAAC,4BAAa,CAAC,KAAK,CAAC,EAAE,+BAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAEzE,SAAwB,SAAS,CAC/B,EAAc,EACd,KAAkB;IAElB,MAAM,YAAY,GACf,OAAO,EAAU,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAQ,CAAA;IACpE,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAErE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/E,CAAC;AAVD,4BAUC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/operations/transform.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAEhC,wDAI8B;AAE9B,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,IAAA,+BAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAEzE,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,gBAAQ,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,2 +1,2 @@
1
- import { Data, Operation } from '../types';
2
- export default function value(val: Data): Operation;
1
+ import { Operation } from '../types';
2
+ export default function value(val: unknown): Operation;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const value_1 = require("../functions/value");
3
4
  function value(val) {
4
- return () => (state) => (Object.assign(Object.assign({}, state), { value: (state.onlyMapped) ? undefined : val }));
5
+ return () => (state) => ({
6
+ ...state,
7
+ value: state.onlyMapped ? undefined : (0, value_1.extractValue)(val),
8
+ });
5
9
  }
6
10
  exports.default = value;
7
11
  //# sourceMappingURL=value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/operations/value.ts"],"names":[],"mappings":";;AAEA,SAAwB,KAAK,CAAE,GAAS;IACtC,OAAO,GAAG,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,iCAC1B,KAAK,KACR,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAC3C,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;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"}
package/dist/types.d.ts CHANGED
@@ -1,43 +1,64 @@
1
- export interface ObjectWithProps {
2
- [key: string]: Data;
3
- }
4
- export declare type Prop = string | number | boolean | object | null | undefined | ObjectWithProps;
5
- export declare type Data = Prop | Prop[];
6
1
  export declare type Path = string;
2
+ export declare type DictionaryValue = string | number | boolean | null | undefined;
3
+ export declare type DictionaryTuple = readonly [DictionaryValue, DictionaryValue];
4
+ export declare type Dictionary = DictionaryTuple[];
5
+ export interface Dictionaries {
6
+ [key: string]: Dictionary;
7
+ }
8
+ export interface ValueFunction {
9
+ (): any;
10
+ }
7
11
  export interface Operands {
8
- [key: string]: Data;
12
+ [key: string]: any | ValueFunction;
9
13
  }
10
14
  export interface Context {
11
15
  rev: boolean;
12
16
  onlyMappedValues: boolean;
13
17
  }
14
- export interface DataMapper<U = Data, V = Data | boolean> {
15
- (data: U, context: Context): V;
18
+ export interface DataMapper {
19
+ (data: unknown, context: Context): any;
16
20
  }
17
- export interface CustomFunction<T = Operands, U = Data, V = Data | boolean> {
18
- (operands: T): DataMapper<U, V>;
19
- }
20
- export interface CustomFunctions {
21
- [key: string]: CustomFunction;
21
+ export interface CustomFunction<T = Operands> {
22
+ (operands: T, options: Options): DataMapper;
22
23
  }
23
24
  export interface State {
24
- root: Data;
25
- context: Data;
26
- value: Data;
25
+ root: unknown;
26
+ context: unknown;
27
+ value: unknown;
27
28
  rev?: boolean;
28
29
  onlyMapped?: boolean;
29
30
  arr?: boolean;
30
31
  }
31
32
  export interface Options {
32
- customFunctions?: CustomFunctions;
33
+ functions?: {
34
+ [key: string]: CustomFunction;
35
+ };
36
+ pipelines?: {
37
+ [key: string]: MapDefinition;
38
+ };
39
+ dictionaries?: Dictionaries;
40
+ mutateNull?: boolean;
33
41
  }
34
42
  export interface TransformObject extends Operands {
35
43
  $transform: string;
44
+ $iterate?: boolean;
45
+ $direction?: string;
36
46
  }
37
47
  export interface FilterObject extends Operands {
38
48
  $filter: string;
49
+ $direction?: string;
50
+ }
51
+ export interface ApplyObject extends Operands {
52
+ $apply: string;
53
+ $iterate?: boolean;
54
+ $direction?: string;
55
+ }
56
+ export interface AltObject extends Operands {
57
+ $alt: string;
58
+ $iterate?: boolean;
59
+ $direction?: string;
39
60
  }
40
- export declare type OperationObject = TransformObject | FilterObject;
61
+ export declare type OperationObject = TransformObject | FilterObject | ApplyObject | AltObject;
41
62
  export interface StateMapper {
42
63
  (state: State): State;
43
64
  }
@@ -50,14 +71,18 @@ export interface MapFunction {
50
71
  declare type MapPipeSimple = (MapObject | Operation | OperationObject | Path)[];
51
72
  export declare type MapPipe = (MapObject | Operation | OperationObject | Path | MapPipeSimple)[];
52
73
  export interface MapObject {
53
- [key: string]: MapDefinition | undefined;
74
+ [key: string]: MapDefinition | undefined | boolean;
75
+ $iterate?: boolean;
76
+ $flip?: boolean;
54
77
  $transform?: undefined;
55
78
  $filter?: undefined;
79
+ $apply?: undefined;
80
+ $alt?: undefined;
56
81
  }
57
82
  export declare type MapDefinition = MapObject | Operation | OperationObject | MapPipe | Path | null;
58
83
  export interface MapTransformWithOnlyMappedValues {
59
- (data: Data): Data;
60
- onlyMappedValues: (data: Data) => Data;
84
+ (data: unknown): any;
85
+ onlyMappedValues: (data: unknown) => any;
61
86
  }
62
87
  export interface MapTransform extends MapTransformWithOnlyMappedValues {
63
88
  rev: MapTransformWithOnlyMappedValues;
@@ -1,9 +1,8 @@
1
- import { Operation, StateMapper, MapDefinition, MapObject, MapPipe, OperationObject, TransformObject, FilterObject, Options } from '../types';
2
- export declare const hasTransformProp: (def: MapObject | OperationObject) => def is TransformObject;
3
- export declare const hasFilterProp: (def: MapObject | OperationObject) => def is FilterObject;
1
+ import { Operation, MapDefinition, MapObject, MapPipe, OperationObject } from '../types';
2
+ export declare const isOperationType: <T extends OperationObject>(def: MapObject | OperationObject, prop: string) => def is T;
4
3
  export declare const hasOperationProps: (def: MapObject | OperationObject) => def is OperationObject;
5
- export declare const isPath: (def: any) => def is string;
6
- export declare const isMapObject: (def: any) => def is MapObject;
7
- export declare const isMapPipe: (def: any) => def is MapPipe;
8
- export declare const isOperation: (def: any) => def is Operation;
9
- export declare const mapFunctionFromDef: (def: MapDefinition, options: Options) => StateMapper;
4
+ export declare const isPath: (def: unknown) => def is string;
5
+ export declare const isMapObject: (def: unknown) => def is MapObject;
6
+ export declare const isMapPipe: (def: unknown) => def is MapPipe;
7
+ export declare const isOperation: (def: unknown) => def is Operation;
8
+ export declare const mapFunctionFromDef: (def?: MapDefinition | undefined) => Operation;
@@ -1,61 +1,78 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.mapFunctionFromDef = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.hasFilterProp = exports.hasTransformProp = void 0;
3
+ exports.mapFunctionFromDef = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
15
4
  const ramda_1 = require("ramda");
16
5
  const getSet_1 = require("../operations/getSet");
17
6
  const mutate_1 = require("../operations/mutate");
7
+ const iterate_1 = require("../operations/iterate");
18
8
  const pipe_1 = require("../operations/pipe");
19
9
  const transform_1 = require("../operations/transform");
20
10
  const filter_1 = require("../operations/filter");
11
+ const apply_1 = require("../operations/apply");
12
+ const alt_1 = require("../operations/alt");
13
+ const directionals_1 = require("../operations/directionals");
14
+ const altOperation = (fn) => (0, alt_1.default)((0, transform_1.default)(fn));
21
15
  const isObject = (def) => typeof def === 'object' && def !== null && !Array.isArray(def);
22
- exports.hasTransformProp = (def) => typeof def['$transform'] !== 'undefined';
23
- exports.hasFilterProp = (def) => typeof def['$filter'] !== 'undefined';
24
- exports.hasOperationProps = (def) => exports.hasTransformProp(def) || exports.hasFilterProp(def);
25
- exports.isPath = (def) => typeof def === 'string';
26
- exports.isMapObject = (def) => isObject(def) && !exports.hasOperationProps(def);
27
- exports.isMapPipe = (def) => Array.isArray(def);
28
- exports.isOperation = (def) => typeof def === 'function';
29
- const getOperationFunction = (fnId, customFunctions) => fnId &&
30
- customFunctions &&
31
- typeof customFunctions[fnId] === 'function'
32
- ? customFunctions[fnId]
33
- : undefined;
34
- const createOperation = (operationFn, fnId, _a, options) => {
35
- var { $transform: transformFn, $filter: filterFn } = _a, operands = __rest(_a, ["$transform", "$filter"]);
36
- const fn = getOperationFunction(fnId, options.customFunctions);
37
- return typeof fn !== 'undefined'
38
- ? operationFn(fn(operands))(options)
16
+ const isOperationType = (def, prop) => typeof def[prop] !== 'undefined';
17
+ exports.isOperationType = isOperationType;
18
+ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform') ||
19
+ (0, exports.isOperationType)(def, '$filter') ||
20
+ (0, exports.isOperationType)(def, '$apply') ||
21
+ (0, exports.isOperationType)(def, '$alt');
22
+ exports.hasOperationProps = hasOperationProps;
23
+ const isPath = (def) => typeof def === 'string';
24
+ exports.isPath = isPath;
25
+ const isMapObject = (def) => isObject(def) && !(0, exports.hasOperationProps)(def);
26
+ exports.isMapObject = isMapObject;
27
+ const isMapPipe = (def) => Array.isArray(def);
28
+ exports.isMapPipe = isMapPipe;
29
+ const isOperation = (def) => typeof def === 'function';
30
+ exports.isOperation = isOperation;
31
+ const iterateIf = (fn, should) => should ? (0, iterate_1.default)(fn) : fn;
32
+ const wrapFromDefinition = (fn, def) => {
33
+ const fnIterated = iterateIf(fn, def.$iterate === true);
34
+ return def.$direction === 'rev'
35
+ ? (0, directionals_1.rev)(fnIterated)
36
+ : def.$direction === 'fwd'
37
+ ? (0, directionals_1.fwd)(fnIterated)
38
+ : fnIterated;
39
+ };
40
+ const createOperation = (operationFn, fnProp, def) => (options) => {
41
+ const { [fnProp]: fnId, ...operands } = def;
42
+ const fn = options.functions && options.functions[fnId];
43
+ return typeof fn === 'function'
44
+ ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
39
45
  : ramda_1.identity;
40
46
  };
41
- const operationFromObject = (def, options) => {
42
- if (exports.hasTransformProp(def)) {
43
- return createOperation(transform_1.default, def['$transform'], def, options);
47
+ const createApplyOperation = (operationFn, def) => {
48
+ const pipelineId = def.$apply;
49
+ return wrapFromDefinition(operationFn(pipelineId), def);
50
+ };
51
+ const operationFromObject = (def) => {
52
+ if ((0, exports.isOperationType)(def, '$transform')) {
53
+ return createOperation(transform_1.default, '$transform', def);
54
+ }
55
+ else if ((0, exports.isOperationType)(def, '$filter')) {
56
+ return createOperation(filter_1.default, '$filter', def);
57
+ }
58
+ else if ((0, exports.isOperationType)(def, '$apply')) {
59
+ return createApplyOperation(apply_1.default, def);
44
60
  }
45
- else if (exports.hasFilterProp(def)) {
46
- return createOperation(filter_1.default, def['$filter'], def, options);
61
+ else if ((0, exports.isOperationType)(def, '$alt')) {
62
+ return createOperation(altOperation, '$alt', def);
47
63
  }
48
64
  else {
49
- return mutate_1.default(def)(options);
65
+ return (0, mutate_1.default)(def);
50
66
  }
51
67
  };
52
- exports.mapFunctionFromDef = (def, options) => exports.isMapPipe(def)
53
- ? pipe_1.default(def)(options)
68
+ const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
69
+ ? (0, pipe_1.default)(def)
54
70
  : isObject(def)
55
- ? operationFromObject(def, options)
56
- : exports.isPath(def)
57
- ? getSet_1.get(def)(options)
58
- : exports.isOperation(def)
59
- ? def(options)
60
- : ramda_1.identity;
71
+ ? operationFromObject(def)
72
+ : (0, exports.isPath)(def)
73
+ ? (0, getSet_1.get)(def)
74
+ : (0, exports.isOperation)(def)
75
+ ? def
76
+ : (_options) => ramda_1.identity;
77
+ exports.mapFunctionFromDef = mapFunctionFromDef;
61
78
  //# 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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"}
@@ -0,0 +1,2 @@
1
+ export declare const compose: <R>(...fns: ((a: R) => R)[]) => (a: R) => R;
2
+ export declare const pipe: <R>(...fns: ((a: R) => R)[]) => (a: R) => R;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipe = exports.compose = void 0;
4
+ const compose = (...fns) => fns.reduceRight((f, g) => (...args) => g(f(...args)));
5
+ exports.compose = compose;
6
+ const pipe = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
7
+ exports.pipe = pipe;
8
+ //# sourceMappingURL=functional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../src/utils/functional.ts"],"names":[],"mappings":";;;AAIO,MAAM,OAAO,GAAG,CAAI,GAAG,GAAoB,EAAiB,EAAE,CACnE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAD1C,QAAA,OAAO,WACmC;AAEhD,MAAM,IAAI,GAAG,CAAI,GAAG,GAAoB,EAAiB,EAAE,CAChE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AADrC,QAAA,IAAI,QACiC"}
@@ -0,0 +1 @@
1
+ export declare const isObject: (value: unknown) => value is Record<string, unknown>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = void 0;
4
+ const isObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
5
+ exports.isObject = isObject;
6
+ //# sourceMappingURL=is.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AADhD,QAAA,QAAQ,YACwC"}
@@ -1,3 +1,3 @@
1
- import { Data, Path } from '../types';
2
- export declare type GetFunction = (object?: Data | null) => Data;
1
+ import { Path } from '../types';
2
+ export declare type GetFunction = (object?: unknown) => any;
3
3
  export default function pathGetter(path: Path | null): GetFunction;
@@ -1,20 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const R = require("ramda");
4
+ const definitionHelpers_1 = require("./definitionHelpers");
5
+ const is_1 = require("../utils/is");
4
6
  const numberOrString = (val) => {
5
7
  const num = Number.parseInt(val, 10);
6
- return (Number.isNaN(num)) ? val : num;
8
+ return Number.isNaN(num) ? val : num;
7
9
  };
8
- const split = (str) => str.split(/\[|]?\.|]/).filter((str) => str !== '').map(numberOrString);
9
- const getProp = (prop) => (object) => (object) ? object[prop] : undefined;
10
- const getArrayIndex = (index) => (arr) => (Array.isArray(arr)) ? arr[index] : undefined;
11
- const getObjectOrArray = (fn) => (object) => (Array.isArray(object)) ? R.flatten(object.map(fn)) : fn(object);
12
- const getter = (prop) => (typeof prop === 'number') ? getArrayIndex(prop) : getObjectOrArray(getProp(prop));
10
+ const split = (str) => str
11
+ .split(/\[|]?\.|]/)
12
+ .filter((str) => str !== '')
13
+ .map(numberOrString);
14
+ const getProp = (prop) => (object) => (0, is_1.isObject)(object) ? object[prop] : undefined;
15
+ const getArrayIndex = (index) => (arr) => Array.isArray(arr) ? arr[index] : undefined;
16
+ const getObjectOrArray = (fn) => (object) => Array.isArray(object) ? R.flatten(object.map(fn)) : fn(object);
17
+ const getter = (prop) => typeof prop === 'number'
18
+ ? getArrayIndex(prop)
19
+ : getObjectOrArray(getProp(prop));
13
20
  const getGetters = R.compose(R.ifElse(R.isEmpty, R.always(R.identity), R.apply(R.pipe)), R.map(getter), split);
21
+ const ensureArray = (value) => Array.isArray(value)
22
+ ? value
23
+ : value === null || typeof value === 'undefined'
24
+ ? []
25
+ : [value];
14
26
  function pathGetter(path) {
15
- return (path)
16
- ? getGetters(path)
17
- : R.identity;
27
+ if ((0, definitionHelpers_1.isPath)(path)) {
28
+ const fn = getGetters(path);
29
+ return path.includes('[]') ? R.compose(ensureArray, fn) : fn;
30
+ }
31
+ return R.identity;
18
32
  }
19
33
  exports.default = pathGetter;
20
34
  //# sourceMappingURL=pathGetter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AAAA,2BAA0B;AAG1B,MAAM,cAAc,GAAG,CAAC,GAAW,EAAmB,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAC,GAAS,EAAuB,EAAE,CAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAExE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAwB,EAAE,EAAE,CAC7D,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAErC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAU,EAAE,EAAE,CACtD,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE/C,MAAM,gBAAgB,GAAG,CAAC,EAAqC,EAAE,EAAE,CACjE,CAAC,MAAwB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;AAEhG,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,EAAE,CACvC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpF,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAC1B,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EACpB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAChB,EACD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EACb,KAAK,CACN,CAAA;AAaD,SAAwB,UAAU,CAAE,IAAiB;IACnD,OAAO,CAAC,IAAI,CAAC;QACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAChB,CAAC;AAJD,6BAIC"}
1
+ {"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AACA,2BAA2B;AAE3B,2DAA4C;AAC5C,oCAAsC;AAEtC,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,KAAK,GAAG,CAAC,GAAS,EAAuB,EAAE,CAC/C,GAAG;KACA,KAAK,CAAC,WAAW,CAAC;KAClB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;KAC3B,GAAG,CAAC,cAAc,CAAC,CAAA;AAExB,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,GAAG,CAAC,EAA4B,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CAC7E,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;AAEhE,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,EAAE,CACvC,OAAO,IAAI,KAAK,QAAQ;IACtB,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAErC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAC1B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EACb,KAAK,CACN,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW;QAChD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAab,SAAwB,UAAU,CAAC,IAAiB;IAClD,IAAI,IAAA,0BAAM,EAAC,IAAI,CAAC,EAAE;QAChB,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;KAC7D;IACD,OAAO,CAAC,CAAC,QAAQ,CAAA;AACnB,CAAC;AAND,6BAMC"}
@@ -1,4 +1,4 @@
1
- import { Data, Path } from '../types';
2
- export declare const merge: (left: unknown, right: unknown) => any;
3
- export declare type SetFunction = (value: Data, object?: Data) => Data;
1
+ import { Path } from '../types';
2
+ export declare function mergeExisting<T, U>(left: T[], right: U | U[]): U | (U | T | (U & T))[];
3
+ export declare type SetFunction = (value: unknown, object?: unknown) => any;
4
4
  export default function pathSetter(path: Path): SetFunction;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.merge = void 0;
3
+ exports.mergeExisting = void 0;
4
4
  const ramda_1 = require("ramda");
5
+ const functional_1 = require("./functional");
5
6
  const preparePathPart = (part, isAfterOpenArray) => isAfterOpenArray ? `]${part}` : part;
6
7
  const pathSplitter = function* (path) {
7
8
  const regEx = /([^[\].]+|\[\w*])/g;
@@ -16,8 +17,10 @@ const pathSplitter = function* (path) {
16
17
  } while (match !== null);
17
18
  };
18
19
  const split = (path) => [...pathSplitter(path)];
19
- const setOnObject = (prop) => (value) => ({ [prop]: value });
20
- const setOnOpenArray = (value) => (Array.isArray(value) ? value : [value]);
20
+ const setOnObject = (prop) => (value) => ({
21
+ [prop]: value,
22
+ });
23
+ const setOnOpenArray = (value) => Array.isArray(value) ? value : typeof value === 'undefined' ? [] : [value];
21
24
  const setOnArrayIndex = (index, value) => {
22
25
  const arr = [];
23
26
  arr[index] = value;
@@ -38,31 +41,25 @@ const setter = (prop) => {
38
41
  return setOnObject(prop);
39
42
  }
40
43
  };
41
- const ensureArray = (value) => (Array.isArray(value) ? value : [value]);
42
- const isObject = (value) => typeof value === 'object' && value !== null;
43
- const mergeArrays = (left, right) => right.reduce((arr, value, index) => {
44
- arr[index] = exports.merge(left[index], value);
45
- return arr;
46
- }, left);
47
- const mergeExisting = (left, right) => Array.isArray(right) ? mergeArrays(ensureArray(left), right) : right;
48
- exports.merge = (left, right) => left === undefined || right === undefined
49
- ? right === undefined
50
- ? left
51
- : right
52
- : Array.isArray(right)
53
- ? mergeArrays(ensureArray(left), right)
54
- : isObject(right)
55
- ? ramda_1.mergeDeepWith(mergeExisting, left, right)
56
- : right;
44
+ function mergeExisting(left, right) {
45
+ if (Array.isArray(right)) {
46
+ return right.reduce((arr, value, index) => {
47
+ arr[index] = (0, ramda_1.mergeDeepWith)(mergeExisting, left[index], value);
48
+ return arr;
49
+ }, left);
50
+ }
51
+ return right;
52
+ }
53
+ exports.mergeExisting = mergeExisting;
57
54
  function pathSetter(path) {
58
55
  const setters = split(path).map(setter);
59
56
  if (setters.length === 0) {
60
57
  return ramda_1.identity;
61
58
  }
62
- const setterFn = ramda_1.apply(ramda_1.compose, setters);
63
- return (value, object) => {
59
+ const setterFn = (0, functional_1.compose)(...setters);
60
+ return (value, object = null) => {
64
61
  const data = setterFn(value);
65
- return exports.merge(object, data);
62
+ return object ? (0, ramda_1.mergeDeepWith)(mergeExisting, object, data) : data;
66
63
  };
67
64
  }
68
65
  exports.default = pathSetter;
@@ -1 +1 @@
1
- {"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,7 @@
1
- import { State, StateMapper, Data } from '../types';
2
- export declare const setStateValue: (state: State, value: Data) => State;
3
- export declare const getStateValue: (state: State) => Data;
4
- export declare const setValueFromState: (state: State, { value }: State) => {
5
- value: Data;
6
- root: Data;
7
- context: Data;
8
- rev?: boolean | undefined;
9
- onlyMapped?: boolean | undefined;
10
- arr?: boolean | undefined;
11
- };
12
- export declare const liftState: (state: State) => {
13
- context: Data;
14
- value: undefined;
15
- arr: boolean;
16
- root: Data;
17
- rev?: boolean | undefined;
18
- onlyMapped?: boolean | undefined;
19
- };
20
- export declare const lowerState: (state: State) => {
21
- value: Data;
22
- root: Data;
23
- context: Data;
24
- rev?: boolean | undefined;
25
- onlyMapped?: boolean | undefined;
26
- arr?: boolean | undefined;
27
- };
28
- export declare const contextFromState: ({ rev, onlyMapped }: State) => {
29
- rev: boolean;
30
- onlyMappedValues: boolean;
31
- };
32
- export declare const pipeMapFns: (fns: StateMapper[]) => (state: State) => State;
33
- export declare const populateState: ({ rev, onlyMapped }: {
34
- rev?: boolean | undefined;
35
- onlyMapped?: boolean | undefined;
36
- }) => (data: Data) => State;
1
+ import { State, Options, Context } from '../types';
2
+ export declare const setStateValue: (state: State, value: unknown) => State;
3
+ export declare const getStateValue: (state: State) => any;
4
+ export declare const setValueFromState: (state: State, { value }: State) => State;
5
+ export declare const contextFromState: ({ rev, onlyMapped, }: State) => Context;
6
+ export declare const populateState: ({ rev, onlyMapped, }: Partial<State>) => (data: unknown) => State;
7
+ export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;