map-transform 1.6.0-rc.8 → 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/README.md CHANGED
@@ -176,32 +176,16 @@ await mapTransform(def)(source, { target }) // We're reusing `def` from the prev
176
176
  ```
177
177
 
178
178
  Finally, if you're using the same `options` across several `mapTransform` calls,
179
- you may gain some optimization by preparing the options up front. Do this with
180
- the exported `prepareOptions` function like so:
181
-
182
- ```javascript
183
- import mapTransform, { prepareOptions, transform } from 'map-transform'
184
-
185
- // ...
186
-
187
- const preppedOptions = prepareOptions(options)
188
- await mapTransform(def1, preppedOptions)(source)
189
-
190
- // ...
191
-
192
- await mapTransform(def2, preppedOptions)(source)
193
- ```
194
-
195
- Most of the preparations are still done just-in-time, but when it's done once,
196
- it won't happen again on the next call. `prepareOptions` is idempotent, so
197
- passing already prepared options to `mapTransform` -- or calling
198
- `prepareOptions` on them again -- costs nothing.
199
-
200
- `map-transform/next` exports its own `prepareOptions` alongside `mapTransform`.
201
- Options prepared with one API cannot be handed to the other. Note that the sync
202
- `mapTransform()` and the async `mapTransformAsync()` cache their prepared
203
- pipelines separately, so mixing both on the same prepared options will prepare
204
- each pipeline twice.
179
+ pass the same options object each time. Calls with the same options object share
180
+ prepared pipelines automatically, so a pipeline is only prepared once. Changing
181
+ pipeline definitions on the options object after it has been used is not
182
+ supported.
183
+
184
+ `map-transform/next` works the same way. Like in the legacy API, the default
185
+ export is async, and it is also exported as `mapTransformAsync()`, with
186
+ `mapTransformSync()` as its sync counterpart. Note that `mapTransformSync()` and
187
+ the async `mapTransformAsync()` cache their prepared pipelines separately, so
188
+ mixing both on the same options object will prepare each pipeline twice.
205
189
 
206
190
  > [!NOTE] We are preparing for an upcoming 2.0 version, which will include
207
191
  > breaking changes.
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,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAGrE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA"}
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"}
@@ -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").DataMapperWithOptions | import("../types.js").AsyncDataMapperWithOptions | import("./not.js").Props>;
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>;
@@ -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
- export type AsyncDataMapperWithState = (data: unknown, state: State) => Promise<unknown>;
37
- export type DataMapperWithState = (data: unknown, state: State) => unknown;
38
- export type AsyncDataMapperWithOptions = (options: Options) => AsyncDataMapperWithState;
39
- export type DataMapperWithOptions = (options: Options) => DataMapperWithState;
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 isPrepared = Symbol('isPrepared');
4
- export function prepareOptions(options) {
5
- if (Reflect.get(options, isPrepared)) {
6
- return options;
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
- neededPipelineIds: options.neededPipelineIds ?? new Set(),
13
- preparedPipelines: options.preparedPipelines ?? new Map(),
23
+ ...cache,
14
24
  };
15
- Object.defineProperty(preppedOptions, isPrepared, {
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;AAGnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAK9E,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AAkBvC,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,OAA0B,CAAA;IACnC,CAAC;IACD,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,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI,GAAG,EAAmB;QAC1E,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI,GAAG,EAAE;KAC1D,CAAA;IACD,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,EAAE;QAChD,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IACF,OAAO,cAAc,CAAA;AACvB,CAAC"}
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"}
@@ -1,14 +1,13 @@
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
- export { default as prepareOptions } from './prepareOptions.js';
7
6
  export interface InitialState {
8
7
  context?: unknown[];
9
8
  target?: unknown;
10
9
  rev?: boolean;
11
10
  noDefaults?: boolean;
12
11
  }
13
- export default function mapTransform(def: TransformDefinition, options?: Options): (data: unknown, state?: InitialState) => unknown;
14
- export declare function mapTransformAsync(def: TransformDefinition, options?: Options): (data: unknown, state?: InitialState) => Promise<unknown>;
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>;
@@ -2,10 +2,9 @@ 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';
6
- export { syncTransformers, asyncTransformers, State };
5
+ import { createInternalOptions } from './internalOptions.js';
6
+ export { syncTransformers, asyncTransformers, State, mapTransformAsync };
7
7
  export { pathGetter, pathSetter } from './createPathMapper.js';
8
- export { default as prepareOptions } from './prepareOptions.js';
9
8
  function createTransformFunction(pipeline, stateProps) {
10
9
  return (value, state) => runPipeline(value, pipeline, { ...state, ...stateProps });
11
10
  }
@@ -23,11 +22,11 @@ function preparePipelinesAndStateProps(def, options, transformers, mode) {
23
22
  },
24
23
  ];
25
24
  }
26
- export default function mapTransform(def, options = {}) {
25
+ export function mapTransformSync(def, options = {}) {
27
26
  const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, syncTransformers, 'sync');
28
27
  return createTransformFunction(pipeline, stateProps);
29
28
  }
30
- export function mapTransformAsync(def, options = {}) {
29
+ export default function mapTransformAsync(def, options = {}) {
31
30
  const [pipeline, stateProps] = preparePipelinesAndStateProps(def, options, asyncTransformers, 'async');
32
31
  return createTransformFunctionAsync(pipeline, stateProps);
33
32
  }
@@ -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;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"}
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"}
@@ -1,4 +1,5 @@
1
1
  import preparePipeline from './index.js';
2
+ import { isInternalOptions } from '../internalOptions.js';
2
3
  export default function prepareApplyStep({ $apply: id }, options) {
3
4
  if (!id) {
4
5
  throw new Error('Failed to apply pipeline. No id provided');
@@ -12,10 +13,10 @@ export default function prepareApplyStep({ $apply: id }, options) {
12
13
  if (!Object.prototype.hasOwnProperty.call(options.pipelines, id)) {
13
14
  throw new Error(`Failed to apply pipeline '${String(id)}'. Unknown pipeline`);
14
15
  }
15
- const { preparedPipelines } = options;
16
- if (!preparedPipelines) {
16
+ if (!isInternalOptions(options)) {
17
17
  throw new Error(`Failed to apply pipeline '${String(id)}'. Options have no prepared pipelines Map`);
18
18
  }
19
+ const { preparedPipelines } = options;
19
20
  if (!preparedPipelines.has(id)) {
20
21
  const pipeline = [];
21
22
  preparedPipelines.set(id, pipeline);
@@ -1 +1 @@
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"}
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"}
@@ -7,7 +7,6 @@ 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
- preparedPipelines?: Map<string | symbol, PreppedPipeline>;
11
10
  dictionaries?: Dictionaries;
12
11
  nonvalues?: unknown[];
13
12
  fwdAlias?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prep/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prep/index.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,4 @@ export type Mode = 'sync' | 'async';
5
5
  export interface InternalOptions extends Options {
6
6
  preparedPipelines: Map<string | symbol, PreppedPipeline>;
7
7
  }
8
- export default function prepareOptions(options: Options): Options;
9
8
  export declare function createInternalOptions(options: Options, mode: Mode, transformers: Record<string, Transformer | AsyncTransformer>): InternalOptions;
@@ -3,16 +3,12 @@ const createPreparedPipelines = () => ({
3
3
  sync: new Map(),
4
4
  async: new Map(),
5
5
  });
6
- export default function prepareOptions(options) {
7
- if (preparedOptions.has(options)) {
8
- return options;
9
- }
10
- const prepared = { ...options };
11
- preparedOptions.set(prepared, createPreparedPipelines());
12
- return prepared;
13
- }
14
6
  export function createInternalOptions(options, mode, transformers) {
15
- const prepared = preparedOptions.get(options) ?? createPreparedPipelines();
7
+ let prepared = preparedOptions.get(options);
8
+ if (!prepared) {
9
+ prepared = createPreparedPipelines();
10
+ preparedOptions.set(options, prepared);
11
+ }
16
12
  const internalOptions = {
17
13
  ...options,
18
14
  transformers: { ...transformers, ...options.transformers },
@@ -1 +1 @@
1
- {"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../src/prepareOptions.ts"],"names":[],"mappings":"AAWA,MAAM,eAAe,GAAG,IAAI,OAAO,EAA8B,CAAA;AAEjE,MAAM,uBAAuB,GAAG,GAAsB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,IAAI,GAAG,EAAE;IACf,KAAK,EAAE,IAAI,GAAG,EAAE;CACjB,CAAC,CAAA;AAOF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAgB;IACrD,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IAC/B,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,EAAE,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAA;AACjB,CAAC;AASD,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,IAAU,EACV,YAA4D;IAE5D,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,uBAAuB,EAAE,CAAA;IAC1E,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
+ {"version":3,"file":"prepareOptions.js","sourceRoot":"","sources":["../src/prepareOptions.ts"],"names":[],"mappings":"AAWA,MAAM,eAAe,GAAG,IAAI,OAAO,EAA8B,CAAA;AAEjE,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"}
@@ -9,10 +9,22 @@ export type Dictionaries = Record<string, Dictionary>;
9
9
  export type AsyncDataMapper<T extends InitialState | undefined = State> = (data: unknown, state?: T) => Promise<unknown>;
10
10
  export type SyncDataMapper<T extends InitialState | undefined = State> = (data: unknown, state?: T) => unknown;
11
11
  export type DataMapper<T extends InitialState | undefined = State> = AsyncDataMapper<T> | SyncDataMapper<T>;
12
- export type AsyncDataMapperWithState = (data: unknown, state: State) => Promise<unknown>;
13
- export type DataMapperWithState = (data: unknown, state: State) => unknown;
14
- export type AsyncDataMapperWithOptions = (options: Options) => AsyncDataMapperWithState;
15
- export type DataMapperWithOptions = (options: Options) => DataMapperWithState;
12
+ interface AsyncDataMapperWithStateMethod {
13
+ mapper(data: unknown, state: State): Promise<unknown>;
14
+ }
15
+ export type AsyncDataMapperWithState = AsyncDataMapperWithStateMethod['mapper'];
16
+ interface DataMapperWithStateMethod {
17
+ mapper(data: unknown, state: State): unknown;
18
+ }
19
+ export type DataMapperWithState = DataMapperWithStateMethod['mapper'];
20
+ interface AsyncDataMapperWithOptionsMethod {
21
+ mapper(options: Options): AsyncDataMapperWithState;
22
+ }
23
+ export type AsyncDataMapperWithOptions = AsyncDataMapperWithOptionsMethod['mapper'];
24
+ interface DataMapperWithOptionsMethod {
25
+ mapper(options: Options): DataMapperWithState;
26
+ }
27
+ export type DataMapperWithOptions = DataMapperWithOptionsMethod['mapper'];
16
28
  export type StateMapper = (state: State) => Promise<State>;
17
29
  export type NextStateMapper = (next: StateMapper) => StateMapper;
18
30
  export type Operation = (options: Options) => NextStateMapper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "1.6.0-rc.8",
3
+ "version": "1.6.0-rc.9",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io>",
6
6
  "license": "ISC",