map-transform 0.3.12 → 0.4.0-alpha.11

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 (121) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +641 -98
  3. package/dist/functions/compare.d.ts +7 -5
  4. package/dist/functions/compare.js +27 -16
  5. package/dist/functions/compare.js.map +1 -1
  6. package/dist/functions/explode.d.ts +7 -0
  7. package/dist/functions/explode.js +53 -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 +16 -5
  13. package/dist/functions/index.js +17 -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 +32 -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 +24 -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/sort.d.ts +7 -0
  30. package/dist/functions/sort.js +33 -0
  31. package/dist/functions/sort.js.map +1 -0
  32. package/dist/functions/template.d.ts +7 -0
  33. package/dist/functions/template.js +29 -0
  34. package/dist/functions/template.js.map +1 -0
  35. package/dist/functions/validate.d.ts +2 -2
  36. package/dist/functions/validate.js +3 -3
  37. package/dist/functions/validate.js.map +1 -1
  38. package/dist/functions/value.d.ts +4 -0
  39. package/dist/functions/value.js +20 -0
  40. package/dist/functions/value.js.map +1 -0
  41. package/dist/index.d.ts +8 -8
  42. package/dist/index.js +28 -13
  43. package/dist/index.js.map +1 -1
  44. package/dist/operations/alt.js +4 -9
  45. package/dist/operations/alt.js.map +1 -1
  46. package/dist/operations/apply.d.ts +2 -0
  47. package/dist/operations/apply.js +15 -0
  48. package/dist/operations/apply.js.map +1 -0
  49. package/dist/operations/concat.js +5 -5
  50. package/dist/operations/concat.js.map +1 -1
  51. package/dist/operations/directionals.d.ts +1 -1
  52. package/dist/operations/directionals.js +5 -5
  53. package/dist/operations/directionals.js.map +1 -1
  54. package/dist/operations/filter.d.ts +2 -2
  55. package/dist/operations/filter.js +10 -5
  56. package/dist/operations/filter.js.map +1 -1
  57. package/dist/operations/fixed.d.ts +2 -2
  58. package/dist/operations/fixed.js +5 -1
  59. package/dist/operations/fixed.js.map +1 -1
  60. package/dist/operations/getSet.d.ts +2 -1
  61. package/dist/operations/getSet.js +24 -25
  62. package/dist/operations/getSet.js.map +1 -1
  63. package/dist/operations/ifelse.d.ts +2 -0
  64. package/dist/operations/ifelse.js +20 -0
  65. package/dist/operations/ifelse.js.map +1 -0
  66. package/dist/operations/iterate.d.ts +2 -0
  67. package/dist/operations/iterate.js +21 -0
  68. package/dist/operations/iterate.js.map +1 -0
  69. package/dist/operations/lookup.js +3 -3
  70. package/dist/operations/lookup.js.map +1 -1
  71. package/dist/operations/merge.d.ts +3 -0
  72. package/dist/operations/merge.js +43 -0
  73. package/dist/operations/merge.js.map +1 -0
  74. package/dist/operations/modify.d.ts +2 -0
  75. package/dist/operations/modify.js +18 -0
  76. package/dist/operations/modify.js.map +1 -0
  77. package/dist/operations/mutate.js +84 -7
  78. package/dist/operations/mutate.js.map +1 -1
  79. package/dist/operations/pipe.js +19 -5
  80. package/dist/operations/pipe.js.map +1 -1
  81. package/dist/operations/plug.js +1 -1
  82. package/dist/operations/plug.js.map +1 -1
  83. package/dist/operations/root.js +3 -2
  84. package/dist/operations/root.js.map +1 -1
  85. package/dist/operations/transform.js +4 -4
  86. package/dist/operations/transform.js.map +1 -1
  87. package/dist/operations/value.d.ts +2 -2
  88. package/dist/operations/value.js +5 -1
  89. package/dist/operations/value.js.map +1 -1
  90. package/dist/types.d.ts +52 -23
  91. package/dist/utils/array.d.ts +2 -0
  92. package/dist/utils/array.js +12 -0
  93. package/dist/utils/array.js.map +1 -0
  94. package/dist/utils/definitionHelpers.d.ts +7 -8
  95. package/dist/utils/definitionHelpers.js +80 -47
  96. package/dist/utils/definitionHelpers.js.map +1 -1
  97. package/dist/utils/functional.d.ts +3 -0
  98. package/dist/utils/functional.js +10 -0
  99. package/dist/utils/functional.js.map +1 -0
  100. package/dist/utils/is.d.ts +3 -0
  101. package/dist/utils/is.js +10 -0
  102. package/dist/utils/is.js.map +1 -0
  103. package/dist/utils/pathGetter.d.ts +5 -3
  104. package/dist/utils/pathGetter.js +21 -11
  105. package/dist/utils/pathGetter.js.map +1 -1
  106. package/dist/utils/pathSetter.d.ts +5 -4
  107. package/dist/utils/pathSetter.js +36 -44
  108. package/dist/utils/pathSetter.js.map +1 -1
  109. package/dist/utils/stateHelpers.d.ts +8 -36
  110. package/dist/utils/stateHelpers.js +26 -11
  111. package/dist/utils/stateHelpers.js.map +1 -1
  112. package/package.json +16 -56
  113. package/dist/functions/alt.d.ts +0 -6
  114. package/dist/functions/alt.js +0 -10
  115. package/dist/functions/alt.js.map +0 -1
  116. package/dist/functions/exclude.d.ts +0 -7
  117. package/dist/functions/exclude.js +0 -16
  118. package/dist/functions/exclude.js.map +0 -1
  119. package/dist/utils/objectToMapFunction.d.ts +0 -2
  120. package/dist/utils/objectToMapFunction.js +0 -34
  121. package/dist/utils/objectToMapFunction.js.map +0 -1
@@ -1,8 +1,10 @@
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;
7
+ not?: boolean;
6
8
  }
7
- export default function compare({ path, operator, match }: Options): (data: Data) => boolean;
9
+ export default function compare({ path, operator, match, matchPath, not, }: CompareOperands): DataMapper;
8
10
  export {};
@@ -1,34 +1,45 @@
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
+ const compareIn = (value, match) => Array.isArray(match)
12
+ ? match.some((item) => compareEqual(value, item))
13
+ : compareEqual(value, match);
14
+ function createComparer(operator) {
9
15
  switch (operator) {
10
16
  case '=':
11
- return compareEqual(match);
17
+ return compareEqual;
12
18
  case '!=':
13
- return not(compareEqual(match));
19
+ return not(compareEqual);
14
20
  case '>':
15
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value > match);
21
+ return compareArrayOrValueNumeric((value, match) => value > match);
16
22
  case '>=':
17
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value >= match);
23
+ return compareArrayOrValueNumeric((value, match) => value >= match);
18
24
  case '<':
19
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value < match);
25
+ return compareArrayOrValueNumeric((value, match) => value < match);
20
26
  case '<=':
21
- return compareArrayOrValue((value) => isNumeric(value) && isNumeric(match) && value <= match);
27
+ return compareArrayOrValueNumeric((value, match) => value <= match);
28
+ case 'in':
29
+ return compareIn;
22
30
  default:
23
- return (_value) => false;
31
+ return (_value, _match) => false;
24
32
  }
25
33
  }
26
- function compare({ path = '.', operator = '=', match }) {
27
- const getFn = pathGetter_1.default(path);
28
- const comparer = createComparer(operator, match);
34
+ function compare({ path = '.', operator = '=', match, matchPath, not = false, }) {
35
+ const getValue = (0, pathGetter_1.default)(path);
36
+ const getMatch = matchPath ? (0, pathGetter_1.default)(matchPath) : () => match;
37
+ const comparer = createComparer(operator);
29
38
  return (data) => {
30
- const value = getFn(data);
31
- return comparer(value);
39
+ const value = getValue(data);
40
+ const match = getMatch(data);
41
+ const result = comparer(value, match);
42
+ return not ? !result : result;
32
43
  };
33
44
  }
34
45
  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":"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"}
@@ -0,0 +1,7 @@
1
+ import { DataMapper } from '../types';
2
+ export interface KeyValue {
3
+ key: string | number;
4
+ value: unknown;
5
+ }
6
+ export declare function explode(): DataMapper;
7
+ export declare function implode(): DataMapper;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.implode = exports.explode = void 0;
4
+ const is_1 = require("../utils/is");
5
+ const isExplodedArray = (data) => data.length > 0 &&
6
+ data.every((item) => (0, is_1.isObject)(item) && typeof item.key === 'number');
7
+ const setValueOnKey = (target, keyValue) => {
8
+ if ((0, is_1.isObject)(keyValue)) {
9
+ const { key, value } = keyValue;
10
+ if (Array.isArray(target)) {
11
+ target[key] = value;
12
+ }
13
+ else {
14
+ target[String(key)] = value;
15
+ }
16
+ }
17
+ return target;
18
+ };
19
+ function doImplode(data) {
20
+ if (Array.isArray(data)) {
21
+ return data.reduce(setValueOnKey, isExplodedArray(data)
22
+ ? []
23
+ : {});
24
+ }
25
+ else {
26
+ return undefined;
27
+ }
28
+ }
29
+ function doExplode(data) {
30
+ if ((0, is_1.isObject)(data)) {
31
+ return Object.entries(data)
32
+ .filter(([, value]) => value !== undefined)
33
+ .map(([key, value]) => ({
34
+ key,
35
+ value,
36
+ }));
37
+ }
38
+ else if (Array.isArray(data)) {
39
+ return data.map((value, key) => ({ key, value }));
40
+ }
41
+ else {
42
+ return undefined;
43
+ }
44
+ }
45
+ function explode() {
46
+ return (data, context) => (context.rev ? doImplode(data) : doExplode(data));
47
+ }
48
+ exports.explode = explode;
49
+ function implode() {
50
+ return (data, context) => (context.rev ? doExplode(data) : doImplode(data));
51
+ }
52
+ exports.implode = implode;
53
+ //# 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,MAAM,GAAG,CAAC;IACf,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;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAoB,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG;YACH,KAAK;SACN,CAAC,CAAC,CAAA;KACN;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,SAAgB,OAAO;IACrB,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;AAED,SAAgB,OAAO;IACrB,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,24 @@
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, implode } 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 sort from './sort';
9
+ import template from './template';
6
10
  declare const _default: {
7
- alt: typeof alt;
8
11
  compare: typeof compare;
9
- exclude: typeof exclude;
12
+ explode: typeof explode;
13
+ fixed: typeof fixed;
10
14
  get: typeof get;
15
+ implode: typeof implode;
11
16
  join: typeof join;
17
+ logical: typeof logical;
18
+ map: typeof map;
19
+ sort: typeof sort;
20
+ split: typeof split;
21
+ template: typeof template;
22
+ value: typeof value;
12
23
  };
13
24
  export default _default;
@@ -1,15 +1,26 @@
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 sort_1 = require("./sort");
11
+ const template_1 = require("./template");
8
12
  exports.default = {
9
- alt: alt_1.default,
10
13
  compare: compare_1.default,
11
- exclude: exclude_1.default,
14
+ explode: explode_1.explode,
15
+ fixed: value_1.fixed,
12
16
  get: get_1.default,
13
- join: join_1.default
17
+ implode: explode_1.implode,
18
+ join: joinSplit_1.join,
19
+ logical: logical_1.default,
20
+ map: map_1.default,
21
+ sort: sort_1.default,
22
+ split: joinSplit_1.split,
23
+ template: template_1.default,
24
+ value: value_1.value,
14
25
  };
15
26
  //# 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,uCAA4C;AAC5C,+BAAuB;AACvB,2CAAyC;AACzC,uCAA+B;AAC/B,+BAAuB;AACvB,iCAAyB;AACzB,yCAAiC;AAEjC,kBAAe;IACb,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,KAAK,EAAL,aAAK;IACL,GAAG,EAAH,aAAG;IACH,OAAO,EAAP,iBAAO;IACP,IAAI,EAAJ,gBAAI;IACJ,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,aAAG;IACH,IAAI,EAAJ,cAAI;IACJ,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,32 @@
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
+ if (pathArr.length === 0) {
9
+ return (_data, _context) => undefined;
10
+ }
11
+ const getFns = pathArr.map(pathGetter_1.default);
12
+ const setFns = pathArr.map(pathSetter_1.default);
13
+ return (data, { rev }) => {
14
+ if (split ? !rev : rev) {
15
+ const values = typeof data === 'string' ? data.split(sep) : [];
16
+ return setFns.reduce((obj, setFn, index) => setFn(values[index], obj), undefined);
17
+ }
18
+ else {
19
+ const values = getFns.map((fn) => fn(data));
20
+ return values.filter((value) => value !== undefined).join(sep);
21
+ }
22
+ };
23
+ }
24
+ function join(options) {
25
+ return joinSplit(options, false);
26
+ }
27
+ exports.join = join;
28
+ function split(options) {
29
+ return joinSplit(options, true);
30
+ }
31
+ exports.split = split;
32
+ //# sourceMappingURL=joinSplit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinSplit.js","sourceRoot":"","sources":["../../src/functions/joinSplit.ts"],"names":[],"mappings":";;;AAEA,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,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAA;KACtC;IAED,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,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EACzD,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,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,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"}
@@ -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
+ 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"}
@@ -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;
@@ -1,10 +1,10 @@
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
- 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,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"}
@@ -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"}