map-transform 1.6.0-rc.6 → 1.6.0-rc.7

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import mapTransform from '../../index.js';
4
+ import items from '../data/items.js';
5
+ test('should apply pipeline for every item', async () => {
6
+ const pipelines = {
7
+ castItem: {
8
+ key: 'id',
9
+ name: 'title',
10
+ customer: 'customerId',
11
+ },
12
+ };
13
+ const def = ['items', { $apply: 'castItem', $iterate: true }];
14
+ const data = items;
15
+ const fn = mapTransform(def, { pipelines });
16
+ const start = Date.now();
17
+ const ret = (await fn(data));
18
+ const end = Date.now();
19
+ assert.equal(ret.length, 10000);
20
+ assert.equal(ret[0].key, '1');
21
+ assert.equal(ret[0].name, 'Item 1');
22
+ assert.equal(ret[0].customer, '2');
23
+ console.log(`### Apply took ${end - start} ms`);
24
+ });
25
+ test('should apply pipeline applying another pipeline for every item', async () => {
26
+ const pipelines = {
27
+ castItem: [{ $apply: 'setProps' }, { $apply: 'setCustomer' }],
28
+ setProps: {
29
+ $modify: true,
30
+ key: 'id',
31
+ name: 'title',
32
+ },
33
+ setCustomer: {
34
+ $modify: true,
35
+ customer: 'customerId',
36
+ },
37
+ };
38
+ const def = ['items', { $apply: 'castItem', $iterate: true }];
39
+ const data = items;
40
+ const fn = mapTransform(def, { pipelines });
41
+ const start = Date.now();
42
+ const ret = (await fn(data));
43
+ const end = Date.now();
44
+ assert.equal(ret.length, 10000);
45
+ assert.equal(ret[0].key, '1');
46
+ assert.equal(ret[0].name, 'Item 1');
47
+ assert.equal(ret[0].customer, '2');
48
+ console.log(`### Apply nested took ${end - start} ms`);
49
+ });
50
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/legacy/performance/apply.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,15 @@ export function getPreparedPipeline(pipelineId, options) {
14
14
  preparedPipelines.set(pipelineId, pipeline);
15
15
  return pipeline;
16
16
  }
17
- const stateMapper = defToNextStateMapper(pipeline, options)(noopNext);
17
+ let stateMapper;
18
+ preparedPipelines.set(pipelineId, () => () => (state) => stateMapper(state));
19
+ try {
20
+ stateMapper = defToNextStateMapper(pipeline, options)(noopNext);
21
+ }
22
+ catch (error) {
23
+ preparedPipelines.delete(pipelineId);
24
+ throw error;
25
+ }
18
26
  const operation = () => () => stateMapper;
19
27
  preparedPipelines.set(pipelineId, operation);
20
28
  return operation;
@@ -1 +1 @@
1
- {"version":3,"file":"preparedPipelines.js","sourceRoot":"","sources":["../../../src/legacy/utils/preparedPipelines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAiB5C,MAAM,UAAU,mBAAmB,CACjC,UAA2B,EAC3B,OAAwB;IAExB,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAEnC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAA;IACrE,MAAM,SAAS,GAAc,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAA;IACpD,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC5C,OAAO,SAAS,CAAA;AAClB,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACvD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5C,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"preparedPipelines.js","sourceRoot":"","sources":["../../../src/legacy/utils/preparedPipelines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAiB5C,MAAM,UAAU,mBAAmB,CACjC,UAA2B,EAC3B,OAAwB;IAExB,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAEnC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAOD,IAAI,WAAwB,CAAA;IAC5B,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5E,IAAI,CAAC;QACH,WAAW,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAc,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAA;IACpD,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC5C,OAAO,SAAS,CAAA;AAClB,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACvD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5C,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "1.6.0-rc.6",
3
+ "version": "1.6.0-rc.7",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io>",
6
6
  "license": "ISC",
@@ -57,13 +57,13 @@
57
57
  },
58
58
  "homepage": "https://github.com/integreat-io/map-transform#readme",
59
59
  "dependencies": {
60
- "deepmerge-ts": "^8.0.1",
60
+ "deepmerge-ts": "^8.0.2",
61
61
  "map-any": "^1.0.0"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@integreat/ts-dev-setup": "^10.0.0",
65
65
  "@types/deep-freeze": "^0.1.5",
66
- "@types/node": "^26.2.0",
66
+ "@types/node": "^26.4.0",
67
67
  "@types/sinon": "^22.0.0",
68
68
  "deep-freeze": "0.0.1",
69
69
  "sinon": "^22.1.0"