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,8 +1,9 @@
1
- import { Data, Prop, Operands } from '../types';
2
- interface Options extends Operands {
3
- path?: string;
1
+ import { Operands, Path, DataMapper } from '../types';
2
+ interface CompareOperands extends Operands {
3
+ path?: Path;
4
4
  operator?: string;
5
- match?: Prop;
5
+ match?: unknown;
6
+ matchPath?: Path;
6
7
  }
7
- export default function compare({ path, operator, match }: Options): (data: Data) => boolean;
8
+ export default function compare({ path, operator, match, matchPath, }: CompareOperands): DataMapper;
8
9
  export {};
@@ -1,34 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const pathGetter_1 = require("../utils/pathGetter");
4
- const not = (comparer) => (value) => !comparer(value);
5
- const compareArrayOrValue = (comparer) => (value) => (Array.isArray(value)) ? value.some(comparer) : comparer(value);
6
- const compareEqual = (match) => compareArrayOrValue((value) => value === match);
4
+ const not = (comparer) => (value, match) => !comparer(value, match);
5
+ const compareArrayOrValue = (comparer) => (value, match) => Array.isArray(value)
6
+ ? value.some((value) => comparer(value, match))
7
+ : comparer(value, match);
7
8
  const isNumeric = (value) => typeof value === 'number';
8
- function createComparer(operator, match) {
9
+ const compareArrayOrValueNumeric = (comparer) => compareArrayOrValue((value, match) => isNumeric(value) && isNumeric(match) && comparer(value, match));
10
+ const compareEqual = compareArrayOrValue((value, match) => value === match);
11
+ function createComparer(operator) {
9
12
  switch (operator) {
10
13
  case '=':
11
- return compareEqual(match);
14
+ return compareEqual;
12
15
  case '!=':
13
- return not(compareEqual(match));
16
+ return not(compareEqual);
14
17
  case '>':
15
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value > match);
18
+ return compareArrayOrValueNumeric((value, match) => value > match);
16
19
  case '>=':
17
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value >= match);
20
+ return compareArrayOrValueNumeric((value, match) => value >= match);
18
21
  case '<':
19
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value < match);
22
+ return compareArrayOrValueNumeric((value, match) => value < match);
20
23
  case '<=':
21
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value <= match);
24
+ return compareArrayOrValueNumeric((value, match) => value <= match);
22
25
  default:
23
- return (_value) => false;
26
+ return (_value, _match) => false;
24
27
  }
25
28
  }
26
- function compare({ path = '.', operator = '=', match }) {
27
- const getFn = pathGetter_1.default(path);
28
- const comparer = createComparer(operator, match);
29
+ function compare({ path = '.', operator = '=', match, matchPath, }) {
30
+ const getValue = (0, pathGetter_1.default)(path);
31
+ const getMatch = matchPath ? (0, pathGetter_1.default)(matchPath) : () => match;
32
+ const comparer = createComparer(operator);
29
33
  return (data) => {
30
- const value = getFn(data);
31
- return comparer(value);
34
+ const value = getValue(data);
35
+ const match = getMatch(data);
36
+ return comparer(value, match);
32
37
  };
33
38
  }
34
39
  exports.default = compare;
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/functions/compare.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAYxC,MAAM,GAAG,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAErE,MAAM,mBAAmB,GAAG,CAAC,QAAkB,EAAE,EAAE,CACjD,CAAC,KAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAElF,MAAM,YAAY,GAAG,CAAC,KAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;AAC3F,MAAM,SAAS,GAAG,CAAC,KAAW,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAA;AAE7E,SAAS,cAAc,CAAE,QAAgB,EAAE,KAAW;IACpD,QAAQ,QAAQ,EAAE;QAChB,KAAK,GAAG;YACN,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;QAC5B,KAAK,IAAI;YACP,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QACjC,KAAK,GAAG;YACN,OAAO,mBAAmB,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAA;QACpG,KAAK,IAAI;YACP,OAAO,mBAAmB,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAA;QACrG,KAAK,GAAG;YACN,OAAO,mBAAmB,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAA;QACpG,KAAK,IAAI;YACP,OAAO,mBAAmB,CAAC,CAAC,KAAW,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAA;QACrG;YACE,OAAO,CAAC,MAAY,EAAE,EAAE,CAAC,KAAK,CAAA;KACjC;AACH,CAAC;AAED,SAAwB,OAAO,CAAE,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,KAAK,EAAW;IAC7E,MAAM,KAAK,GAAG,oBAAM,CAAC,IAAI,CAAC,CAAA;IAE1B,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAEhD,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AATD,0BASC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/functions/compare.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAiBxC,MAAM,GAAG,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,KAAc,EAAE,EAAE,CACrE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAEzB,MAAM,mBAAmB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAClD,KAAc,EACd,KAAc,EACd,EAAE,CACF,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE5B,MAAM,SAAS,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAA;AAEhF,MAAM,0BAA0B,GAAG,CAAC,QAAyB,EAAE,EAAE,CAC/D,mBAAmB,CACjB,CAAC,KAAc,EAAE,KAAc,EAAE,EAAE,CACjC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CACjE,CAAA;AAEH,MAAM,YAAY,GAAG,mBAAmB,CACtC,CAAC,KAAc,EAAE,KAAc,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CACpD,CAAA;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE;QAChB,KAAK,GAAG;YACN,OAAO,YAAY,CAAA;QACrB,KAAK,IAAI;YACP,OAAO,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1B,KAAK,GAAG;YACN,OAAO,0BAA0B,CAC/B,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAChD,CAAA;QACH,KAAK,IAAI;YACP,OAAO,0BAA0B,CAC/B,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CACjD,CAAA;QACH,KAAK,GAAG;YACN,OAAO,0BAA0B,CAC/B,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAChD,CAAA;QACH,KAAK,IAAI;YACP,OAAO,0BAA0B,CAC/B,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CACjD,CAAA;QACH;YACE,OAAO,CAAC,MAAe,EAAE,MAAe,EAAE,EAAE,CAAC,KAAK,CAAA;KACrD;AACH,CAAC;AAED,SAAwB,OAAO,CAAC,EAC9B,IAAI,GAAG,GAAG,EACV,QAAQ,GAAG,GAAG,EACd,KAAK,EACL,SAAS,GACO;IAChB,MAAM,QAAQ,GAAG,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,oBAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAA;IAE5D,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAEzC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;AACH,CAAC;AAhBD,0BAgBC"}
@@ -0,0 +1,6 @@
1
+ import { DataMapper } from '../types';
2
+ export interface KeyValue {
3
+ key: string | number;
4
+ value: unknown;
5
+ }
6
+ export default function explode(): DataMapper;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const is_1 = require("../utils/is");
4
+ const isExplodedArray = (data) => data.every((item) => (0, is_1.isObject)(item) && typeof item.key === 'number');
5
+ const setValueOnKey = (target, keyValue) => {
6
+ if ((0, is_1.isObject)(keyValue)) {
7
+ const { key, value } = keyValue;
8
+ if (Array.isArray(target)) {
9
+ target[key] = value;
10
+ }
11
+ else {
12
+ target[String(key)] = value;
13
+ }
14
+ }
15
+ return target;
16
+ };
17
+ function doImplode(data) {
18
+ if (Array.isArray(data)) {
19
+ return data.reduce(setValueOnKey, isExplodedArray(data)
20
+ ? []
21
+ : {});
22
+ }
23
+ else {
24
+ return undefined;
25
+ }
26
+ }
27
+ function doExplode(data) {
28
+ if ((0, is_1.isObject)(data)) {
29
+ return Object.entries(data).map(([key, value]) => ({
30
+ key,
31
+ value,
32
+ }));
33
+ }
34
+ else if (Array.isArray(data)) {
35
+ return data.map((value, key) => ({ key, value }));
36
+ }
37
+ else {
38
+ return undefined;
39
+ }
40
+ }
41
+ function explode() {
42
+ return (data, context) => (context.rev ? doImplode(data) : doExplode(data));
43
+ }
44
+ exports.default = explode;
45
+ //# sourceMappingURL=explode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explode.js","sourceRoot":"","sources":["../../src/functions/explode.ts"],"names":[],"mappings":";;AAEA,oCAAsC;AAOtC,MAAM,eAAe,GAAG,CAAC,IAAe,EAAE,EAAE,CAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;AAEtE,MAAM,aAAa,GAAG,CACpB,MAA2C,EAC3C,QAAiB,EACjB,EAAE;IACF,IAAI,IAAA,aAAQ,EAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,GAAa,CAAC,GAAG,KAAK,CAAA;SAC9B;aAAM;YACL,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;SAC5B;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,MAAM,CAChB,aAAa,EACb,eAAe,CAAC,IAAI,CAAC;YACnB,CAAC,CAAE,EAAgB;YACnB,CAAC,CAAE,EAA8B,CACpC,CAAA;KACF;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,EAAE;QAClB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAoB,EAAE,EAAE,CAAC,CAAC;YACpE,GAAG;YACH,KAAK;SACN,CAAC,CAAC,CAAA;KACJ;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;KACnE;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAwB,OAAO;IAC7B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7E,CAAC;AAFD,0BAEC"}
@@ -1,6 +1,6 @@
1
- import { Operands, Data } from '../types';
1
+ import { Operands, DataMapper } from '../types';
2
2
  interface Options extends Operands {
3
3
  path?: string;
4
4
  }
5
- export default function get({ path }: Options): (data: Data) => Data;
5
+ export default function get(options: Options | string): DataMapper;
6
6
  export {};
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const pathGetter_1 = require("../utils/pathGetter");
4
- function get({ path = '.' }) {
5
- const getFn = pathGetter_1.default(path);
4
+ const extractPath = (path) => typeof path === 'string' ? path : path.path;
5
+ function get(options) {
6
+ const path = extractPath(options) || '.';
7
+ const getFn = (0, pathGetter_1.default)(path);
6
8
  return (data) => getFn(data);
7
9
  }
8
10
  exports.default = get;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functions/get.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAMxC,SAAwB,GAAG,CAAE,EAAE,IAAI,GAAG,GAAG,EAAW;IAClD,MAAM,KAAK,GAAG,oBAAM,CAAC,IAAI,CAAC,CAAA;IAE1B,OAAO,CAAC,IAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAJD,sBAIC"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/functions/get.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAMxC,MAAM,WAAW,GAAG,CAAC,IAAsB,EAAE,EAAE,CAC7C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AAE7C,SAAwB,GAAG,CAAC,OAAyB;IACnD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,CAAA;IACxC,MAAM,KAAK,GAAG,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAA;IAE1B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AALD,sBAKC"}
@@ -1,13 +1,21 @@
1
- import alt from './alt';
1
+ import { value, fixed } from './value';
2
2
  import compare from './compare';
3
- import exclude from './exclude';
3
+ import explode from './explode';
4
4
  import get from './get';
5
- import join from './join';
5
+ import { join, split } from './joinSplit';
6
+ import logical from './logical';
7
+ import map from './map';
8
+ import template from './template';
6
9
  declare const _default: {
7
- alt: typeof alt;
8
10
  compare: typeof compare;
9
- exclude: typeof exclude;
11
+ explode: typeof explode;
12
+ fixed: typeof fixed;
10
13
  get: typeof get;
11
14
  join: typeof join;
15
+ logical: typeof logical;
16
+ map: typeof map;
17
+ split: typeof split;
18
+ template: typeof template;
19
+ value: typeof value;
12
20
  };
13
21
  export default _default;
@@ -1,15 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const alt_1 = require("./alt");
3
+ const value_1 = require("./value");
4
4
  const compare_1 = require("./compare");
5
- const exclude_1 = require("./exclude");
5
+ const explode_1 = require("./explode");
6
6
  const get_1 = require("./get");
7
- const join_1 = require("./join");
7
+ const joinSplit_1 = require("./joinSplit");
8
+ const logical_1 = require("./logical");
9
+ const map_1 = require("./map");
10
+ const template_1 = require("./template");
8
11
  exports.default = {
9
- alt: alt_1.default,
10
12
  compare: compare_1.default,
11
- exclude: exclude_1.default,
13
+ explode: explode_1.default,
14
+ fixed: value_1.fixed,
12
15
  get: get_1.default,
13
- join: join_1.default
16
+ join: joinSplit_1.join,
17
+ logical: logical_1.default,
18
+ map: map_1.default,
19
+ split: joinSplit_1.split,
20
+ template: template_1.default,
21
+ value: value_1.value,
14
22
  };
15
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":";;AAAA,+BAAuB;AACvB,uCAA+B;AAC/B,uCAA+B;AAC/B,+BAAuB;AACvB,iCAAyB;AAEzB,kBAAe;IACb,GAAG,EAAH,aAAG;IACH,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,aAAG;IACH,IAAI,EAAJ,cAAI;CACL,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AACtC,uCAA+B;AAC/B,uCAA+B;AAC/B,+BAAuB;AACvB,2CAAyC;AACzC,uCAA+B;AAC/B,+BAAuB;AACvB,yCAAiC;AAEjC,kBAAe;IACb,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,KAAK,EAAL,aAAK;IACL,GAAG,EAAH,aAAG;IACH,IAAI,EAAJ,gBAAI;IACJ,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,aAAG;IACH,KAAK,EAAL,iBAAK;IACL,QAAQ,EAAR,kBAAQ;IACR,KAAK,EAAL,aAAK;CACN,CAAA"}
@@ -1,7 +1,7 @@
1
- import { Data, Operands } from '../types';
1
+ import { Operands, DataMapper } from '../types';
2
2
  interface Options extends Operands {
3
3
  path?: string | string[];
4
4
  sep?: string;
5
5
  }
6
- export default function join({ path, sep }: Options): (data: Data) => string;
6
+ export default function join({ path, sep }: Options): DataMapper;
7
7
  export {};
@@ -5,7 +5,7 @@ function join({ path = [], sep = ' ' }) {
5
5
  const getFns = [].concat(path).map(pathGetter_1.default);
6
6
  return (data) => {
7
7
  const values = getFns.map((fn) => fn(data));
8
- return values.filter(value => typeof value !== 'undefined').join(sep);
8
+ return values.filter((value) => typeof value !== 'undefined').join(sep);
9
9
  };
10
10
  }
11
11
  exports.default = join;
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/functions/join.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAOxC,SAAwB,IAAI,CAAE,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAW;IAC7D,MAAM,MAAM,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAExD,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvE,CAAC,CAAA;AACH,CAAC;AAPD,uBAOC"}
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"}
@@ -0,0 +1,8 @@
1
+ import { Operands, DataMapper } from '../types';
2
+ interface Options extends Operands {
3
+ path?: string | string[];
4
+ sep?: string;
5
+ }
6
+ export declare function join(options: Options): DataMapper;
7
+ export declare function split(options: Options): DataMapper;
8
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.split = exports.join = void 0;
4
+ const pathGetter_1 = require("../utils/pathGetter");
5
+ const pathSetter_1 = require("../utils/pathSetter");
6
+ function joinSplit({ path = [], sep = ' ' }, split) {
7
+ const pathArr = [].concat(path);
8
+ const getFns = pathArr.map(pathGetter_1.default);
9
+ const setFns = pathArr.map(pathSetter_1.default);
10
+ return (data, { rev }) => {
11
+ if (split ? !rev : rev) {
12
+ const values = typeof data === 'string' ? data.split(sep) : [];
13
+ let ret = {};
14
+ setFns.forEach((setFn, index) => {
15
+ ret = setFn(values[index], ret);
16
+ });
17
+ return ret;
18
+ }
19
+ else {
20
+ const values = getFns.map((fn) => fn(data));
21
+ return values.filter((value) => value !== undefined).join(sep);
22
+ }
23
+ };
24
+ }
25
+ function join(options) {
26
+ return joinSplit(options, false);
27
+ }
28
+ exports.join = join;
29
+ function split(options) {
30
+ return joinSplit(options, true);
31
+ }
32
+ exports.split = split;
33
+ //# sourceMappingURL=joinSplit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinSplit.js","sourceRoot":"","sources":["../../src/functions/joinSplit.ts"],"names":[],"mappings":";;;AACA,oDAAwC;AACxC,oDAAwC;AAOxC,SAAS,SAAS,CAChB,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAW,EACjC,KAAc;IAEd,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;IAElC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9D,IAAI,GAAG,GAAG,EAAE,CAAA;YACZ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAE9B,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;SACX;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,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC/D;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,IAAI,CAAC,OAAgB;IACnC,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,KAAK,CAAC,OAAgB;IACpC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,7 @@
1
+ import { Operands, Path, DataMapper } from '../types';
2
+ interface CompareOperands extends Operands {
3
+ path?: Path | Path[];
4
+ operator?: string;
5
+ }
6
+ export default function compare({ path, operator, }: CompareOperands): DataMapper;
7
+ export {};
@@ -0,0 +1,28 @@
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
+ let ret = {};
15
+ const value = Boolean(data);
16
+ setFns.forEach((setFn) => {
17
+ ret = setFn(value, ret);
18
+ });
19
+ return ret;
20
+ }
21
+ else {
22
+ const values = getFns.map((fn) => fn(data));
23
+ return values.reduce(logicalOp);
24
+ }
25
+ };
26
+ }
27
+ exports.default = compare;
28
+ //# 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,IAAI,GAAG,GAAG,EAAE,CAAA;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;SACX;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;AAzBD,0BAyBC"}
@@ -0,0 +1,8 @@
1
+ import { Dictionary, Dictionaries, DataMapper } from '../types';
2
+ interface Operands {
3
+ dictionary?: Dictionary | string;
4
+ }
5
+ export default function map(operands: Operands, options?: {
6
+ dictionaries?: Dictionaries;
7
+ }): DataMapper;
8
+ export {};
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mapAny = require("map-any");
4
+ const isSupportedValue = (data) => ['string', 'number', 'boolean'].includes(typeof data) ||
5
+ data === null ||
6
+ data === undefined;
7
+ function findFirstMatch(value, dictionary, direction) {
8
+ const match = dictionary.find((dict) => dict[direction] === value);
9
+ return match ? match[1 - direction] : undefined;
10
+ }
11
+ function translate(data, dictionary, rev) {
12
+ const direction = Number(rev);
13
+ return mapAny((data) => {
14
+ const value = isSupportedValue(data) ? data : undefined;
15
+ const match = findFirstMatch(value, dictionary, direction);
16
+ if (match === undefined || match === '*') {
17
+ const starMatch = findFirstMatch('*', dictionary, direction);
18
+ return starMatch === undefined ? match : starMatch;
19
+ }
20
+ return match;
21
+ }, data);
22
+ }
23
+ function extractDictionary(dictionary, dictionaries) {
24
+ if (typeof dictionary === 'string') {
25
+ return dictionaries && dictionaries[dictionary];
26
+ }
27
+ else {
28
+ return dictionary;
29
+ }
30
+ }
31
+ function map(operands, options) {
32
+ const dictionary = extractDictionary(operands.dictionary, options && options.dictionaries);
33
+ if (!dictionary) {
34
+ return () => undefined;
35
+ }
36
+ return (data, context) => {
37
+ const { rev } = context;
38
+ const match = translate(data, dictionary, rev);
39
+ return match === '*' ? data : match;
40
+ };
41
+ }
42
+ exports.default = map;
43
+ //# sourceMappingURL=map.js.map
@@ -0,0 +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,2 +1,2 @@
1
- import { DataMapper, Data } from '../types';
2
- export default function not(fn: DataMapper<Data, boolean>): DataMapper<Data, boolean>;
1
+ import { DataMapper } from '../types';
2
+ export default function not(fn: DataMapper): DataMapper;
@@ -1 +1 @@
1
- {"version":3,"file":"not.js","sourceRoot":"","sources":["../../src/functions/not.ts"],"names":[],"mappings":";;AAEA,SAAwB,GAAG,CAAE,EAA6B;IACxD,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,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,7 @@
1
+ import { Path, DataMapper } from '../types';
2
+ interface Operands {
3
+ template?: string;
4
+ templatePath?: Path;
5
+ }
6
+ export default function template(operands: Operands | string): DataMapper;
7
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Mustache = require("mustache");
4
+ const mapAny = require("map-any");
5
+ const pathGetter_1 = require("../utils/pathGetter");
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
+ }
11
+ function template(operands) {
12
+ const { template: templateStr, templatePath } = extractOperands(operands);
13
+ if (typeof templateStr === 'string') {
14
+ return parseAndCreateGenerator(templateStr);
15
+ }
16
+ else if (typeof templatePath === 'string') {
17
+ const getFn = (0, pathGetter_1.default)(templatePath);
18
+ return (data) => {
19
+ const templateStr = getFn(data);
20
+ if (typeof templateStr === 'string') {
21
+ return parseAndCreateGenerator(templateStr)(data);
22
+ }
23
+ return undefined;
24
+ };
25
+ }
26
+ return () => undefined;
27
+ }
28
+ exports.default = template;
29
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
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,2 +1,2 @@
1
- import { Path, Data } from '../types';
2
- export default function validate(path: Path, schema: object | boolean): (data: Data) => boolean;
1
+ import { Path, DataMapper } from '../types';
2
+ export default function validate(path: Path, schema: Record<string, unknown> | boolean): DataMapper;
@@ -4,7 +4,7 @@ const Ajv = require("ajv");
4
4
  const pathGetter_1 = require("../utils/pathGetter");
5
5
  const ajv = new Ajv();
6
6
  function validate(path, schema) {
7
- const getFn = pathGetter_1.default(path);
7
+ const getFn = (0, pathGetter_1.default)(path);
8
8
  const validate = ajv.compile(schema);
9
9
  return (data) => validate(getFn(data));
10
10
  }
@@ -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,CAAE,IAAU,EAAE,MAAwB;IACpE,MAAM,KAAK,GAAG,oBAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpC,OAAO,CAAC,IAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAY,CAAA;AACzD,CAAC;AALD,2BAKC"}
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"}
@@ -0,0 +1,4 @@
1
+ import { DataMapper } from '../types';
2
+ export declare const extractValue: (value: unknown) => any;
3
+ export declare function value(operands: unknown): DataMapper;
4
+ export declare function fixed(operands: unknown): DataMapper;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fixed = exports.value = exports.extractValue = void 0;
4
+ const isOptions = (value) => typeof value === 'object' && value !== null;
5
+ const extractValue = (value) => {
6
+ const val = isOptions(value) ? value.value : value;
7
+ return typeof val === 'function' ? val() : val;
8
+ };
9
+ exports.extractValue = extractValue;
10
+ function value(operands) {
11
+ const value = (0, exports.extractValue)(operands);
12
+ return (_data, context) => (context.onlyMappedValues ? undefined : value);
13
+ }
14
+ exports.value = value;
15
+ function fixed(operands) {
16
+ const value = (0, exports.extractValue)(operands);
17
+ return (_data, _context) => value;
18
+ }
19
+ exports.fixed = fixed;
20
+ //# sourceMappingURL=value.js.map
@@ -0,0 +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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { MapDefinition, MapTransform, Options } from './types';
2
+ import functions from './functions';
3
+ import iterate from './operations/iterate';
2
4
  export { get, set } from './operations/getSet';
3
5
  export { default as root } from './operations/root';
4
6
  export { default as alt } from './operations/alt';
7
+ export { default as apply } from './operations/apply';
5
8
  export { default as value } from './operations/value';
6
9
  export { default as fixed } from './operations/fixed';
7
10
  export { default as concat } from './operations/concat';
@@ -11,13 +14,10 @@ export { default as plug } from './operations/plug';
11
14
  export { default as lookup } from './operations/lookup';
12
15
  export { default as transform } from './operations/transform';
13
16
  export { default as filter } from './operations/filter';
17
+ export { default as ifelse } from './operations/ifelse';
14
18
  export { fwd, rev, divide } from './operations/directionals';
15
- export { Data, CustomFunction, DataMapper, MapDefinition } from './types';
16
- export declare const functions: {
17
- alt: typeof import("./functions/alt").default;
18
- compare: typeof import("./functions/compare").default;
19
- exclude: typeof import("./functions/exclude").default;
20
- get: typeof import("./functions/get").default;
21
- join: typeof import("./functions/join").default;
22
- };
19
+ export { default as merge } from './operations/merge';
20
+ export { default as modify } from './operations/modify';
21
+ export { iterate, functions };
22
+ export { CustomFunction, DataMapper, MapDefinition, MapObject, MapPipe, MapTransform, Dictionary, Dictionaries, } from './types';
23
23
  export declare function mapTransform(def: MapDefinition, options?: Options): MapTransform;