map-transform 1.5.3 → 1.5.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.
package/README.md CHANGED
@@ -26,6 +26,10 @@ Some highlighted features:
26
26
 
27
27
  Requires node v14.
28
28
 
29
+ **Note:** This package is native [ESM](https://nodejs.org/api/esm.html). See this
30
+ guide on how to
31
+ [convert to or use ESM packages](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
32
+
29
33
  ### Installing
30
34
 
31
35
  Install from npm:
@@ -84,10 +88,10 @@ const def = {
84
88
 
85
89
  // You feed it to mapTransform and get a function that will transform data
86
90
  // according to your defintion
87
- const mapper = await mapTransform(def)
91
+ const mapper = mapTransform(def)
88
92
 
89
93
  // Now, run the source object through the mapper and get what you want
90
- const target = mapper(source)
94
+ const target = await mapper(source)
91
95
  // --> {
92
96
  // title: 'An interesting piece',
93
97
  // author: 'fredj',
@@ -95,20 +99,20 @@ const target = mapper(source)
95
99
  // }
96
100
 
97
101
  // And run it in reverse to get to what you started with:
98
- const source2 = mapper(target, { rev: true })
102
+ const source2 = await mapper(target, { rev: true })
99
103
  // -> {
100
- data: [
101
- {
102
- content: {
103
- name: 'An interesting piece'
104
- },
105
- meta: {
106
- author: 'fredj',
107
- date: 1533750490952
108
- }
109
- },
110
- ]
111
- }
104
+ // data: [
105
+ // {
106
+ // content: {
107
+ // name: 'An interesting piece'
108
+ // },
109
+ // meta: {
110
+ // author: 'fredj',
111
+ // date: 1533750490952
112
+ // }
113
+ // },
114
+ // ]
115
+ // }
112
116
  ```
113
117
 
114
118
  You may improve this with pipelines, expressed through arrays. For instance,
@@ -1357,8 +1361,7 @@ in all cases.
1357
1361
 
1358
1362
  #### `lookdown({ arrayPath, propPath, matchSeveral })` operation
1359
1363
 
1360
- The `lookdown` operation is the exact oposite of `lookup`, and the name is
1361
- marelly word-play on that. See
1364
+ The `lookdown` operation works the same as `lookup` but in the opposite direction. See
1362
1365
  [the `lookup` operation](#lookup-arraypath-proppath-matchseveral-operation)
1363
1366
  for more on how it works, just reverse the directions.
1364
1367
 
@@ -1572,6 +1575,9 @@ The default is to check wheter the values resulting from `path` and `match` or
1572
1575
  `'<='`, `in`, or `exists`. `in` requires equality to at least one of the
1573
1576
  elements in an array, and `exists` requires any value besides `undefined`.
1574
1577
 
1578
+ Dates are compared using their milliseconds since epoc (1970-01-01) numeric
1579
+ values.
1580
+
1575
1581
  If the `path` points to an array, the value is expected to be one of the values
1576
1582
  in the array.
1577
1583
 
@@ -1778,6 +1784,11 @@ const def28b = {
1778
1784
  const mapper = mapTransform(def28b, options)
1779
1785
  ```
1780
1786
 
1787
+ You may also provide a `flip` property on the operation object, and when set to
1788
+ `true`, it will use the dictionary in the opposite direction. This means that
1789
+ if may e.g. use a dictionary in reverse, as if you were going forward. The
1790
+ default value is `false`.
1791
+
1781
1792
  #### `merge({path})` transformer
1782
1793
 
1783
1794
  The `merge` transformer accepts a pipeline or an array of pipelines in `path`,
@@ -4,11 +4,20 @@ import { defToDataMapper } from '../utils/definitionHelpers.js';
4
4
  import { goForward } from '../utils/stateHelpers.js';
5
5
  import xor from '../utils/xor.js';
6
6
  import { unescapeValue } from '../utils/escape.js';
7
+ import { isDate } from '../utils/is.js';
7
8
  const not = (comparer) => (value, match) => !comparer(value, match);
8
9
  const compareArrayOrValue = (comparer) => (value, match) => Array.isArray(value)
9
10
  ? value.some((value) => comparer(value, match))
10
11
  : comparer(value, match);
11
12
  const isNumeric = (value) => typeof value === 'number';
13
+ function prepareValue(value) {
14
+ if (isDate(value)) {
15
+ return value.getTime();
16
+ }
17
+ else {
18
+ return value;
19
+ }
20
+ }
12
21
  const compareArrayOrValueNumeric = (comparer) => compareArrayOrValue((value, match) => isNumeric(value) && isNumeric(match) && comparer(value, match));
13
22
  const compareEqual = compareArrayOrValue((value, match) => value === match);
14
23
  const compareIn = (value, match) => Array.isArray(match)
@@ -58,16 +67,16 @@ const transformer = function compare({ path = '.', operator = '=', match, value,
58
67
  if (typeof path === 'string' || !path) {
59
68
  const getValue = pathGetter(path);
60
69
  return (data, state) => {
61
- const value = getValue(data, state);
62
- const match = getMatch(data, state);
70
+ const value = prepareValue(getValue(data, state));
71
+ const match = prepareValue(getMatch(data, state));
63
72
  return xor(comparer(value, match), not);
64
73
  };
65
74
  }
66
75
  else {
67
76
  const getValue = defToDataMapper(path, options);
68
77
  return async (data, state) => {
69
- const value = await getValue(data, goForward(state));
70
- const match = getMatch(data, state);
78
+ const value = prepareValue(await getValue(data, goForward(state)));
79
+ const match = prepareValue(getMatch(data, state));
71
80
  return xor(comparer(value, match), not);
72
81
  };
73
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/transformers/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/transformers/compare.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Dictionary, TransformerProps, Transformer } from '../types.js';
2
2
  export interface Props extends TransformerProps {
3
3
  dictionary?: Dictionary | string;
4
+ flip?: boolean;
4
5
  }
5
6
  declare const transformer: Transformer<Props>;
6
7
  export default transformer;
@@ -1,5 +1,6 @@
1
1
  import mapAny from 'map-any';
2
2
  import { escapeValue, unescapeValue } from '../utils/escape.js';
3
+ import xor from '../utils/xor.js';
3
4
  const isSupportedValue = (data) => ['string', 'number', 'boolean'].includes(typeof data) ||
4
5
  data === null ||
5
6
  data === undefined;
@@ -37,7 +38,7 @@ const transformer = function map(props) {
37
38
  return () => undefined;
38
39
  }
39
40
  return (data, state) => {
40
- const { rev = false } = state;
41
+ const rev = xor(state.rev, props.flip);
41
42
  const match = translate(escapeValue(data), dictionary, rev);
42
43
  return match === '*' ? data : unescapeValue(match);
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/transformers/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/transformers/map.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Path } from '../types.js';
2
2
  export declare const isObject: (value: unknown) => value is Record<string, unknown>;
3
+ export declare const isDate: (value: unknown) => value is Date;
3
4
  export declare const isString: (value: unknown) => value is string;
4
5
  export declare const isPath: (value: unknown) => value is Path;
5
6
  export declare const isArrayPath: (value: unknown) => value is Path;
package/dist/utils/is.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export const isObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
2
+ export const isDate = (value) => Object.prototype.toString.call(value) === '[object Date]';
2
3
  export const isString = (value) => typeof value === 'string';
3
4
  export const isPath = (value) => typeof value === 'string';
4
5
  export const isArrayPath = (value) => isPath(value) && value.endsWith('[]');
@@ -1 +1 @@
1
- {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,CAAA;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,CAAA;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC7E,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAI,KAAQ,EAA2B,EAAE,CAC3E,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,KAAc,EAAgB,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAA;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,CAAA;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,CAAA;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC7E,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAI,KAAQ,EAA2B,EAAE,CAC3E,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,KAAc,EAAgB,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io>",
6
6
  "license": "ISC",
@@ -54,9 +54,9 @@
54
54
  "devDependencies": {
55
55
  "@integreat/ts-dev-setup": "^6.0.4",
56
56
  "@types/deep-freeze": "^0.1.5",
57
- "@types/node": "^20.16.5",
58
- "@types/sinon": "^17.0.3",
57
+ "@types/node": "^22.17.1",
58
+ "@types/sinon": "^17.0.4",
59
59
  "deep-freeze": "0.0.1",
60
- "sinon": "^18.0.1"
60
+ "sinon": "^21.0.0"
61
61
  }
62
62
  }