map-transform 0.4.0-alpha.2 → 0.4.0-alpha.22

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 (112) hide show
  1. package/README.md +206 -46
  2. package/dist/functions/compare.d.ts +2 -1
  3. package/dist/functions/compare.js +26 -5
  4. package/dist/functions/compare.js.map +1 -1
  5. package/dist/functions/explode.d.ts +2 -1
  6. package/dist/functions/explode.js +12 -4
  7. package/dist/functions/explode.js.map +1 -1
  8. package/dist/functions/index.d.ts +6 -1
  9. package/dist/functions/index.js +6 -1
  10. package/dist/functions/index.js.map +1 -1
  11. package/dist/functions/joinSplit.js +4 -5
  12. package/dist/functions/joinSplit.js.map +1 -1
  13. package/dist/functions/logical.d.ts +7 -0
  14. package/dist/functions/logical.js +24 -0
  15. package/dist/functions/logical.js.map +1 -0
  16. package/dist/functions/map.js +5 -4
  17. package/dist/functions/map.js.map +1 -1
  18. package/dist/functions/not.js +1 -1
  19. package/dist/functions/not.js.map +1 -1
  20. package/dist/functions/sort.d.ts +7 -0
  21. package/dist/functions/sort.js +33 -0
  22. package/dist/functions/sort.js.map +1 -0
  23. package/dist/functions/template.js +7 -5
  24. package/dist/functions/template.js.map +1 -1
  25. package/dist/functions/validate.js +2 -2
  26. package/dist/functions/validate.js.map +1 -1
  27. package/dist/functions/value.js +2 -2
  28. package/dist/functions/value.js.map +1 -1
  29. package/dist/index.d.ts +3 -1
  30. package/dist/index.js +9 -6
  31. package/dist/index.js.map +1 -1
  32. package/dist/operations/alt.d.ts +1 -1
  33. package/dist/operations/alt.js +25 -6
  34. package/dist/operations/alt.js.map +1 -1
  35. package/dist/operations/apply.js +3 -4
  36. package/dist/operations/apply.js.map +1 -1
  37. package/dist/operations/concat.js +9 -5
  38. package/dist/operations/concat.js.map +1 -1
  39. package/dist/operations/directionals.js +7 -6
  40. package/dist/operations/directionals.js.map +1 -1
  41. package/dist/operations/filter.js +10 -9
  42. package/dist/operations/filter.js.map +1 -1
  43. package/dist/operations/fixed.js +1 -1
  44. package/dist/operations/fixed.js.map +1 -1
  45. package/dist/operations/getSet.d.ts +3 -3
  46. package/dist/operations/getSet.js +135 -25
  47. package/dist/operations/getSet.js.map +1 -1
  48. package/dist/operations/ifelse.d.ts +1 -1
  49. package/dist/operations/ifelse.js +21 -8
  50. package/dist/operations/ifelse.js.map +1 -1
  51. package/dist/operations/iterate.d.ts +2 -1
  52. package/dist/operations/iterate.js +14 -12
  53. package/dist/operations/iterate.js.map +1 -1
  54. package/dist/operations/logical.d.ts +3 -0
  55. package/dist/operations/logical.js +17 -0
  56. package/dist/operations/logical.js.map +1 -0
  57. package/dist/operations/lookup.js +9 -5
  58. package/dist/operations/lookup.js.map +1 -1
  59. package/dist/operations/merge.d.ts +1 -0
  60. package/dist/operations/merge.js +34 -9
  61. package/dist/operations/merge.js.map +1 -1
  62. package/dist/operations/modify.d.ts +1 -1
  63. package/dist/operations/modify.js +11 -8
  64. package/dist/operations/modify.js.map +1 -1
  65. package/dist/operations/pipe.js +18 -10
  66. package/dist/operations/pipe.js.map +1 -1
  67. package/dist/operations/plug.js +1 -1
  68. package/dist/operations/plug.js.map +1 -1
  69. package/dist/operations/props.d.ts +2 -0
  70. package/dist/operations/props.js +112 -0
  71. package/dist/operations/props.js.map +1 -0
  72. package/dist/operations/root.js +3 -4
  73. package/dist/operations/root.js.map +1 -1
  74. package/dist/operations/transform.js +6 -4
  75. package/dist/operations/transform.js.map +1 -1
  76. package/dist/operations/value.js +1 -1
  77. package/dist/operations/value.js.map +1 -1
  78. package/dist/types.d.ts +42 -13
  79. package/dist/utils/array.d.ts +3 -0
  80. package/dist/utils/array.js +14 -0
  81. package/dist/utils/array.js.map +1 -0
  82. package/dist/utils/definitionHelpers.d.ts +3 -1
  83. package/dist/utils/definitionHelpers.js +95 -24
  84. package/dist/utils/definitionHelpers.js.map +1 -1
  85. package/dist/utils/escape.d.ts +2 -0
  86. package/dist/utils/escape.js +8 -0
  87. package/dist/utils/escape.js.map +1 -0
  88. package/dist/utils/functional.d.ts +1 -0
  89. package/dist/utils/functional.js +3 -1
  90. package/dist/utils/functional.js.map +1 -1
  91. package/dist/utils/is.d.ts +2 -0
  92. package/dist/utils/is.js +5 -1
  93. package/dist/utils/is.js.map +1 -1
  94. package/dist/utils/pathGetter.d.ts +4 -2
  95. package/dist/utils/pathGetter.js +24 -19
  96. package/dist/utils/pathGetter.js.map +1 -1
  97. package/dist/utils/pathSetter.d.ts +5 -3
  98. package/dist/utils/pathSetter.js +48 -43
  99. package/dist/utils/pathSetter.js.map +1 -1
  100. package/dist/utils/stateHelpers.d.ts +19 -6
  101. package/dist/utils/stateHelpers.js +28 -12
  102. package/dist/utils/stateHelpers.js.map +1 -1
  103. package/dist/utils/xor.d.ts +1 -0
  104. package/dist/utils/xor.js +7 -0
  105. package/dist/utils/xor.js.map +1 -0
  106. package/package.json +8 -10
  107. package/dist/functions/join.d.ts +0 -7
  108. package/dist/functions/join.js +0 -12
  109. package/dist/functions/join.js.map +0 -1
  110. package/dist/operations/mutate.d.ts +0 -2
  111. package/dist/operations/mutate.js +0 -55
  112. package/dist/operations/mutate.js.map +0 -1
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const pathGetter_1 = require("../utils/pathGetter");
4
+ const pathSetter_1 = require("../utils/pathSetter");
5
+ function compare({ path = '.', operator = 'AND', }) {
6
+ const pathArr = [].concat(path);
7
+ const getFns = pathArr.map(pathGetter_1.default);
8
+ const setFns = pathArr.map(pathSetter_1.default);
9
+ const logicalOp = operator === 'OR'
10
+ ? (a, b) => Boolean(a) || Boolean(b)
11
+ : (a, b) => Boolean(a) && Boolean(b);
12
+ return (data, { rev }) => {
13
+ if (rev) {
14
+ const value = Boolean(data);
15
+ return setFns.reduce((obj, setFn) => setFn(value, obj), undefined);
16
+ }
17
+ else {
18
+ const values = getFns.map((fn) => fn(data));
19
+ return values.reduce(logicalOp);
20
+ }
21
+ };
22
+ }
23
+ exports.default = compare;
24
+ //# sourceMappingURL=logical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logical.js","sourceRoot":"","sources":["../../src/functions/logical.ts"],"names":[],"mappings":";;AACA,oDAAwC;AACxC,oDAAwC;AAOxC,SAAwB,OAAO,CAAC,EAC9B,IAAI,GAAG,GAAG,EACV,QAAQ,GAAG,KAAK,GACA;IAChB,MAAM,OAAO,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAClC,MAAM,SAAS,GACb,QAAQ,KAAK,IAAI;QACf,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,IAAI,GAAG,EAAE;YACP,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAY,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAC1C,SAAS,CACV,CAAA;SACF;aAAM;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;SAChC;IACH,CAAC,CAAA;AACH,CAAC;AAxBD,0BAwBC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const mapAny = require("map-any");
4
+ const escape_1 = require("../utils/escape");
4
5
  const isSupportedValue = (data) => ['string', 'number', 'boolean'].includes(typeof data) ||
5
6
  data === null ||
6
7
  data === undefined;
@@ -33,10 +34,10 @@ function map(operands, options) {
33
34
  if (!dictionary) {
34
35
  return () => undefined;
35
36
  }
36
- return (data, context) => {
37
- const { rev } = context;
38
- const match = translate(data, dictionary, rev);
39
- return match === '*' ? data : match;
37
+ return (data, state) => {
38
+ const { rev = false } = state;
39
+ const match = translate((0, escape_1.escapeValue)(data), dictionary, rev);
40
+ return match === '*' ? data : (0, escape_1.unescapeValue)(match);
40
41
  };
41
42
  }
42
43
  exports.default = map;
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":";;AAAA,kCAAkC;AAOlC,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,OAAO,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QAC9C,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACrC,CAAC,CAAA;AACH,CAAC;AAhBD,sBAgBC"}
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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  function not(fn) {
4
- return (value, context) => !fn(value, context);
4
+ return (value, state) => !fn(value, state);
5
5
  }
6
6
  exports.default = not;
7
7
  //# sourceMappingURL=not.js.map
@@ -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,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAFD,sBAEC"}
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,7 @@
1
+ import { Path, DataMapper } from '../types';
2
+ interface Operands {
3
+ asc?: boolean;
4
+ path?: Path;
5
+ }
6
+ export default function template(operands: Operands): DataMapper;
7
+ export {};
@@ -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,22 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Handlebars = require("handlebars");
3
+ const Mustache = require("mustache");
4
4
  const mapAny = require("map-any");
5
5
  const pathGetter_1 = require("../utils/pathGetter");
6
6
  const extractOperands = (operands) => typeof operands === 'string' ? { template: operands } : operands;
7
+ function parseAndCreateGenerator(templateStr) {
8
+ Mustache.parse(templateStr);
9
+ return (data) => mapAny((data) => Mustache.render(templateStr, data), data);
10
+ }
7
11
  function template(operands) {
8
12
  const { template: templateStr, templatePath } = extractOperands(operands);
9
13
  if (typeof templateStr === 'string') {
10
- const generate = Handlebars.compile(templateStr);
11
- return (data) => mapAny((data) => generate(data), data);
14
+ return parseAndCreateGenerator(templateStr);
12
15
  }
13
16
  else if (typeof templatePath === 'string') {
14
17
  const getFn = (0, pathGetter_1.default)(templatePath);
15
18
  return (data) => {
16
19
  const templateStr = getFn(data);
17
20
  if (typeof templateStr === 'string') {
18
- const generate = Handlebars.compile(templateStr);
19
- return mapAny((data) => generate(data), data);
21
+ return parseAndCreateGenerator(templateStr)(data);
20
22
  }
21
23
  return undefined;
22
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/functions/template.ts"],"names":[],"mappings":";;AAAA,yCAAyC;AACzC,kCAAkC;AAClC,oDAAwC;AAQxC,MAAM,eAAe,GAAG,CAAC,QAA2B,EAAE,EAAE,CACtD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAElE,SAAwB,QAAQ,CAAC,QAA2B;IAC1D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEzE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QAEnC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;KACjE;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QAG3C,MAAM,KAAK,GAAG,IAAA,oBAAM,EAAC,YAAY,CAAC,CAAA;QAClC,OAAO,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBAChD,OAAO,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;aACvD;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAA;KACF;IAED,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;AACxB,CAAC;AAtBD,2BAsBC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/functions/template.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AACrC,kCAAkC;AAClC,oDAAwC;AAQxC,MAAM,eAAe,GAAG,CAAC,QAA2B,EAAE,EAAE,CACtD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAElE,SAAS,uBAAuB,CAAC,WAAmB;IAClD,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC3B,OAAO,CAAC,IAAa,EAAE,EAAE,CACvB,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;AACvE,CAAC;AAED,SAAwB,QAAQ,CAAC,QAA2B;IAC1D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEzE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QAEnC,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAA;KAC5C;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QAG3C,MAAM,KAAK,GAAG,IAAA,oBAAM,EAAC,YAAY,CAAC,CAAA;QAClC,OAAO,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACnC,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAA;aAClD;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAA;KACF;IAED,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;AACxB,CAAC;AApBD,2BAoBC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Ajv = require("ajv");
3
+ const ajv_1 = require("ajv");
4
4
  const pathGetter_1 = require("../utils/pathGetter");
5
- const ajv = new Ajv();
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,2BAA2B;AAE3B,oDAAwC;AAExC,MAAM,GAAG,GAAG,IAAI,GAAG,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"}
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"}
@@ -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, context) => (context.onlyMappedValues ? undefined : value);
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, _context) => value;
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,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAC3E,CAAC;AAHD,sBAGC;AAED,SAAgB,KAAK,CAAC,QAAiB;IACrC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAA;AACnC,CAAC;AAHD,sBAGC"}
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,7 @@ 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;
package/dist/index.js CHANGED
@@ -1,13 +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;
4
- const ramda_1 = require("ramda");
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;
5
4
  const definitionHelpers_1 = require("./utils/definitionHelpers");
6
5
  const stateHelpers_1 = require("./utils/stateHelpers");
7
6
  const functions_1 = require("./functions");
8
7
  exports.functions = functions_1.default;
9
8
  const iterate_1 = require("./operations/iterate");
10
9
  exports.iterate = iterate_1.default;
10
+ const functional_1 = require("./utils/functional");
11
11
  var getSet_1 = require("./operations/getSet");
12
12
  Object.defineProperty(exports, "get", { enumerable: true, get: function () { return getSet_1.get; } });
13
13
  Object.defineProperty(exports, "set", { enumerable: true, get: function () { return getSet_1.set; } });
@@ -45,9 +45,13 @@ var merge_1 = require("./operations/merge");
45
45
  Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return merge_1.default; } });
46
46
  var modify_1 = require("./operations/modify");
47
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; } });
48
52
  const composeMapFunction = (mapFn, initialState) => {
49
- const map = (0, ramda_1.compose)(stateHelpers_1.getStateValue, mapFn, (0, stateHelpers_1.populateState)(initialState));
50
- return (data) => typeof data === 'undefined' ? undefined : map(data);
53
+ const createState = (0, stateHelpers_1.populateState)(initialState);
54
+ return (data) => data === undefined ? undefined : (0, stateHelpers_1.getStateValue)(mapFn(createState(data)));
51
55
  };
52
56
  const mergeOptions = (options) => ({
53
57
  ...options,
@@ -56,10 +60,9 @@ const mergeOptions = (options) => ({
56
60
  ...(options.functions || {}),
57
61
  },
58
62
  });
59
- const createRootMapper = (def) => (0, definitionHelpers_1.isMapObject)(def) ? (0, iterate_1.default)(def) : (0, definitionHelpers_1.mapFunctionFromDef)(def);
60
63
  function mapTransform(def, options = {}) {
61
64
  const completeOptions = mergeOptions(options);
62
- const mapFn = createRootMapper(def)(completeOptions);
65
+ const mapFn = (0, definitionHelpers_1.operationFromDef)(def)(completeOptions)(functional_1.identity);
63
66
  return Object.assign(composeMapFunction(mapFn, {}), {
64
67
  onlyMappedValues: composeMapFunction(mapFn, { onlyMapped: true }),
65
68
  rev: Object.assign(composeMapFunction(mapFn, { rev: true }), {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAQ/B,iEAA2E;AAC3E,uDAAmE;AACnE,2CAAmC;AAoBjB,oBApBX,mBAAS,CAoBW;AAnB3B,kDAA0C;AAmBjC,kBAnBF,iBAAO,CAmBE;AAjBhB,8CAA8C;AAArC,6FAAA,GAAG,OAAA;AAAE,6FAAA,GAAG,OAAA;AACjB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,wCAAiD;AAAxC,0FAAA,OAAO,OAAO;AACvB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,iDAA0D;AAAjD,oGAAA,OAAO,OAAY;AAC5B,uCAAgD;AAAvC,0FAAA,OAAO,OAAO;AACvB,0CAAmD;AAA1C,4FAAA,OAAO,OAAQ;AACxB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,oDAA6D;AAApD,sGAAA,OAAO,OAAa;AAC7B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAC1B,0DAA4D;AAAnD,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,sGAAA,MAAM,OAAA;AACzB,4CAAqD;AAA5C,8FAAA,OAAO,OAAS;AACzB,8CAAuD;AAA9C,gGAAA,OAAO,OAAU;AAa1B,MAAM,kBAAkB,GAAG,CACzB,KAAkB,EAClB,YAA4B,EAC5B,EAAE;IACF,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,4BAAa,EAAE,KAAK,EAAE,IAAA,4BAAa,EAAC,YAAY,CAAC,CAAC,CAAA;IACtE,OAAO,CAAC,IAAa,EAAE,EAAE,CACvB,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACvD,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,MAAM,gBAAgB,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC9C,IAAA,+BAAW,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAA;AAE3D,SAAgB,YAAY,CAC1B,GAAkB,EAClB,UAAmB,EAAE;IAErB,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAA;IAEpD,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"}
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"}
@@ -1,2 +1,2 @@
1
1
  import { Operation, MapDefinition } from '../types';
2
- export default function alt(fn: MapDefinition): Operation;
2
+ export default function alt(...defs: MapDefinition[]): Operation[];
@@ -2,13 +2,32 @@
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
- function alt(fn) {
6
- return (options) => {
7
- const runAlt = (0, definitionHelpers_1.mapFunctionFromDef)(fn)(options);
8
- return (state) => typeof (0, stateHelpers_1.getStateValue)(state) === 'undefined'
9
- ? runAlt((0, stateHelpers_1.setStateValue)(state, state.context))
10
- : state;
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
+ return operation(options)(functional_1.identity)((0, stateHelpers_1.removeLastContext)((0, stateHelpers_1.setStateValue)(nextState, (0, stateHelpers_1.getLastContext)(nextState))));
20
+ }
21
+ else {
22
+ return nextState;
23
+ }
24
+ }
11
25
  };
26
+ };
27
+ function alt(...defs) {
28
+ const altOperations = defs.map((def) => (0, definitionHelpers_1.operationFromDef)(def));
29
+ const isOneMode = altOperations.length === 1;
30
+ return altOperations.map(runAlt(isOneMode));
12
31
  }
13
32
  exports.default = alt;
14
33
  //# sourceMappingURL=alt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAE/D,SAAwB,GAAG,CAAC,EAAiB;IAC3C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAE9C,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,IAAA,4BAAa,EAAC,KAAK,CAAC,KAAK,WAAW;YACzC,CAAC,CAAC,MAAM,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AATD,sBASC"}
1
+ {"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAK8B;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,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,qBAAQ,CAAC,CACjC,IAAA,gCAAiB,EACf,IAAA,4BAAa,EAAC,SAAS,EAAE,IAAA,6BAAc,EAAC,SAAS,CAAC,CAAC,CACpD,CACF,CAAA;aACF;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"}
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const definitionHelpers_1 = require("../utils/definitionHelpers");
4
- const stateHelpers_1 = require("../utils/stateHelpers");
5
4
  const extractPipeline = (pipelineId, { pipelines }) => pipelineId && pipelines ? pipelines[pipelineId] : undefined;
6
5
  function apply(pipelineId) {
7
- return (options) => {
6
+ return (options) => (next) => {
8
7
  const pipeline = extractPipeline(pipelineId, options);
9
8
  return pipeline
10
- ? (0, definitionHelpers_1.mapFunctionFromDef)(pipeline)(options)
11
- : (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
9
+ ? (0, definitionHelpers_1.operationFromDef)(pipeline)(options)(next)
10
+ : (state) => next(state);
12
11
  };
13
12
  }
14
13
  exports.default = apply;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAC/D,wDAAqD;AAErD,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE,SAAS,EAAW,EAAE,EAAE,CACrE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7D,SAAwB,KAAK,CAAC,UAAkB;IAC9C,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,OAAO,QAAQ;YACb,CAAC,CAAC,IAAA,sCAAkB,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAChD,CAAC,CAAA;AACH,CAAC;AAPD,wBAOC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/operations/apply.ts"],"names":[],"mappings":";;AACA,kEAA6D;AAE7D,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE,SAAS,EAAW,EAAE,EAAE,CACrE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7D,SAAwB,KAAK,CAAC,UAAkB;IAC9C,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,OAAO,QAAQ;YACb,CAAC,CAAC,IAAA,oCAAgB,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC;AAPD,wBAOC"}
@@ -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.mapFunctionFromDef)(def)(options));
9
- return (state) => (0, stateHelpers_1.setStateValue)(state, fns
10
- .reduce((value, fn) => merge(value, (0, stateHelpers_1.getStateValue)(fn(state))), [])
11
- .filter((val) => typeof val !== 'undefined'));
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,kEAA+D;AAE/D,MAAM,KAAK,GAAG,CAAO,IAAS,EAAE,KAAc,EAAE,EAAE,CAChD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;AAE/D,SAAwB,MAAM,CAAC,GAAG,IAAqB;IACrD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAE/D,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,GAAG;aACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAA,4BAAa,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EACrD,EAAe,CAChB;aACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,WAAW,CAAC,CAC/C,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAfD,yBAeC"}
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.mapFunctionFromDef)(def)(options);
8
- return (state) => ((rev ? state.rev : !state.rev) ? fn(state) : 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.mapFunctionFromDef)(fwdDef)(options);
22
- const revFn = (0, definitionHelpers_1.mapFunctionFromDef)(revDef)(options);
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,kEAA+D;AAE/D,MAAM,gBAAgB,GAAG,CAAC,GAAkB,EAAE,GAAY,EAAa,EAAE;IACvE,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACxE,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;QACjB,MAAM,KAAK,GAAG,IAAA,sCAAkB,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAA,sCAAkB,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QACjD,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
+ {"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,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const ramda_1 = require("ramda");
4
3
  const stateHelpers_1 = require("../utils/stateHelpers");
4
+ const filterValue = (value, filterFn) => Array.isArray(value)
5
+ ? value.filter(filterFn)
6
+ : filterFn(value)
7
+ ? value
8
+ : undefined;
5
9
  function filter(fn) {
6
- return (_options) => {
10
+ return (_options) => (next) => {
7
11
  if (typeof fn !== 'function') {
8
- return ramda_1.identity;
12
+ return (state) => next(state);
9
13
  }
10
14
  return (state) => {
11
- const run = (data) => !!fn(data, (0, stateHelpers_1.contextFromState)(state));
12
- const runFilter = (0, ramda_1.compose)((0, ramda_1.ifElse)(Array.isArray, (0, ramda_1.filter)(run), (0, ramda_1.unless)(run, (0, ramda_1.always)(undefined))), stateHelpers_1.getStateValue);
13
- return {
14
- ...state,
15
- value: runFilter(state),
16
- };
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));
17
18
  };
18
19
  };
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":";;AAAA,iCAOc;AAEd,wDAAuE;AAEvE,SAAwB,MAAM,CAAC,EAAc;IAC3C,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO,gBAAQ,CAAA;SAChB;QAED,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,GAAG,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAA,+BAAgB,EAAC,KAAK,CAAC,CAAC,CAAA;YAElE,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,IAAA,cAAM,EAAC,KAAK,CAAC,OAAO,EAAE,IAAA,cAAO,EAAC,GAAG,CAAC,EAAE,IAAA,cAAM,EAAC,GAAG,EAAE,IAAA,cAAM,EAAC,SAAS,CAAC,CAAC,CAAC,EACnE,4BAAa,CACd,CAAA;YAED,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACxB,CAAA;QACH,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AApBD,yBAoBC"}
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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const value_1 = require("../functions/value");
4
4
  function fixed(val) {
5
- return () => (state) => ({
5
+ return () => (_next) => (state) => ({
6
6
  ...state,
7
7
  value: (0, value_1.extractValue)(val),
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fixed.js","sourceRoot":"","sources":["../../src/operations/fixed.ts"],"names":[],"mappings":";;AACA,8CAAiD;AAEjD,SAAwB,KAAK,CAAC,GAA4B;IACxD,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,KAAK;QACR,KAAK,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC;KACzB,CAAC,CAAA;AACJ,CAAC;AALD,wBAKC"}
1
+ {"version":3,"file":"fixed.js","sourceRoot":"","sources":["../../src/operations/fixed.ts"],"names":[],"mappings":";;AACA,8CAAiD;AAEjD,SAAwB,KAAK,CAAC,GAA4B;IACxD,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClC,GAAG,KAAK;QACR,KAAK,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC;KACzB,CAAC,CAAA;AACJ,CAAC;AALD,wBAKC"}
@@ -1,3 +1,3 @@
1
- import { Operation, Path } from '../types';
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[];