map-transform 0.4.0-alpha.5 → 0.4.0-alpha.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.
@@ -8,7 +8,9 @@ const root_1 = require("./root");
8
8
  const plug_1 = require("./plug");
9
9
  const directionals_1 = require("./directionals");
10
10
  const isGet = (isGetOperation, isRev = false) => isGetOperation ? !isRev : isRev;
11
- const setWithOnlyMapped = (state, setFn) => (value) => state.onlyMapped && value === undefined ? value : setFn(value, undefined);
11
+ const setWithOnlyMapped = (state, setFn) => (value) => state.onlyMapped && value === undefined
12
+ ? state.target
13
+ : setFn(value, state.target);
12
14
  const getValueFromState = (path) => (state) => (0, pathGetter_1.default)(path)((0, stateHelpers_1.getStateValue)(state));
13
15
  const setValueFromState = (path) => (state) => {
14
16
  const setFn = setWithOnlyMapped(state, (0, pathSetter_1.default)(path));
@@ -23,7 +25,11 @@ const getOrSet = (isGetOperation) => (path) => {
23
25
  }
24
26
  const getFn = getValueFromState(path);
25
27
  const setFn = setValueFromState(path);
26
- return () => (state) => (0, stateHelpers_1.setStateValue)(state, isGet(isGetOperation, state.rev) ? getFn(state) : setFn(state));
28
+ return () => Object.assign((state) => (0, stateHelpers_1.setStateValue)(state, isGet(isGetOperation, state.rev) ? getFn(state) : setFn(state)), {
29
+ getTarget: (state) => !isGet(isGetOperation, state.rev)
30
+ ? (0, pathGetter_1.default)(path)(state.target)
31
+ : state.target,
32
+ });
27
33
  };
28
34
  exports.get = getOrSet(true);
29
35
  exports.set = getOrSet(false);
@@ -1 +1 @@
1
- {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":";;;AACA,oDAAwC;AACxC,oDAAoD;AACpD,wDAAoE;AACpE,iCAAyB;AACzB,iCAAyB;AACzB,iDAAuC;AAEvC,MAAM,KAAK,GAAG,CAAC,cAAuB,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,CACvD,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjC,MAAM,iBAAiB,GACrB,CAAC,KAAY,EAAE,KAAa,EAAU,EAAE,CACxC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAE7E,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CACzD,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC,CAAA;AAEpC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,CAAA;IACpD,OAAO,KAAK,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,QAAQ,GACZ,CAAC,cAAuB,EAAE,EAAE,CAC5B,CAAC,IAAU,EAAa,EAAE;IACxB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,cAAc;YACnB,CAAC,CAAC,IAAA,qBAAM,EAAC,UAAU,EAAE,IAAA,cAAI,GAAE,CAAC;YAC5B,CAAC,CAAC,IAAA,qBAAM,EAAC,IAAA,cAAI,GAAE,EAAE,UAAU,CAAC,CAAA;KAC/B;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,IAAA,4BAAa,EACX,KAAK,EACL,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/D,CAAA;AACL,CAAC,CAAA;AAEU,QAAA,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpB,QAAA,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":";;;AACA,oDAAwC;AACxC,oDAAoD;AACpD,wDAAoE;AACpE,iCAAyB;AACzB,iCAAyB;AACzB,iDAAuC;AAEvC,MAAM,KAAK,GAAG,CAAC,cAAuB,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,CACvD,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjC,MAAM,iBAAiB,GACrB,CAAC,KAAY,EAAE,KAAa,EAAU,EAAE,CACxC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,IAAI,KAAK,KAAK,SAAS;IACrC,CAAC,CAAC,KAAK,CAAC,MAAM;IACd,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AAElC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CACzD,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC,CAAA;AAEpC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,CAAA;IACpD,OAAO,KAAK,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,QAAQ,GACZ,CAAC,cAAuB,EAAE,EAAE,CAC5B,CAAC,IAAU,EAAa,EAAE;IACxB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,cAAc;YACnB,CAAC,CAAC,IAAA,qBAAM,EAAC,UAAU,EAAE,IAAA,cAAI,GAAE,CAAC;YAC5B,CAAC,CAAC,IAAA,qBAAM,EAAC,IAAA,cAAI,GAAE,EAAE,UAAU,CAAC,CAAA;KAC/B;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,CAAC,KAAY,EAAE,EAAE,CACf,IAAA,4BAAa,EACX,KAAK,EACL,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/D,EACH;QACE,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE,CAC1B,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;KACnB,CACF,CAAA;AACL,CAAC,CAAA;AAGU,QAAA,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpB,QAAA,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA"}
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const stateHelpers_1 = require("../utils/stateHelpers");
4
- const merge_1 = require("./merge");
5
4
  const getSet_1 = require("./getSet");
6
5
  const directionals_1 = require("./directionals");
7
- const plug_1 = require("./plug");
8
6
  const iterate_1 = require("./iterate");
7
+ const plug_1 = require("./plug");
9
8
  const definitionHelpers_1 = require("../utils/definitionHelpers");
10
9
  const array_1 = require("../utils/array");
11
10
  const setIfPath = (map) => (typeof map === 'string' ? (0, getSet_1.set)(map) : map);
@@ -14,34 +13,56 @@ const flipIfNeeded = (pipe, flip) => {
14
13
  return pipeline;
15
14
  };
16
15
  const shouldIterate = (def, path) => ((0, definitionHelpers_1.isMapObject)(def) && def['$iterate'] === true) || path.includes('[]');
17
- const createSubPipeline = (pipeline, flip, path) => (0, definitionHelpers_1.isMapObject)(pipeline)
18
- ? [objectToMapFunction(pipeline, flip, path)]
19
- : flipIfNeeded((0, array_1.ensureArray)(pipeline), flip);
20
16
  const extractRealPath = (path) => {
21
17
  const [realPath, index] = path.split('/');
22
18
  return [realPath, index !== undefined];
23
19
  };
24
- const mergeAndIterate = (pipelines, def, path) => shouldIterate(def, path) ? (0, iterate_1.default)((0, merge_1.default)(...pipelines)) : (0, merge_1.default)(...pipelines);
25
- const objectToMapFunction = (objectDef, flip, path = '') => mergeAndIterate(Object.entries(objectDef)
26
- .map(([path, def]) => {
20
+ const setTargetOnState = (state, target) => ({
21
+ ...state,
22
+ target,
23
+ });
24
+ const runWithTarget = (options, state) => (prevState, operation) => operation(options)(setTargetOnState(state, prevState?.value));
25
+ const revertTarget = ({ target, ...state }, originalState) => originalState.target ? setTargetOnState(state, originalState.target) : state;
26
+ const run = (operations) => function (options) {
27
+ const shouldSkip = (0, stateHelpers_1.shouldSkipMutation)(options);
28
+ return (state) => shouldSkip(state)
29
+ ? (0, stateHelpers_1.setStateValue)(state, undefined)
30
+ : revertTarget(operations.reduce(runWithTarget(options, state), undefined) ||
31
+ state, state);
32
+ };
33
+ const objectToMapFunction = (objectDef, flip, parentPath = '') => Object.entries(objectDef)
34
+ .flatMap(([path, def]) => {
27
35
  if (!def || path.startsWith('$')) {
28
36
  return null;
29
37
  }
30
38
  const [realPath, revOnly] = extractRealPath(path);
31
- const pipeline = [
32
- flip ? realPath : null,
33
- ...createSubPipeline(def, flip, realPath),
34
- flip ? null : (0, getSet_1.set)(realPath),
35
- ];
36
- return revOnly ? (0, directionals_1.divide)((0, plug_1.default)(), pipeline) : pipeline;
39
+ const nextPath = [parentPath, realPath].filter(Boolean).join('.');
40
+ if ((0, definitionHelpers_1.isMapObject)(def) && !def.$iterate && !realPath.endsWith('[]')) {
41
+ return objectToMapFunction(def, flip, nextPath);
42
+ }
43
+ else {
44
+ const subPipeline = (0, definitionHelpers_1.isMapObject)(def)
45
+ ? [runAndIterate(def, flip, shouldIterate(def, realPath))]
46
+ : flipIfNeeded((0, array_1.ensureArray)(def), flip);
47
+ const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)([
48
+ flip ? nextPath : null,
49
+ ...subPipeline,
50
+ flip ? null : (0, getSet_1.set)(nextPath),
51
+ ]);
52
+ return revOnly ? (0, directionals_1.divide)((0, plug_1.default)(), pipeline) : pipeline;
53
+ }
37
54
  })
38
- .filter(Boolean), objectDef, path);
55
+ .filter((pipeline) => !!pipeline);
56
+ function runAndIterate(def, flip, doIterate) {
57
+ const operations = objectToMapFunction(def, flip);
58
+ return doIterate ? (0, iterate_1.default)(run(operations)) : run(operations);
59
+ }
39
60
  function mutate(def) {
40
61
  if (Object.keys(def).length === 0) {
41
62
  return (_options) => (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
42
63
  }
43
64
  const flip = def.$flip || false;
44
- const runMutation = objectToMapFunction(def, flip);
65
+ const runMutation = runAndIterate(def, flip, shouldIterate(def, ''));
45
66
  return function mutateFn(options) {
46
67
  const dir = def.$direction;
47
68
  if (typeof dir === 'string') {
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/operations/mutate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/operations/mutate.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,18 @@ const liftState = (state) => ({
7
7
  ...state,
8
8
  context: state.value,
9
9
  });
10
+ const callWithNextTarget = (nextFn, thisFn) => (state) => {
11
+ const nextTarget = thisFn && typeof thisFn.getTarget === 'function'
12
+ ? thisFn.getTarget(state)
13
+ : state.target;
14
+ const nextState = nextFn((0, stateHelpers_1.setTargetOnState)(state, nextTarget));
15
+ return (0, stateHelpers_1.setTargetOnState)(nextState, state.target);
16
+ };
10
17
  function pipe(defs) {
11
18
  return (options) => {
12
19
  const fns = defs.map((def) => (0, definitionHelpers_1.mapFunctionFromDef)(def)(options));
13
- const runPipe = (0, functional_1.pipe)(...fns);
14
- const runRevPipe = (0, functional_1.compose)(...fns);
20
+ const runPipe = (0, functional_1.pipe)(...fns.map((fn, index) => callWithNextTarget(fn, fns[index + 1])));
21
+ const runRevPipe = (0, functional_1.compose)(...fns.map((fn, index) => callWithNextTarget(fn, fns[index - 1])));
15
22
  return (state) => (0, stateHelpers_1.setValueFromState)(state, state.rev ? runRevPipe(liftState(state)) : runPipe(liftState(state)));
16
23
  };
17
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":";;AACA,oDAA6D;AAC7D,wDAAyD;AACzD,kEAA+D;AAE/D,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IACnC,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,KAAK;CACrB,CAAC,CAAA;AAEF,SAAwB,IAAI,CAAC,IAAa;IACxC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,IAAA,iBAAM,EAAC,GAAG,GAAG,CAAC,CAAA;QAC9B,MAAM,UAAU,GAAG,IAAA,oBAAO,EAAC,GAAG,GAAG,CAAC,CAAA;QAElC,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,gCAAiB,EACf,KAAK,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACrE,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAZD,uBAYC"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/operations/pipe.ts"],"names":[],"mappings":";;AACA,oDAA6D;AAC7D,wDAA2E;AAC3E,kEAA+D;AAE/D,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IACnC,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,KAAK;CACrB,CAAC,CAAA;AAEF,MAAM,kBAAkB,GACtB,CAAC,MAAmB,EAAE,MAAoB,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IAC9D,MAAM,UAAU,GACd,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;QAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;IAClB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAA,+BAAgB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;IAC7D,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AAClD,CAAC,CAAA;AAEH,SAAwB,IAAI,CAAC,IAAa;IACxC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,IAAA,iBAAM,EACpB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,CAAA;QACD,MAAM,UAAU,GAAgB,IAAA,oBAAO,EACrC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,CAAA;QAED,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,IAAA,gCAAiB,EACf,KAAK,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACrE,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAhBD,uBAgBC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const stateHelpers_1 = require("../utils/stateHelpers");
4
4
  function plug() {
5
- return () => (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
5
+ return () => (state) => (0, stateHelpers_1.setStateValue)(state, state.target);
6
6
  }
7
7
  exports.default = plug;
8
8
  //# sourceMappingURL=plug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plug.js","sourceRoot":"","sources":["../../src/operations/plug.ts"],"names":[],"mappings":";;AACA,wDAAqD;AAErD,SAAwB,IAAI;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AACzD,CAAC;AAFD,uBAEC"}
1
+ {"version":3,"file":"plug.js","sourceRoot":"","sources":["../../src/operations/plug.ts"],"names":[],"mappings":";;AACA,wDAAqD;AAErD,SAAwB,IAAI;IAC1B,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AAC5D,CAAC;AAFD,uBAEC"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const definitionHelpers_1 = require("../utils/definitionHelpers");
4
+ const valueFromRoot = (state) => ({ ...state, value: state.root });
4
5
  function default_1(def) {
5
6
  return (options) => {
6
7
  const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)(def)(options);
7
- return (state) => pipeline({ ...state, value: state.root });
8
+ return (state) => pipeline(valueFromRoot(state));
8
9
  };
9
10
  }
10
11
  exports.default = default_1;
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,mBAAyB,GAAkB;IACzC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAA;AACH,CAAC;AAND,4BAMC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/operations/root.ts"],"names":[],"mappings":";;AACA,kEAA+D;AAE/D,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAEzE,mBAAyB,GAAkB;IACzC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,CAAC,CAAA;AACH,CAAC;AAND,4BAMC"}
package/dist/types.d.ts CHANGED
@@ -24,6 +24,7 @@ export interface CustomFunction<T = Operands> {
24
24
  export interface State {
25
25
  root: unknown;
26
26
  context: unknown;
27
+ target?: unknown;
27
28
  value: unknown;
28
29
  rev?: boolean;
29
30
  onlyMapped?: boolean;
@@ -63,6 +64,7 @@ export interface AltObject extends Operands {
63
64
  export declare type OperationObject = TransformObject | FilterObject | ApplyObject | AltObject;
64
65
  export interface StateMapper {
65
66
  (state: State): State;
67
+ getTarget?: (state: State) => unknown;
66
68
  }
67
69
  export interface Operation {
68
70
  (options: Options): StateMapper;
@@ -70,7 +72,7 @@ export interface Operation {
70
72
  export interface MapFunction {
71
73
  (options: Options): (state: State) => State;
72
74
  }
73
- declare type MapPipeSimple = (MapObject | Operation | OperationObject | Path)[];
75
+ export declare type MapPipeSimple = (MapObject | Operation | OperationObject | Path)[];
74
76
  export declare type MapPipe = (MapObject | Operation | OperationObject | Path | MapPipeSimple)[];
75
77
  export interface MapObject {
76
78
  [key: string]: MapDefinition | undefined | boolean;
@@ -89,4 +91,3 @@ export interface MapTransformWithOnlyMappedValues {
89
91
  export interface MapTransform extends MapTransformWithOnlyMappedValues {
90
92
  rev: MapTransformWithOnlyMappedValues;
91
93
  }
92
- export {};
@@ -40,7 +40,7 @@ const wrapFromDefinition = (fn, def) => {
40
40
  return (options) => {
41
41
  const dir = def.$direction;
42
42
  if (typeof dir === 'string') {
43
- if (dir === 'rev') {
43
+ if (dir === 'rev' || dir === options.revAlias) {
44
44
  return (0, directionals_1.rev)(fnIterated)(options);
45
45
  }
46
46
  else if (dir === 'fwd' || dir === options.fwdAlias) {
@@ -1 +1 @@
1
- {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { State, Options, Context } from '../types';
2
2
  export declare const setStateValue: (state: State, value: unknown) => State;
3
3
  export declare const getStateValue: (state: State) => any;
4
4
  export declare const setValueFromState: (state: State, { value }: State) => State;
5
+ export declare const setTargetOnState: (state: State, target?: unknown) => State;
5
6
  export declare const contextFromState: ({ rev, onlyMapped, }: State) => Context;
6
7
  export declare const populateState: ({ rev, onlyMapped }: Partial<State>) => (data: unknown) => State;
7
8
  export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shouldSkipMutation = exports.populateState = exports.contextFromState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
3
+ exports.shouldSkipMutation = exports.populateState = exports.contextFromState = exports.setTargetOnState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
4
  const setStateValue = (state, value) => ({
5
5
  ...state,
6
6
  value,
@@ -13,6 +13,11 @@ const setValueFromState = (state, { value }) => ({
13
13
  value,
14
14
  });
15
15
  exports.setValueFromState = setValueFromState;
16
+ const setTargetOnState = (state, target) => ({
17
+ ...state,
18
+ target,
19
+ });
20
+ exports.setTargetOnState = setTargetOnState;
16
21
  const contextFromState = ({ rev = false, onlyMapped = false, }) => ({
17
22
  rev,
18
23
  onlyMappedValues: onlyMapped,
@@ -1 +1 @@
1
- {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAC/B,GAAG,GAAG,KAAK,EACX,UAAU,GAAG,KAAK,GACZ,EAAW,EAAE,CAAC,CAAC;IACrB,GAAG;IACH,gBAAgB,EAAE,UAAU;CAC7B,CAAC,CAAA;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AARS,QAAA,aAAa,iBAQtB;AAEG,MAAM,kBAAkB,GAC7B,CAAC,EAAE,UAAU,GAAG,IAAI,EAAW,EAAE,EAAE,CACnC,CAAC,KAAY,EAAW,EAAE,CACxB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAHzD,QAAA,kBAAkB,sBAGuC"}
1
+ {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAC/B,GAAG,GAAG,KAAK,EACX,UAAU,GAAG,KAAK,GACZ,EAAW,EAAE,CAAC,CAAC;IACrB,GAAG;IACH,gBAAgB,EAAE,UAAU;CAC7B,CAAC,CAAA;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AARS,QAAA,aAAa,iBAQtB;AAEG,MAAM,kBAAkB,GAC7B,CAAC,EAAE,UAAU,GAAG,IAAI,EAAW,EAAE,EAAE,CACnC,CAAC,KAAY,EAAW,EAAE,CACxB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAHzD,QAAA,kBAAkB,sBAGuC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "0.4.0-alpha.5",
3
+ "version": "0.4.0-alpha.8",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <post@kjellmorten.no>",
6
6
  "license": "ISC",
@@ -45,8 +45,8 @@
45
45
  "devDependencies": {
46
46
  "@integreat/ts-dev-setup": "^2.2.0",
47
47
  "@types/deep-freeze": "^0.1.2",
48
- "@types/sinon": "^9.0.11",
48
+ "@types/sinon": "^10.0.11",
49
49
  "deep-freeze": "0.0.1",
50
- "sinon": "^9.2.4"
50
+ "sinon": "^13.0.1"
51
51
  }
52
52
  }