map-transform 1.6.0-rc.7 → 1.6.0-rc.9
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 +190 -71
- package/WRITING_PIPELINES.md +279 -106
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/internalOptions.d.ts +9 -0
- package/dist/internalOptions.js +21 -0
- package/dist/internalOptions.js.map +1 -0
- 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/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/index.d.ts +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/types.d.ts +17 -6
- package/dist/legacy/utils/prepareOptions.js +17 -10
- package/dist/legacy/utils/prepareOptions.js.map +1 -1
- package/dist/mapTransform.d.ts +3 -3
- package/dist/mapTransform.js +16 -25
- 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 +16 -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 +0 -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 +8 -0
- package/dist/prepareOptions.js +20 -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 +17 -5
- 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 +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,5 @@ export { default as root } from './legacy/operations/root.js';
|
|
|
13
13
|
export { default as transform } from './legacy/operations/transform.js';
|
|
14
14
|
export { default as iterate } from './legacy/operations/iterate.js';
|
|
15
15
|
export { default as transformers } from './legacy/transformers/index.js';
|
|
16
|
-
export { prepareOptions } from './legacy/utils/prepareOptions.js';
|
|
17
16
|
export { pathGetter, pathSetter } from './legacy/createPathMapper.js';
|
|
18
17
|
export { default } from './legacy/index.js';
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,6 @@ export { default as root } from './legacy/operations/root.js';
|
|
|
13
13
|
export { default as transform } from './legacy/operations/transform.js';
|
|
14
14
|
export { default as iterate } from './legacy/operations/iterate.js';
|
|
15
15
|
export { default as transformers } from './legacy/transformers/index.js';
|
|
16
|
-
export { prepareOptions } from './legacy/utils/prepareOptions.js';
|
|
17
16
|
export { pathGetter, pathSetter } from './legacy/createPathMapper.js';
|
|
18
17
|
export { default } from './legacy/index.js';
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAEtE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAE/D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAExE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAEtE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAE/D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAGrE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Options } from './prep/index.js';
|
|
2
|
+
import type { PreppedPipeline } from './run/index.js';
|
|
3
|
+
import type { Transformer, AsyncTransformer } from './typesNext.js';
|
|
4
|
+
export type Mode = 'sync' | 'async';
|
|
5
|
+
export interface InternalOptions extends Options {
|
|
6
|
+
preparedPipelines: Map<string | symbol, PreppedPipeline>;
|
|
7
|
+
}
|
|
8
|
+
export declare const isInternalOptions: (options: Options) => options is InternalOptions;
|
|
9
|
+
export declare function createInternalOptions(options: Options, mode: Mode, transformers: Record<string, Transformer | AsyncTransformer>): InternalOptions;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const preparedOptions = new WeakMap();
|
|
2
|
+
export const isInternalOptions = (options) => 'preparedPipelines' in options && options.preparedPipelines instanceof Map;
|
|
3
|
+
const createPreparedPipelines = () => ({
|
|
4
|
+
sync: new Map(),
|
|
5
|
+
async: new Map(),
|
|
6
|
+
});
|
|
7
|
+
export function createInternalOptions(options, mode, transformers) {
|
|
8
|
+
let prepared = preparedOptions.get(options);
|
|
9
|
+
if (!prepared) {
|
|
10
|
+
prepared = createPreparedPipelines();
|
|
11
|
+
preparedOptions.set(options, prepared);
|
|
12
|
+
}
|
|
13
|
+
const internalOptions = {
|
|
14
|
+
...options,
|
|
15
|
+
transformers: { ...transformers, ...options.transformers },
|
|
16
|
+
preparedPipelines: mode === 'sync' ? prepared.sync : prepared.async,
|
|
17
|
+
};
|
|
18
|
+
preparedOptions.set(internalOptions, prepared);
|
|
19
|
+
return internalOptions;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=internalOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internalOptions.js","sourceRoot":"","sources":["../src/internalOptions.ts"],"names":[],"mappings":"AAWA,MAAM,eAAe,GAAG,IAAI,OAAO,EAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EACY,EAAE,CAC9B,mBAAmB,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,YAAY,GAAG,CAAA;AAE5E,MAAM,uBAAuB,GAAG,GAAsB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,IAAI,GAAG,EAAE;IACf,KAAK,EAAE,IAAI,GAAG,EAAE;CACjB,CAAC,CAAA;AAUF,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,IAAU,EACV,YAA4D;IAE5D,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,uBAAuB,EAAE,CAAA;QACpC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IACD,MAAM,eAAe,GAAG;QACtB,GAAG,OAAO;QACV,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE;QAC1D,iBAAiB,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;KACpE,CAAA;IACD,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IAC9C,OAAO,eAAe,CAAA;AACxB,CAAC"}
|
|
@@ -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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"}
|
|
@@ -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"}
|
|
@@ -11,7 +11,7 @@ declare const _default: {
|
|
|
11
11
|
map: import("../types.js").Transformer<import("./map.js").Props>;
|
|
12
12
|
merge: import("../types.js").AsyncTransformer<import("./merge.js").Props>;
|
|
13
13
|
mergeRev: import("../types.js").AsyncTransformer<import("./merge.js").Props>;
|
|
14
|
-
not: import("../types.js").AsyncTransformer<import("../types.js").
|
|
14
|
+
not: import("../types.js").AsyncTransformer<((options: import("../types.js").Options) => import("../types.js").AsyncDataMapperWithState) | ((options: import("../types.js").Options) => import("../types.js").DataMapperWithState) | import("./not.js").Props>;
|
|
15
15
|
project: import("../types.js").Transformer<import("./project.js").Props>;
|
|
16
16
|
sort: import("../types.js").Transformer<import("./sort.js").Props>;
|
|
17
17
|
value: import("../types.js").Transformer<unknown>;
|
|
@@ -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":"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"}
|
|
@@ -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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"}
|
package/dist/legacy/types.d.ts
CHANGED
|
@@ -19,24 +19,34 @@ export interface State extends InitialState {
|
|
|
19
19
|
export interface Options {
|
|
20
20
|
transformers?: Record<string | symbol, Transformer | AsyncTransformer>;
|
|
21
21
|
pipelines?: Record<string | symbol, TransformDefinition>;
|
|
22
|
-
neededPipelineIds?: Set<string | symbol>;
|
|
23
22
|
dictionaries?: Dictionaries;
|
|
24
23
|
nonvalues?: unknown[];
|
|
25
24
|
fwdAlias?: string;
|
|
26
25
|
revAlias?: string;
|
|
27
26
|
modifyOperationObject?: (operation: Record<string, unknown>) => Record<string, unknown>;
|
|
28
27
|
modifyGetValue?: (value: unknown, state: State, options: Options) => unknown;
|
|
29
|
-
preparedPipelines?: Map<string | symbol, Operation>;
|
|
30
28
|
}
|
|
31
29
|
export interface InternalOptions extends Options {
|
|
32
30
|
neededPipelineIds: Set<string | symbol>;
|
|
33
31
|
preparedPipelines: Map<string | symbol, Operation>;
|
|
34
32
|
}
|
|
35
33
|
export type DataMapper<T extends InitialState | undefined = State> = (data: unknown, state?: T) => Promise<unknown>;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
export type
|
|
34
|
+
interface AsyncDataMapperWithStateMethod {
|
|
35
|
+
mapper(data: unknown, state: State): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
export type AsyncDataMapperWithState = AsyncDataMapperWithStateMethod['mapper'];
|
|
38
|
+
interface DataMapperWithStateMethod {
|
|
39
|
+
mapper(data: unknown, state: State): unknown;
|
|
40
|
+
}
|
|
41
|
+
export type DataMapperWithState = DataMapperWithStateMethod['mapper'];
|
|
42
|
+
interface AsyncDataMapperWithOptionsMethod {
|
|
43
|
+
mapper(options: Options): AsyncDataMapperWithState;
|
|
44
|
+
}
|
|
45
|
+
export type AsyncDataMapperWithOptions = AsyncDataMapperWithOptionsMethod['mapper'];
|
|
46
|
+
interface DataMapperWithOptionsMethod {
|
|
47
|
+
mapper(options: Options): DataMapperWithState;
|
|
48
|
+
}
|
|
49
|
+
export type DataMapperWithOptions = DataMapperWithOptionsMethod['mapper'];
|
|
40
50
|
export type StateMapper = (state: State) => Promise<State>;
|
|
41
51
|
export type NextStateMapper = (next: StateMapper) => StateMapper;
|
|
42
52
|
export type Operation = (options: Options) => NextStateMapper;
|
|
@@ -112,3 +122,4 @@ export interface MutationObject extends Record<string, unknown> {
|
|
|
112
122
|
}
|
|
113
123
|
export type TransformObject = MutationObject;
|
|
114
124
|
export type TransformDefinition = MutationObject | Operation | OperationObject | Pipeline | Path | null;
|
|
125
|
+
export {};
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
import transformers from '../transformers/index.js';
|
|
2
|
+
import { toInternalOptions } from './internalOptions.js';
|
|
2
3
|
export { getPreparedPipeline, preparePipelines } from './preparedPipelines.js';
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const pipelineCaches = new WeakMap();
|
|
5
|
+
function getPipelineCache(options) {
|
|
6
|
+
const cached = pipelineCaches.get(options);
|
|
7
|
+
if (cached) {
|
|
8
|
+
return cached;
|
|
7
9
|
}
|
|
10
|
+
const { neededPipelineIds, preparedPipelines } = toInternalOptions({
|
|
11
|
+
...options,
|
|
12
|
+
});
|
|
13
|
+
const cache = { neededPipelineIds, preparedPipelines };
|
|
14
|
+
pipelineCaches.set(options, cache);
|
|
15
|
+
return cache;
|
|
16
|
+
}
|
|
17
|
+
export function prepareOptions(options) {
|
|
18
|
+
const cache = getPipelineCache(options);
|
|
8
19
|
const preppedOptions = {
|
|
9
20
|
...options,
|
|
10
21
|
transformers: { ...transformers, ...options.transformers },
|
|
11
22
|
nonvalues: options.nonvalues ?? [undefined],
|
|
12
|
-
|
|
13
|
-
preparedPipelines: options.preparedPipelines ?? new Map(),
|
|
23
|
+
...cache,
|
|
14
24
|
};
|
|
15
|
-
|
|
16
|
-
value: true,
|
|
17
|
-
enumerable: false,
|
|
18
|
-
});
|
|
25
|
+
pipelineCaches.set(preppedOptions, cache);
|
|
19
26
|
return preppedOptions;
|
|
20
27
|
}
|
|
21
28
|
//# sourceMappingURL=prepareOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../../../src/legacy/utils/prepareOptions.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../../../src/legacy/utils/prepareOptions.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAO9E,MAAM,cAAc,GAAG,IAAI,OAAO,EAA0B,CAAA;AAE5D,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC;QACjE,GAAG,OAAO;KACX,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAA;IACtD,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAClC,OAAO,KAAK,CAAA;AACd,CAAC;AAaD,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,cAAc,GAAG;QACrB,GAAG,OAAO;QACV,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE;QAC1D,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC;QAC3C,GAAG,KAAK;KACT,CAAA;IACD,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACzC,OAAO,cAAc,CAAA;AACvB,CAAC"}
|
package/dist/mapTransform.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TransformDefinition, Options } from './prep/index.js';
|
|
2
2
|
import { sync as syncTransformers, async as asyncTransformers } from './transformers/index.js';
|
|
3
3
|
import State from './state.js';
|
|
4
|
-
export { syncTransformers, asyncTransformers, State };
|
|
4
|
+
export { syncTransformers, asyncTransformers, State, mapTransformAsync };
|
|
5
5
|
export { pathGetter, pathSetter } from './createPathMapper.js';
|
|
6
6
|
export interface InitialState {
|
|
7
7
|
context?: unknown[];
|
|
@@ -9,5 +9,5 @@ export interface InitialState {
|
|
|
9
9
|
rev?: boolean;
|
|
10
10
|
noDefaults?: boolean;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
13
|
-
export
|
|
12
|
+
export declare function mapTransformSync(def: TransformDefinition, options?: Options): (data: unknown, state?: InitialState) => unknown;
|
|
13
|
+
export default function mapTransformAsync(def: TransformDefinition, options?: Options): (data: unknown, state?: InitialState) => Promise<unknown>;
|
package/dist/mapTransform.js
CHANGED
|
@@ -2,41 +2,32 @@ 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
|
-
|
|
5
|
+
import { createInternalOptions } from './internalOptions.js';
|
|
6
|
+
export { syncTransformers, asyncTransformers, State, mapTransformAsync };
|
|
6
7
|
export { pathGetter, pathSetter } from './createPathMapper.js';
|
|
7
|
-
function preparePipelines(options) {
|
|
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
|
-
}
|
|
17
8
|
function createTransformFunction(pipeline, stateProps) {
|
|
18
9
|
return (value, state) => runPipeline(value, pipeline, { ...state, ...stateProps });
|
|
19
10
|
}
|
|
20
11
|
function createTransformFunctionAsync(pipeline, stateProps) {
|
|
21
12
|
return async (value, state) => runPipelineAsync(value, pipeline, { ...state, ...stateProps });
|
|
22
13
|
}
|
|
23
|
-
function preparePipelinesAndStateProps(def, options, transformers) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
function preparePipelinesAndStateProps(def, options, transformers, mode) {
|
|
15
|
+
const internalOptions = createInternalOptions(options, mode, transformers);
|
|
16
|
+
const pipeline = preparePipeline(def, internalOptions);
|
|
17
|
+
return [
|
|
18
|
+
pipeline,
|
|
19
|
+
{
|
|
20
|
+
nonvalues: options.nonvalues,
|
|
21
|
+
pipelines: internalOptions.preparedPipelines,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
33
24
|
}
|
|
34
|
-
export
|
|
35
|
-
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, syncTransformers);
|
|
25
|
+
export function mapTransformSync(def, options = {}) {
|
|
26
|
+
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, syncTransformers, 'sync');
|
|
36
27
|
return createTransformFunction(pipeline, stateProps);
|
|
37
28
|
}
|
|
38
|
-
export function mapTransformAsync(def, options = {}) {
|
|
39
|
-
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, asyncTransformers);
|
|
29
|
+
export default function mapTransformAsync(def, options = {}) {
|
|
30
|
+
const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, asyncTransformers, 'async');
|
|
40
31
|
return createTransformFunctionAsync(pipeline, stateProps);
|
|
41
32
|
}
|
|
42
33
|
//# 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,sBAAsB,CAAA;AAI5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAW9D,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,UAAU,gBAAgB,CAC9B,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,CAAC,OAAO,UAAU,iBAAiB,CACvC,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,5 @@
|
|
|
1
|
+
import preparePipeline from './index.js';
|
|
2
|
+
import { isInternalOptions } from '../internalOptions.js';
|
|
1
3
|
export default function prepareApplyStep({ $apply: id }, options) {
|
|
2
4
|
if (!id) {
|
|
3
5
|
throw new Error('Failed to apply pipeline. No id provided');
|
|
@@ -11,10 +13,21 @@ export default function prepareApplyStep({ $apply: id }, options) {
|
|
|
11
13
|
if (!Object.prototype.hasOwnProperty.call(options.pipelines, id)) {
|
|
12
14
|
throw new Error(`Failed to apply pipeline '${String(id)}'. Unknown pipeline`);
|
|
13
15
|
}
|
|
14
|
-
if (!options
|
|
15
|
-
|
|
16
|
+
if (!isInternalOptions(options)) {
|
|
17
|
+
throw new Error(`Failed to apply pipeline '${String(id)}'. Options have no prepared pipelines Map`);
|
|
18
|
+
}
|
|
19
|
+
const { preparedPipelines } = options;
|
|
20
|
+
if (!preparedPipelines.has(id)) {
|
|
21
|
+
const pipeline = [];
|
|
22
|
+
preparedPipelines.set(id, pipeline);
|
|
23
|
+
try {
|
|
24
|
+
pipeline.push(...preparePipeline(options.pipelines[id], options));
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
preparedPipelines.delete(id);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
16
30
|
}
|
|
17
|
-
options.neededPipelineIds.add(id);
|
|
18
31
|
return { type: 'apply', id };
|
|
19
32
|
}
|
|
20
33
|
//# 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;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAMzD,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,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,EAAE,CAAC,2CAA2C,CACnF,CAAA;IACH,CAAC;IACD,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IAErC,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"}
|