map-transform 1.6.0-rc.6 → 1.6.0-rc.8
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/NEXT.md +123 -0
- package/README.md +187 -52
- package/WRITING_PIPELINES.md +279 -106
- package/dist/legacy/createPathMapper.d.ts +4 -0
- package/dist/legacy/createPathMapper.js +21 -2
- package/dist/legacy/createPathMapper.js.map +1 -1
- package/dist/legacy/operations/lookup.js +2 -2
- package/dist/legacy/operations/lookup.js.map +1 -1
- package/dist/legacy/performance/apply.d.ts +1 -0
- package/dist/legacy/performance/apply.js +50 -0
- package/dist/legacy/performance/apply.js.map +1 -0
- package/dist/legacy/transformers/bucket.js +2 -1
- package/dist/legacy/transformers/bucket.js.map +1 -1
- package/dist/legacy/transformers/compare.js +3 -3
- package/dist/legacy/transformers/compare.js.map +1 -1
- package/dist/legacy/transformers/get.js +2 -2
- package/dist/legacy/transformers/get.js.map +1 -1
- package/dist/legacy/transformers/project.js +2 -2
- package/dist/legacy/transformers/project.js.map +1 -1
- package/dist/legacy/transformers/sort.js +2 -2
- package/dist/legacy/transformers/sort.js.map +1 -1
- package/dist/legacy/utils/preparedPipelines.js +9 -1
- package/dist/legacy/utils/preparedPipelines.js.map +1 -1
- package/dist/mapTransform.d.ts +1 -0
- package/dist/mapTransform.js +14 -22
- package/dist/mapTransform.js.map +1 -1
- package/dist/prep/alt.js +6 -0
- package/dist/prep/alt.js.map +1 -1
- package/dist/prep/apply.js +15 -3
- package/dist/prep/apply.js.map +1 -1
- package/dist/prep/array.js +6 -0
- package/dist/prep/array.js.map +1 -1
- package/dist/prep/filter.js +4 -1
- package/dist/prep/filter.js.map +1 -1
- package/dist/prep/index.d.ts +1 -1
- package/dist/prep/index.js +33 -12
- package/dist/prep/index.js.map +1 -1
- package/dist/prep/iterate.d.ts +1 -1
- package/dist/prep/iterate.js +2 -1
- package/dist/prep/iterate.js.map +1 -1
- package/dist/prep/mutation.js +17 -6
- package/dist/prep/mutation.js.map +1 -1
- package/dist/prep/path.js +3 -9
- package/dist/prep/path.js.map +1 -1
- package/dist/prep/transform.d.ts +1 -0
- package/dist/prep/transform.js +5 -4
- package/dist/prep/transform.js.map +1 -1
- package/dist/prepareOptions.d.ts +9 -0
- package/dist/prepareOptions.js +24 -0
- package/dist/prepareOptions.js.map +1 -0
- package/dist/run/alt.js +7 -5
- package/dist/run/alt.js.map +1 -1
- package/dist/run/index.d.ts +0 -5
- package/dist/run/index.js +33 -27
- package/dist/run/index.js.map +1 -1
- package/dist/run/iterate.js +2 -22
- package/dist/run/iterate.js.map +1 -1
- package/dist/run/mutation.d.ts +2 -1
- package/dist/run/mutation.js +2 -2
- package/dist/run/mutation.js.map +1 -1
- package/dist/run/path.d.ts +2 -1
- package/dist/run/path.js +11 -6
- package/dist/run/path.js.map +1 -1
- package/dist/run/resolveParentSets.d.ts +2 -0
- package/dist/run/resolveParentSets.js +46 -0
- package/dist/run/resolveParentSets.js.map +1 -0
- package/dist/run/transform.d.ts +3 -1
- package/dist/run/transform.js +9 -1
- package/dist/run/transform.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +2 -0
- package/dist/state.js.map +1 -1
- package/dist/typesNext.d.ts +1 -1
- package/dist/utils/is.d.ts +1 -0
- package/dist/utils/is.js +1 -0
- package/dist/utils/is.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { DataMapper } from '../createDataMapper.js';
|
|
1
2
|
import type { Path, DataMapperWithState } from './types.js';
|
|
3
|
+
export declare function normalizeRootPath(path?: Path | null): string | null | undefined;
|
|
4
|
+
export declare const createPathGetter: (path?: Path | null) => DataMapper;
|
|
5
|
+
export declare function createPathSetter(path?: Path | null): DataMapper;
|
|
2
6
|
export declare function pathGetter(path?: Path | null): DataMapperWithState;
|
|
3
7
|
export declare function pathSetter(path?: Path | null): DataMapperWithState;
|
|
@@ -1,13 +1,32 @@
|
|
|
1
1
|
import { pathGetter as pathGetterNext, pathSetter as pathSetterNext, } from '../createPathMapper.js';
|
|
2
2
|
import State from '../state.js';
|
|
3
|
+
const isObsoleteRootPath = (path) => path[0] === '^' && path.length > 1 && path[1] !== '^' && path[1] !== '.';
|
|
4
|
+
const getPrefix = (path) => path[0] === '>' || path[0] === '<' ? path[0] : '';
|
|
5
|
+
export function normalizeRootPath(path) {
|
|
6
|
+
if (typeof path !== 'string') {
|
|
7
|
+
return path;
|
|
8
|
+
}
|
|
9
|
+
const prefix = getPrefix(path);
|
|
10
|
+
const rest = path.slice(prefix.length);
|
|
11
|
+
return isObsoleteRootPath(rest) ? `${prefix}^^.${rest.slice(1)}` : path;
|
|
12
|
+
}
|
|
13
|
+
const isParentOrRootPath = (path) => typeof path === 'string' && path[getPrefix(path).length] === '^';
|
|
14
|
+
const returnTarget = (_value, state) => state.target;
|
|
15
|
+
export const createPathGetter = (path) => pathGetterNext(normalizeRootPath(path));
|
|
16
|
+
export function createPathSetter(path) {
|
|
17
|
+
const normalized = normalizeRootPath(path);
|
|
18
|
+
return isParentOrRootPath(normalized)
|
|
19
|
+
? returnTarget
|
|
20
|
+
: pathSetterNext(normalized);
|
|
21
|
+
}
|
|
3
22
|
export function pathGetter(path) {
|
|
4
|
-
const getter =
|
|
23
|
+
const getter = createPathGetter(path);
|
|
5
24
|
return (value, state) => {
|
|
6
25
|
return getter(value, new State(state));
|
|
7
26
|
};
|
|
8
27
|
}
|
|
9
28
|
export function pathSetter(path) {
|
|
10
|
-
const setter =
|
|
29
|
+
const setter = createPathSetter(path);
|
|
11
30
|
return (value, state) => {
|
|
12
31
|
return setter(value, new State(state));
|
|
13
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPathMapper.js","sourceRoot":"","sources":["../../src/legacy/createPathMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,UAAU,IAAI,cAAc,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"createPathMapper.js","sourceRoot":"","sources":["../../src/legacy/createPathMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,UAAU,IAAI,cAAc,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,MAAM,aAAa,CAAA;AAM/B,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAC1C,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;AAE1E,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAGnD,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACzE,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,IAAkB,EAAE,EAAE,CAChD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAA;AAElE,MAAM,YAAY,GAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAA;AAOhE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAkB,EAAc,EAAE,CACjE,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;AAOzC,MAAM,UAAU,gBAAgB,CAAC,IAAkB;IACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC1C,OAAO,kBAAkB,CAAC,UAAU,CAAC;QACnC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import mapAny from 'map-any/async.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createPathGetter } from '../createPathMapper.js';
|
|
3
3
|
import { getStateValue, setStateValue, goForward, revFromState, } from '../utils/stateHelpers.js';
|
|
4
4
|
import { defToNextStateMapper } from '../utils/definitionHelpers.js';
|
|
5
5
|
import { noopNext } from '../utils/stateHelpers.js';
|
|
@@ -37,7 +37,7 @@ export function lookup({ arrayPath, propPath, matchSeveral = false, flip: doFlip
|
|
|
37
37
|
if (typeof propPath !== 'string' && propPath !== undefined) {
|
|
38
38
|
throw new TypeError("The 'lookup' operation does not allow `path` (the prop path) to be a pipeline");
|
|
39
39
|
}
|
|
40
|
-
const getter =
|
|
40
|
+
const getter = createPathGetter(propPath);
|
|
41
41
|
const matchFn = matchInArray(defToNextStateMapper(arrayPath, options), matchSeveral ? findAllMatches : findOneMatch, getter);
|
|
42
42
|
const extractProp = (state) => async (value) => getter(value, new StateClass(state));
|
|
43
43
|
return (next) => createLookupFn(next, matchFn, extractProp, doFlip);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/legacy/operations/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/legacy/operations/lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { prepare, addToBucket, getBucketSize, } from '../../transformers/bucket.js';
|
|
2
2
|
import { defToDataMapper } from '../utils/definitionHelpers.js';
|
|
3
|
+
import { normalizeRootPath } from '../createPathMapper.js';
|
|
3
4
|
import { ensureArray } from '../../utils/array.js';
|
|
4
5
|
import { isObject, isNonvalue } from '../../utils/is.js';
|
|
5
6
|
import StateClass from '../../state.js';
|
|
@@ -36,7 +37,7 @@ const extractArrayFromBuckets = (buckets, keys, nonvalues) => isObject(buckets)
|
|
|
36
37
|
: [];
|
|
37
38
|
const transformer = function bucket(props) {
|
|
38
39
|
return (options) => {
|
|
39
|
-
const [getFn, setFn, getGroupByPathFn, keys, bucketPipelines] = prepare(props, options, defToDataMapper);
|
|
40
|
+
const [getFn, setFn, getGroupByPathFn, keys, bucketPipelines] = prepare({ ...props, path: normalizeRootPath(props.path ?? '.') }, options, defToDataMapper);
|
|
40
41
|
return async (data, state) => {
|
|
41
42
|
const stateNext = new StateClass(state);
|
|
42
43
|
if (stateNext.isRev) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../../src/legacy/transformers/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EACX,aAAa,GAGd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,UAAU,MAAM,gBAAgB,CAAA;AA6BvC,KAAK,UAAU,eAAe,CAC5B,KAAiB,EACjB,OAAqB,EACrB,UAAkC,EAClC,IAAa,EACb,KAAiB,EACjB,SAAqB;IAErB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAA;IAE9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBAC/D,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;oBACzD,IAAI,OAAO,EAAE,CAAC;wBACZ,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;wBAClC,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,uBAAuB,GAAG,CAC9B,OAAgB,EAChB,IAAe,EACf,SAAqB,EACrB,EAAE,CACF,QAAQ,CAAC,OAAO,CAAC;IACf,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAE3B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,EAAE,CAAA;AAER,MAAM,WAAW,GAA4B,SAAS,MAAM,CAAC,KAAK;IAChE,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,OAAO,CACrE,
|
|
1
|
+
{"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../../src/legacy/transformers/bucket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import mapAny from 'map-any';
|
|
2
|
-
import {
|
|
2
|
+
import { createPathGetter } from '../createPathMapper.js';
|
|
3
3
|
import { doCompare, createComparer } from '../../transformers/compare.js';
|
|
4
4
|
import { defToDataMapper } from '../utils/definitionHelpers.js';
|
|
5
5
|
import { unescapeValue } from '../../utils/escape.js';
|
|
@@ -11,10 +11,10 @@ const transformer = function compare({ path = '.', operator = '=', match, value,
|
|
|
11
11
|
const realMatchValue = mapAny(unescapeValue, match);
|
|
12
12
|
const comparer = createComparer(operator);
|
|
13
13
|
const getMatch = typeof matchPath === 'string'
|
|
14
|
-
?
|
|
14
|
+
? createPathGetter(matchPath)
|
|
15
15
|
: () => realMatchValue;
|
|
16
16
|
if (typeof path === 'string' || !path) {
|
|
17
|
-
const getValue =
|
|
17
|
+
const getValue = createPathGetter(path);
|
|
18
18
|
return (data, state) => {
|
|
19
19
|
const stateNext = new StateClass(state);
|
|
20
20
|
const value = getValue(data, stateNext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/legacy/transformers/compare.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/legacy/transformers/compare.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAQ/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,UAAU,MAAM,gBAAgB,CAAA;AAYvC,MAAM,WAAW,GACf,SAAS,OAAO,CAAC,EACf,IAAI,GAAG,GAAG,EACV,QAAQ,GAAG,GAAG,EACd,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,GAAG,KAAK,GACZ;IACC,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAC3C,SAAS,GAAG,SAAS,IAAI,SAAS,CAAA;IAElC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,QAAQ,GACZ,OAAO,SAAS,KAAK,QAAQ;YAC3B,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAC7B,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAA;QAE1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACvC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;gBACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBACvC,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACnE,CAAC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;gBACvC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;gBAC5D,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACnE,CAAC,CAAA;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEH,eAAe,WAAW,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import StateClass from '../../state.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createPathGetter } from '../createPathMapper.js';
|
|
3
3
|
const extractPath = (path) => typeof path === 'string' ? path : path.path;
|
|
4
4
|
const transformer = function get(props) {
|
|
5
5
|
return () => {
|
|
@@ -7,7 +7,7 @@ const transformer = function get(props) {
|
|
|
7
7
|
if (typeof path !== 'string' && path !== undefined) {
|
|
8
8
|
throw new TypeError("The 'get' transformer does not allow `path` to be a pipeline");
|
|
9
9
|
}
|
|
10
|
-
const mapper =
|
|
10
|
+
const mapper = createPathGetter(path);
|
|
11
11
|
return (data, state) => mapper(data, new StateClass(state));
|
|
12
12
|
};
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/legacy/transformers/get.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/legacy/transformers/get.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOzD,MAAM,WAAW,GAAG,CAAC,IAAoB,EAAE,EAAE,CAC3C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AAE7C,MAAM,WAAW,GAAgC,SAAS,GAAG,CAAC,KAAK;IACjE,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAA;QACH,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import mapAny from 'map-any';
|
|
2
|
-
import {
|
|
2
|
+
import { createPathGetter } from '../createPathMapper.js';
|
|
3
3
|
import { isObject, isString, isNonEmptyArray } from '../../utils/is.js';
|
|
4
4
|
import { ensureArray } from '../../utils/array.js';
|
|
5
5
|
import StateClass from '../../state.js';
|
|
@@ -11,7 +11,7 @@ const projectProps = (rawProps, doInclude) => {
|
|
|
11
11
|
return (obj) => Object.fromEntries(Object.entries(obj).filter(filterFn));
|
|
12
12
|
};
|
|
13
13
|
const projectPropsFromPath = (path, rawProps, doInclude) => {
|
|
14
|
-
const getFn =
|
|
14
|
+
const getFn = createPathGetter(path);
|
|
15
15
|
return (obj, state) => {
|
|
16
16
|
let props = getFn(obj, new StateClass(state));
|
|
17
17
|
if (props === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/legacy/transformers/project.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/legacy/transformers/project.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,UAAU,MAAM,gBAAgB,CAAA;AAUvC,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAE,SAAkB,EAAE,EAAE;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAoB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACtD,OAAO,CAAC,GAA4B,EAAE,EAAE,CACtC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,IAAY,EACZ,QAA+B,EAC/B,SAAkB,EAClB,EAAE;IACF,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CAAC,GAA4B,EAAE,KAAY,EAAE,EAAE;QACpD,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,QAAQ,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC,CAAA;AACH,CAAC,CAAA;AAED,SAAS,gBAAgB,CACvB,OAAkB,EAClB,WAAoB,EACpB,OAAkB,EAClB,WAAoB;IAEpB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;SAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;SAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;SAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAA4B,EAAE,EAAE,CAAC,GAAG,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAuB,SAAS,MAAM,CAAC,EACtD,OAAO,EACP,WAAW,EACX,OAAO,EACP,WAAW,GACZ;IAEC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAI9E,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3B,MAAM,CACJ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/D,IAAI,CACL,CAAA;AACL,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createPathGetter } from '../createPathMapper.js';
|
|
2
2
|
import StateClass from '../../state.js';
|
|
3
3
|
const compareNumbers = (a, b, direction) => (a - b) * direction;
|
|
4
4
|
const compareStrings = (a, b, direction) => a === b ? 0 : a > b ? direction : -1 * direction;
|
|
@@ -29,7 +29,7 @@ const transformer = function sort(props) {
|
|
|
29
29
|
throw new TypeError("The 'sort' transformer does not allow `path` to be a pipeline");
|
|
30
30
|
}
|
|
31
31
|
const direction = asc === false ? -1 : 1;
|
|
32
|
-
const getFn = path ?
|
|
32
|
+
const getFn = path ? createPathGetter(path) : (value) => value;
|
|
33
33
|
return (data, state) => {
|
|
34
34
|
if (!Array.isArray(data) || data.length < 2) {
|
|
35
35
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/legacy/transformers/sort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/legacy/transformers/sort.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
|
-
|
|
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;
|
|
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/dist/mapTransform.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { sync as syncTransformers, async as asyncTransformers } from './transfor
|
|
|
3
3
|
import State from './state.js';
|
|
4
4
|
export { syncTransformers, asyncTransformers, State };
|
|
5
5
|
export { pathGetter, pathSetter } from './createPathMapper.js';
|
|
6
|
+
export { default as prepareOptions } from './prepareOptions.js';
|
|
6
7
|
export interface InitialState {
|
|
7
8
|
context?: unknown[];
|
|
8
9
|
target?: unknown;
|
package/dist/mapTransform.js
CHANGED
|
@@ -2,41 +2,33 @@ import preparePipeline from './prep/index.js';
|
|
|
2
2
|
import runPipeline, { runPipelineAsync } from './run/index.js';
|
|
3
3
|
import { sync as syncTransformers, async as asyncTransformers, } from './transformers/index.js';
|
|
4
4
|
import State from './state.js';
|
|
5
|
+
import { createInternalOptions } from './prepareOptions.js';
|
|
5
6
|
export { syncTransformers, asyncTransformers, State };
|
|
6
7
|
export { pathGetter, pathSetter } from './createPathMapper.js';
|
|
7
|
-
|
|
8
|
-
const pipelines = new Map();
|
|
9
|
-
if (options.neededPipelineIds && options.pipelines) {
|
|
10
|
-
for (const id of options.neededPipelineIds) {
|
|
11
|
-
const pipeline = options.pipelines[id];
|
|
12
|
-
pipelines.set(id, preparePipeline(pipeline, options));
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return pipelines;
|
|
16
|
-
}
|
|
8
|
+
export { default as prepareOptions } from './prepareOptions.js';
|
|
17
9
|
function createTransformFunction(pipeline, stateProps) {
|
|
18
10
|
return (value, state) => runPipeline(value, pipeline, { ...state, ...stateProps });
|
|
19
11
|
}
|
|
20
12
|
function createTransformFunctionAsync(pipeline, stateProps) {
|
|
21
13
|
return async (value, state) => runPipelineAsync(value, pipeline, { ...state, ...stateProps });
|
|
22
14
|
}
|
|
23
|
-
function preparePipelinesAndStateProps(def, options, transformers) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
15
|
+
function preparePipelinesAndStateProps(def, options, transformers, mode) {
|
|
16
|
+
const internalOptions = createInternalOptions(options, mode, transformers);
|
|
17
|
+
const pipeline = preparePipeline(def, internalOptions);
|
|
18
|
+
return [
|
|
19
|
+
pipeline,
|
|
20
|
+
{
|
|
21
|
+
nonvalues: options.nonvalues,
|
|
22
|
+
pipelines: internalOptions.preparedPipelines,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
33
25
|
}
|
|
34
26
|
export default function mapTransform(def, options = {}) {
|
|
35
|
-
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, syncTransformers);
|
|
27
|
+
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, syncTransformers, 'sync');
|
|
36
28
|
return createTransformFunction(pipeline, stateProps);
|
|
37
29
|
}
|
|
38
30
|
export function mapTransformAsync(def, options = {}) {
|
|
39
|
-
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, asyncTransformers);
|
|
31
|
+
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, asyncTransformers, 'async');
|
|
40
32
|
return createTransformFunctionAsync(pipeline, stateProps);
|
|
41
33
|
}
|
|
42
34
|
//# sourceMappingURL=mapTransform.js.map
|
package/dist/mapTransform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapTransform.js","sourceRoot":"","sources":["../src/mapTransform.ts"],"names":[],"mappings":"AAAA,OAAO,eAAiD,MAAM,iBAAiB,CAAA;AAC/E,OAAO,WAAW,EAAE,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,IAAI,IAAI,gBAAgB,EACxB,KAAK,IAAI,iBAAiB,GAC3B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"mapTransform.js","sourceRoot":"","sources":["../src/mapTransform.ts"],"names":[],"mappings":"AAAA,OAAO,eAAiD,MAAM,iBAAiB,CAAA;AAC/E,OAAO,WAAW,EAAE,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,IAAI,IAAI,gBAAgB,EACxB,KAAK,IAAI,iBAAiB,GAC3B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAI3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAW/D,SAAS,uBAAuB,CAC9B,QAAyB,EACzB,UAA0B;IAE1B,OAAO,CAAC,KAAc,EAAE,KAAsB,EAAE,EAAE,CAChD,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC,CAAA;AAC7D,CAAC;AAID,SAAS,4BAA4B,CACnC,QAAyB,EACzB,UAA0B;IAE1B,OAAO,KAAK,EAAE,KAAc,EAAE,KAAsB,EAAE,EAAE,CACtD,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,6BAA6B,CACpC,GAAwB,EACxB,OAAgB,EAChB,YAA4D,EAC5D,IAAU;IAEV,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC1E,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;IACtD,OAAO;QACL,QAAQ;QACR;YACE,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,eAAe,CAAC,iBAAiB;SAC7C;KACF,CAAA;AACH,CAAC;AAUD,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,GAAwB,EACxB,UAAmB,EAAE;IAErB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,6BAA6B,CAC1D,GAAG,EACH,OAAO,EACP,gBAAgB,EAChB,MAAM,CACP,CAAA;IACD,OAAO,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AACtD,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAC/B,GAAwB,EACxB,UAAmB,EAAE;IAErB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,6BAA6B,CAC1D,GAAG,EACH,OAAO,EACP,iBAAiB,EACjB,OAAO,CACR,CAAA;IACD,OAAO,4BAA4B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC3D,CAAC"}
|
package/dist/prep/alt.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import preparePipeline from './index.js';
|
|
2
2
|
export default function prepareAltStep({ $alt: pipelines }, options) {
|
|
3
|
+
if (pipelines === undefined) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (!Array.isArray(pipelines)) {
|
|
7
|
+
throw new Error('Alt operation was given a value that is not an array of pipelines');
|
|
8
|
+
}
|
|
3
9
|
if (pipelines.length > 0) {
|
|
4
10
|
return {
|
|
5
11
|
type: 'alt',
|
package/dist/prep/alt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/prep/alt.ts"],"names":[],"mappings":"AAAA,OAAO,eAA4B,MAAM,YAAY,CAAA;AAIrD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,IAAI,EAAE,SAAS,EAAgB,EACjC,OAAgB;IAEhB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CACnC;SACF,CAAA;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/prep/alt.ts"],"names":[],"mappings":"AAAA,OAAO,eAA4B,MAAM,YAAY,CAAA;AAIrD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,IAAI,EAAE,SAAS,EAAgB,EACjC,OAAgB;IAEhB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAA;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CACnC;SACF,CAAA;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/dist/prep/apply.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import preparePipeline from './index.js';
|
|
1
2
|
export default function prepareApplyStep({ $apply: id }, options) {
|
|
2
3
|
if (!id) {
|
|
3
4
|
throw new Error('Failed to apply pipeline. No id provided');
|
|
@@ -11,10 +12,21 @@ export default function prepareApplyStep({ $apply: id }, options) {
|
|
|
11
12
|
if (!Object.prototype.hasOwnProperty.call(options.pipelines, id)) {
|
|
12
13
|
throw new Error(`Failed to apply pipeline '${String(id)}'. Unknown pipeline`);
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
const { preparedPipelines } = options;
|
|
16
|
+
if (!preparedPipelines) {
|
|
17
|
+
throw new Error(`Failed to apply pipeline '${String(id)}'. Options have no prepared pipelines Map`);
|
|
18
|
+
}
|
|
19
|
+
if (!preparedPipelines.has(id)) {
|
|
20
|
+
const pipeline = [];
|
|
21
|
+
preparedPipelines.set(id, pipeline);
|
|
22
|
+
try {
|
|
23
|
+
pipeline.push(...preparePipeline(options.pipelines[id], options));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
preparedPipelines.delete(id);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
16
29
|
}
|
|
17
|
-
options.neededPipelineIds.add(id);
|
|
18
30
|
return { type: 'apply', id };
|
|
19
31
|
}
|
|
20
32
|
//# sourceMappingURL=apply.js.map
|
package/dist/prep/apply.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/prep/apply.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/prep/apply.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,YAAY,CAAA;AAMxC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EAAE,MAAM,EAAE,EAAE,EAAkB,EAC9B,OAAgB;IAEhB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAC7D,CAAA;IACH,CAAC;IACD,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,EAAE,CAAC,2CAA2C,CACnF,CAAA;IACH,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAoB,EAAE,CAAA;QACpC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACnC,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC5B,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;AAC9B,CAAC"}
|
package/dist/prep/array.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import preparePipeline from './index.js';
|
|
2
2
|
export default function prepareArrayStep({ $array: pipelines, $flip: flip }, options) {
|
|
3
|
+
if (pipelines === undefined) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (!Array.isArray(pipelines)) {
|
|
7
|
+
throw new Error('Array operation was given a value that is not an array of pipelines');
|
|
8
|
+
}
|
|
3
9
|
return {
|
|
4
10
|
type: 'array',
|
|
5
11
|
pipelines: pipelines.map((pipeline) => preparePipeline(pipeline, options)),
|
package/dist/prep/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/prep/array.ts"],"names":[],"mappings":"AAAA,OAAO,eAA4B,MAAM,YAAY,CAAA;AAIrD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAkB,EAClD,OAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1E,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/prep/array.ts"],"names":[],"mappings":"AAAA,OAAO,eAA4B,MAAM,YAAY,CAAA;AAIrD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAkB,EAClD,OAAgB;IAEhB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1E,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC,CAAA;AACH,CAAC"}
|
package/dist/prep/filter.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import preparePipeline from './index.js';
|
|
2
|
-
import prepareTransformStep from './transform.js';
|
|
2
|
+
import prepareTransformStep, { createTransformerFunctionError, } from './transform.js';
|
|
3
3
|
function createPipeline(idOrPipeline, props, options) {
|
|
4
4
|
if (!idOrPipeline) {
|
|
5
5
|
throw new Error('Filter operation is missing transformer id or pipeline');
|
|
6
6
|
}
|
|
7
|
+
else if (typeof idOrPipeline === 'function') {
|
|
8
|
+
throw createTransformerFunctionError('Filter');
|
|
9
|
+
}
|
|
7
10
|
else if (typeof idOrPipeline === 'string' ||
|
|
8
11
|
typeof idOrPipeline === 'symbol') {
|
|
9
12
|
const op = prepareTransformStep({ $transform: idOrPipeline, ...props }, options, 'Filter');
|
package/dist/prep/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/prep/filter.ts"],"names":[],"mappings":"AAAA,OAAO,eAGN,MAAM,YAAY,CAAA;AACnB,OAAO,oBAAoB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/prep/filter.ts"],"names":[],"mappings":"AAAA,OAAO,eAGN,MAAM,YAAY,CAAA;AACnB,OAAO,oBAAoB,EAAE,EAC3B,8BAA8B,GAC/B,MAAM,gBAAgB,CAAA;AAQvB,SAAS,cAAc,CACrB,YAAmD,EACnD,KAA8B,EAC9B,OAAgB;IAEhB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;SAAM,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC;SAAM,IACL,OAAO,YAAY,KAAK,QAAQ;QAChC,OAAO,YAAY,KAAK,QAAQ,EAChC,CAAC;QACD,MAAM,EAAE,GAAG,oBAAoB,CAC7B,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EACtC,OAAO,EACP,QAAQ,CACT,CAAA;QACD,OAAO,CAAC,EAAE,CAAC,CAAA;IACb,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC;AAcD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,EAAmB,EACpD,OAAgB;IAEhB,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ;KACT,CAAA;AACH,CAAC"}
|
package/dist/prep/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type TransformDefinition = Step | Pipeline | null;
|
|
|
7
7
|
export interface Options {
|
|
8
8
|
transformers?: Record<string | symbol, Transformer | AsyncTransformer>;
|
|
9
9
|
pipelines?: Record<string | symbol, TransformDefinition>;
|
|
10
|
-
|
|
10
|
+
preparedPipelines?: Map<string | symbol, PreppedPipeline>;
|
|
11
11
|
dictionaries?: Dictionaries;
|
|
12
12
|
nonvalues?: unknown[];
|
|
13
13
|
fwdAlias?: string;
|
package/dist/prep/index.js
CHANGED
|
@@ -10,13 +10,24 @@ import prepareTransformStep from './transform.js';
|
|
|
10
10
|
import prepareValueStep from './value.js';
|
|
11
11
|
import modifyOperation from './modifyOperation.js';
|
|
12
12
|
import { isNotNullOrUndefined } from '../utils/is.js';
|
|
13
|
+
import { unescapeValue } from '../utils/escape.js';
|
|
14
|
+
const operationKeys = [
|
|
15
|
+
'$transform',
|
|
16
|
+
'$value',
|
|
17
|
+
'$apply',
|
|
18
|
+
'$alt',
|
|
19
|
+
'$array',
|
|
20
|
+
'$if',
|
|
21
|
+
'$filter',
|
|
22
|
+
'$iterate',
|
|
23
|
+
];
|
|
24
|
+
const isOperationKey = (key) => operationKeys.includes(key);
|
|
13
25
|
const isAltOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$alt');
|
|
14
26
|
const isApplyOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$apply');
|
|
15
27
|
const isArrayOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$array');
|
|
16
28
|
const isFilterOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$filter');
|
|
17
29
|
const isIfOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$if');
|
|
18
|
-
const isIterateOperation = (step) =>
|
|
19
|
-
typeof step.$iterate !== 'boolean';
|
|
30
|
+
const isIterateOperation = (step) => isNotNullOrUndefined(step.$iterate) && typeof step.$iterate !== 'boolean';
|
|
20
31
|
const isTransformOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$transform');
|
|
21
32
|
const isValueOperation = (step) => Object.prototype.hasOwnProperty.call(step, '$value');
|
|
22
33
|
function getDir(dir, options) {
|
|
@@ -31,20 +42,21 @@ function getDir(dir, options) {
|
|
|
31
42
|
return 0;
|
|
32
43
|
}
|
|
33
44
|
function extractStepProps({ $iterate, $direction, $nonvalues, $noDefaults: noDefaults, $undefined, ...step }, options) {
|
|
34
|
-
const it = $iterate ===
|
|
45
|
+
const it = typeof $iterate === 'boolean' ? $iterate : undefined;
|
|
46
|
+
if ($iterate && typeof $iterate !== 'boolean') {
|
|
47
|
+
step.$iterate = $iterate;
|
|
48
|
+
}
|
|
35
49
|
const dir = getDir($direction, options);
|
|
36
|
-
const
|
|
50
|
+
const rawNonvalues = Array.isArray($nonvalues)
|
|
37
51
|
? $nonvalues
|
|
38
52
|
: Array.isArray($undefined)
|
|
39
53
|
? $undefined
|
|
40
54
|
: undefined;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
return it || dir || noDefaults !== undefined || nonvalues
|
|
55
|
+
const nonvalues = rawNonvalues?.map(unescapeValue);
|
|
56
|
+
return it !== undefined || dir || noDefaults !== undefined || nonvalues
|
|
45
57
|
? [
|
|
46
58
|
{
|
|
47
|
-
...(it && { it }),
|
|
59
|
+
...(it !== undefined && { it }),
|
|
48
60
|
...(dir && { dir }),
|
|
49
61
|
...(typeof noDefaults === 'boolean' && { noDefaults }),
|
|
50
62
|
...(nonvalues && { nonvalues }),
|
|
@@ -83,6 +95,17 @@ function prepareOperation(operation, options) {
|
|
|
83
95
|
return prepareMutationStep(operation, options);
|
|
84
96
|
}
|
|
85
97
|
}
|
|
98
|
+
function validateObjectStep(operation) {
|
|
99
|
+
const keys = Object.keys(operation).filter(isOperationKey);
|
|
100
|
+
if (keys.length > 1) {
|
|
101
|
+
throw new Error(`Cannot define more than one operation on the same object: Was ${keys.join(', ')}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function prepareObjectStep(step, options) {
|
|
105
|
+
const [props, operation] = extractStepProps(step, options);
|
|
106
|
+
validateObjectStep(operation);
|
|
107
|
+
return setStepProps(prepareOperation(operation, options), props);
|
|
108
|
+
}
|
|
86
109
|
const prepareStep = (options) => function prepareStep(step) {
|
|
87
110
|
if (Array.isArray(step)) {
|
|
88
111
|
return preparePipeline(step, options);
|
|
@@ -94,9 +117,7 @@ const prepareStep = (options) => function prepareStep(step) {
|
|
|
94
117
|
throw new Error('Operation functions are not supported anymore');
|
|
95
118
|
}
|
|
96
119
|
else if (step) {
|
|
97
|
-
|
|
98
|
-
const operationObject = prepareOperation(operation, options);
|
|
99
|
-
return setStepProps(operationObject, props);
|
|
120
|
+
return prepareObjectStep(modifyOperation(step, options), options);
|
|
100
121
|
}
|
|
101
122
|
else {
|
|
102
123
|
return undefined;
|