map-transform 0.4.0-alpha.19 → 0.4.0-alpha.21

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.
Files changed (67) hide show
  1. package/README.md +39 -30
  2. package/dist/functions/compare.js +8 -3
  3. package/dist/functions/compare.js.map +1 -1
  4. package/dist/index.js +2 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/operations/alt.d.ts +1 -1
  7. package/dist/operations/alt.js +24 -6
  8. package/dist/operations/alt.js.map +1 -1
  9. package/dist/operations/apply.js +4 -2
  10. package/dist/operations/apply.js.map +1 -1
  11. package/dist/operations/concat.js +9 -5
  12. package/dist/operations/concat.js.map +1 -1
  13. package/dist/operations/directionals.js +7 -6
  14. package/dist/operations/directionals.js.map +1 -1
  15. package/dist/operations/filter.js +5 -6
  16. package/dist/operations/filter.js.map +1 -1
  17. package/dist/operations/fixed.js +1 -1
  18. package/dist/operations/fixed.js.map +1 -1
  19. package/dist/operations/getSet.d.ts +3 -4
  20. package/dist/operations/getSet.js +136 -32
  21. package/dist/operations/getSet.js.map +1 -1
  22. package/dist/operations/ifelse.js +14 -8
  23. package/dist/operations/ifelse.js.map +1 -1
  24. package/dist/operations/iterate.d.ts +2 -1
  25. package/dist/operations/iterate.js +14 -10
  26. package/dist/operations/iterate.js.map +1 -1
  27. package/dist/operations/logical.js +6 -6
  28. package/dist/operations/logical.js.map +1 -1
  29. package/dist/operations/lookup.js +9 -5
  30. package/dist/operations/lookup.js.map +1 -1
  31. package/dist/operations/merge.js +9 -7
  32. package/dist/operations/merge.js.map +1 -1
  33. package/dist/operations/modify.js +9 -6
  34. package/dist/operations/modify.js.map +1 -1
  35. package/dist/operations/pipe.js +14 -16
  36. package/dist/operations/pipe.js.map +1 -1
  37. package/dist/operations/plug.js +1 -1
  38. package/dist/operations/plug.js.map +1 -1
  39. package/dist/operations/props.d.ts +2 -0
  40. package/dist/operations/props.js +112 -0
  41. package/dist/operations/props.js.map +1 -0
  42. package/dist/operations/root.js +3 -5
  43. package/dist/operations/root.js.map +1 -1
  44. package/dist/operations/transform.js +3 -1
  45. package/dist/operations/transform.js.map +1 -1
  46. package/dist/operations/value.js +1 -1
  47. package/dist/operations/value.js.map +1 -1
  48. package/dist/types.d.ts +14 -8
  49. package/dist/utils/array.d.ts +1 -0
  50. package/dist/utils/array.js +3 -1
  51. package/dist/utils/array.js.map +1 -1
  52. package/dist/utils/definitionHelpers.d.ts +3 -1
  53. package/dist/utils/definitionHelpers.js +48 -20
  54. package/dist/utils/definitionHelpers.js.map +1 -1
  55. package/dist/utils/stateHelpers.d.ts +18 -5
  56. package/dist/utils/stateHelpers.js +26 -10
  57. package/dist/utils/stateHelpers.js.map +1 -1
  58. package/dist/utils/xor.d.ts +1 -0
  59. package/dist/utils/xor.js +7 -0
  60. package/dist/utils/xor.js.map +1 -0
  61. package/package.json +1 -1
  62. package/dist/functions/join.d.ts +0 -7
  63. package/dist/functions/join.js +0 -12
  64. package/dist/functions/join.js.map +0 -1
  65. package/dist/operations/mutate.d.ts +0 -2
  66. package/dist/operations/mutate.js +0 -111
  67. package/dist/operations/mutate.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cloneAsArray = exports.ensureArray = void 0;
3
+ exports.indexOfIfArray = exports.cloneAsArray = exports.ensureArray = void 0;
4
4
  const ensureArray = (value) => Array.isArray(value)
5
5
  ? value
6
6
  : value === undefined || value === null
@@ -9,4 +9,6 @@ const ensureArray = (value) => Array.isArray(value)
9
9
  exports.ensureArray = ensureArray;
10
10
  const cloneAsArray = (value) => (0, exports.ensureArray)(value).slice();
11
11
  exports.cloneAsArray = cloneAsArray;
12
+ const indexOfIfArray = (arr, index) => Array.isArray(arr) && typeof index === 'number' ? arr[index] : arr;
13
+ exports.indexOfIfArray = indexOfIfArray;
12
14
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD;AAEnE,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAc,EAAE,EAAE,CAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AADvD,QAAA,cAAc,kBACyC"}
@@ -5,4 +5,6 @@ export declare const isPath: (def: unknown) => def is string;
5
5
  export declare const isMapObject: (def: unknown) => def is MapObject;
6
6
  export declare const isMapPipe: (def: unknown) => def is MapPipe;
7
7
  export declare const isOperation: (def: unknown) => def is Operation;
8
- export declare const mapFunctionFromDef: (def?: MapDefinition | undefined) => Operation;
8
+ export declare const isMapDefinition: (def: unknown) => def is MapDefinition;
9
+ export declare const operationsFromDef: (def?: MapDefinition | undefined) => Operation[] | Operation;
10
+ export declare function operationFromDef(def?: MapDefinition): Operation;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapFunctionFromDef = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
3
+ exports.operationFromDef = exports.operationsFromDef = exports.isMapDefinition = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
4
4
  const functional_1 = require("./functional");
5
5
  const is_1 = require("./is");
6
6
  const getSet_1 = require("../operations/getSet");
7
- const mutate_1 = require("../operations/mutate");
7
+ const props_1 = require("../operations/props");
8
8
  const iterate_1 = require("../operations/iterate");
9
- const pipe_1 = require("../operations/pipe");
10
9
  const transform_1 = require("../operations/transform");
11
10
  const filter_1 = require("../operations/filter");
12
11
  const ifelse_1 = require("../operations/ifelse");
@@ -15,7 +14,9 @@ const alt_1 = require("../operations/alt");
15
14
  const directionals_1 = require("../operations/directionals");
16
15
  const logical_1 = require("../operations/logical");
17
16
  const concat_1 = require("../operations/concat");
18
- const altOperation = (fn) => (0, alt_1.default)((0, transform_1.default)(fn));
17
+ const lookup_1 = require("../operations/lookup");
18
+ const pipe_1 = require("../operations/pipe");
19
+ const escape_1 = require("./escape");
19
20
  const transformDefFromValue = ({ $value: value, ...def }) => ({
20
21
  ...def,
21
22
  $transform: 'value',
@@ -31,7 +32,8 @@ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform
31
32
  (0, exports.isOperationType)(def, '$value') ||
32
33
  (0, exports.isOperationType)(def, '$and') ||
33
34
  (0, exports.isOperationType)(def, '$or') ||
34
- (0, exports.isOperationType)(def, '$concat');
35
+ (0, exports.isOperationType)(def, '$concat') ||
36
+ (0, exports.isOperationType)(def, '$lookup');
35
37
  exports.hasOperationProps = hasOperationProps;
36
38
  const isPath = (def) => typeof def === 'string';
37
39
  exports.isPath = isPath;
@@ -41,32 +43,45 @@ const isMapPipe = (def) => Array.isArray(def);
41
43
  exports.isMapPipe = isMapPipe;
42
44
  const isOperation = (def) => typeof def === 'function';
43
45
  exports.isOperation = isOperation;
46
+ const isMapDefinition = (def) => (0, exports.isPath)(def) || (0, is_1.isObject)(def) || (0, exports.isMapPipe)(def) || (0, exports.isOperation)(def);
47
+ exports.isMapDefinition = isMapDefinition;
44
48
  const iterateIf = (fn, should) => should ? (0, iterate_1.default)(fn) : fn;
45
49
  const wrapFromDefinition = (fn, def) => {
46
50
  const fnIterated = iterateIf(fn, def.$iterate === true);
47
- return (options) => {
51
+ return (options) => (next) => {
48
52
  const dir = def.$direction;
49
53
  if (typeof dir === 'string') {
50
54
  if (dir === 'rev' || dir === options.revAlias) {
51
- return (0, directionals_1.rev)(fnIterated)(options);
55
+ return (0, directionals_1.rev)(fnIterated)(options)(next);
52
56
  }
53
57
  else if (dir === 'fwd' || dir === options.fwdAlias) {
54
- return (0, directionals_1.fwd)(fnIterated)(options);
58
+ return (0, directionals_1.fwd)(fnIterated)(options)(next);
55
59
  }
56
60
  }
57
- return fnIterated(options);
61
+ return Array.isArray(fnIterated)
62
+ ? (0, pipe_1.default)(fnIterated)(options)(next)
63
+ : fnIterated(options)(next);
58
64
  };
59
65
  };
60
- const createOperation = (operationFn, fnProp, def) => (options) => {
66
+ const createOperation = (operationFn, fnProp, def) => (options) => (next) => {
61
67
  const { [fnProp]: fnId, ...operands } = def;
62
68
  const fn = options.functions && options.functions[fnId];
63
69
  return typeof fn === 'function'
64
- ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
65
- : functional_1.identity;
70
+ ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)(next)
71
+ : (state) => next(state);
72
+ };
73
+ const setNoneValuesOnOptions = (options, noneValues) => Array.isArray(noneValues)
74
+ ? { ...options, noneValues: noneValues.map(escape_1.unescapeValue) }
75
+ : options;
76
+ const createAltOperation = (operationFn, def) => (options) => (next) => {
77
+ const { $alt: defs, $undefined: noneValues } = def;
78
+ return Array.isArray(defs)
79
+ ? wrapFromDefinition(operationFn(...defs), def)(setNoneValuesOnOptions(options, noneValues))(next)
80
+ : (state) => next(state);
66
81
  };
67
- const createIfOperation = (def) => (options) => {
68
- const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline } = def;
69
- return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options);
82
+ const createIfOperation = (def) => (options) => (next) => {
83
+ const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline, } = def;
84
+ return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options)(next);
70
85
  };
71
86
  const createApplyOperation = (operationFn, def) => {
72
87
  const pipelineId = def.$apply;
@@ -76,6 +91,11 @@ const createPipelineOperation = (operationFn, fnProp, def) => {
76
91
  const pipelines = def[fnProp];
77
92
  return operationFn(...pipelines);
78
93
  };
94
+ const createLookupOperation = (operationFn, def) => {
95
+ const arrayPath = def.$lookup;
96
+ const propPath = def.path;
97
+ return wrapFromDefinition(operationFn(arrayPath, propPath), def);
98
+ };
79
99
  const operationFromObject = (def) => {
80
100
  if ((0, exports.isOperationType)(def, '$transform')) {
81
101
  return createOperation(transform_1.default, '$transform', def);
@@ -93,7 +113,7 @@ const operationFromObject = (def) => {
93
113
  return createApplyOperation(apply_1.default, def);
94
114
  }
95
115
  else if ((0, exports.isOperationType)(def, '$alt')) {
96
- return createOperation(altOperation, '$alt', def);
116
+ return createAltOperation(alt_1.default, def);
97
117
  }
98
118
  else if ((0, exports.isOperationType)(def, '$and')) {
99
119
  return createPipelineOperation(logical_1.and, '$and', def);
@@ -104,12 +124,15 @@ const operationFromObject = (def) => {
104
124
  else if ((0, exports.isOperationType)(def, '$concat')) {
105
125
  return createPipelineOperation(concat_1.default, '$concat', def);
106
126
  }
127
+ else if ((0, exports.isOperationType)(def, '$lookup')) {
128
+ return createLookupOperation(lookup_1.default, def);
129
+ }
107
130
  else {
108
- return (0, mutate_1.default)(def);
131
+ return (0, props_1.default)(def);
109
132
  }
110
133
  };
111
- const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
112
- ? (0, pipe_1.default)(def)
134
+ const operationsFromDef = (def) => Array.isArray(def)
135
+ ? def.flatMap(exports.operationsFromDef)
113
136
  : (0, is_1.isObject)(def)
114
137
  ? operationFromObject(def)
115
138
  : (0, exports.isPath)(def)
@@ -117,5 +140,10 @@ const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
117
140
  : (0, exports.isOperation)(def)
118
141
  ? def
119
142
  : (_options) => functional_1.identity;
120
- exports.mapFunctionFromDef = mapFunctionFromDef;
143
+ exports.operationsFromDef = operationsFromDef;
144
+ function operationFromDef(def) {
145
+ const operations = (0, exports.operationsFromDef)(def);
146
+ return Array.isArray(operations) ? (0, pipe_1.default)(operations) : operations;
147
+ }
148
+ exports.operationFromDef = operationFromDef;
121
149
  //# sourceMappingURL=definitionHelpers.js.map
@@ -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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"}
@@ -1,7 +1,20 @@
1
- import { State, Options } from '../types';
2
- export declare const setStateValue: (state: State, value: unknown) => State;
1
+ import { State } from '../types';
2
+ export declare const setStateValue: (state: State, value: unknown, shouldPushContext?: boolean) => State;
3
3
  export declare const getStateValue: (state: State) => any;
4
- export declare const setValueFromState: (state: State, { value }: State) => State;
5
- export declare const setTargetOnState: (state: State, target?: unknown) => State;
4
+ export declare const setValueFromState: (state: State, { value, context }: State, shouldSetContext?: boolean) => State;
5
+ export declare const getRootFromState: (state: State) => unknown;
6
+ export declare const getTargetFromState: (state: State) => unknown;
7
+ export declare function setTargetOnState(state: State, target: unknown): State;
8
+ export declare const getLastContext: (state: State) => unknown;
9
+ export declare const removeLastContext: (state: State) => {
10
+ context: unknown[];
11
+ value: unknown;
12
+ target?: unknown;
13
+ rev?: boolean | undefined;
14
+ flip?: boolean | undefined;
15
+ onlyMapped?: boolean | undefined;
16
+ arr?: boolean | undefined;
17
+ iterate?: boolean | undefined;
18
+ };
6
19
  export declare const populateState: ({ rev, onlyMapped }: Partial<State>) => (data: unknown) => State;
7
- export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;
20
+ export declare const isNoneValueState: (state: State, noneValues?: unknown[]) => boolean;
@@ -1,31 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shouldSkipMutation = exports.populateState = exports.setTargetOnState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
- const setStateValue = (state, value) => ({
3
+ exports.isNoneValueState = exports.populateState = exports.removeLastContext = exports.getLastContext = exports.setTargetOnState = exports.getTargetFromState = exports.getRootFromState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
+ const setStateValue = (state, value, shouldPushContext = false) => ({
5
5
  ...state,
6
+ context: shouldPushContext && state.value !== undefined
7
+ ? [...state.context, state.value]
8
+ : state.context,
6
9
  value,
7
10
  });
8
11
  exports.setStateValue = setStateValue;
9
12
  const getStateValue = (state) => state.value;
10
13
  exports.getStateValue = getStateValue;
11
- const setValueFromState = (state, { value }) => ({
14
+ const setValueFromState = (state, { value, context }, shouldSetContext = false) => ({
12
15
  ...state,
13
16
  value,
17
+ context: shouldSetContext ? context : state.context,
14
18
  });
15
19
  exports.setValueFromState = setValueFromState;
16
- const setTargetOnState = (state, target) => ({
20
+ const getRootFromState = (state) => state.context.length === 0 ? state.value : state.context[0];
21
+ exports.getRootFromState = getRootFromState;
22
+ const getTargetFromState = (state) => state.target;
23
+ exports.getTargetFromState = getTargetFromState;
24
+ function setTargetOnState(state, target) {
25
+ return {
26
+ ...state,
27
+ target,
28
+ };
29
+ }
30
+ exports.setTargetOnState = setTargetOnState;
31
+ const getLastContext = (state) => state.context[state.context.length - 1];
32
+ exports.getLastContext = getLastContext;
33
+ const removeLastContext = (state) => ({
17
34
  ...state,
18
- target,
35
+ context: state.context.slice(0, -1),
19
36
  });
20
- exports.setTargetOnState = setTargetOnState;
37
+ exports.removeLastContext = removeLastContext;
21
38
  const populateState = ({ rev = false, onlyMapped = false }) => (data) => ({
22
- root: data,
23
- context: data,
39
+ context: [],
24
40
  value: data,
25
41
  rev,
26
42
  onlyMapped,
27
43
  });
28
44
  exports.populateState = populateState;
29
- const shouldSkipMutation = ({ mutateNull = true }) => (state) => state.value === undefined || (!mutateNull && state.value === null);
30
- exports.shouldSkipMutation = shouldSkipMutation;
45
+ const isNoneValueState = (state, noneValues = [undefined]) => noneValues.includes(state.value);
46
+ exports.isNoneValueState = isNoneValueState;
31
47
  //# sourceMappingURL=stateHelpers.js.map
@@ -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,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;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,CAC3B,KAAY,EACZ,KAAc,EACd,iBAAiB,GAAG,KAAK,EAClB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,OAAO,EACL,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAC5C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO;IACnB,KAAK;CACN,CAAC,CAAA;AAXW,QAAA,aAAa,iBAWxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAC/B,KAAY,EACZ,EAAE,KAAK,EAAE,OAAO,EAAS,EACzB,gBAAgB,GAAG,KAAK,EACjB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,KAAK;IACL,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;CACpD,CAAC,CAAA;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE,CAC/C,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AADhD,QAAA,gBAAgB,oBACgC;AAEtD,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAA;AAAnD,QAAA,kBAAkB,sBAAiC;AAEhE,SAAgB,gBAAgB,CAAC,KAAY,EAAE,MAAe;IAC5D,OAAO;QACL,GAAG,KAAK;QACR,MAAM;KACP,CAAA;AACH,CAAC;AALD,4CAKC;AAEM,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAD5B,QAAA,cAAc,kBACc;AAElC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAClD,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AAPS,QAAA,aAAa,iBAOtB;AAEG,MAAM,gBAAgB,GAAG,CAC9B,KAAY,EACZ,aAAwB,CAAC,SAAS,CAAC,EACnC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAHxB,QAAA,gBAAgB,oBAGQ"}
@@ -0,0 +1 @@
1
+ export default function xor(a?: boolean, b?: boolean): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function xor(a = false, b = false) {
4
+ return a ? !b : b;
5
+ }
6
+ exports.default = xor;
7
+ //# sourceMappingURL=xor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xor.js","sourceRoot":"","sources":["../../src/utils/xor.ts"],"names":[],"mappings":";;AAAA,SAAwB,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAFD,sBAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "0.4.0-alpha.19",
3
+ "version": "0.4.0-alpha.21",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <post@kjellmorten.no>",
6
6
  "license": "ISC",
@@ -1,7 +0,0 @@
1
- import { Operands, DataMapper } from '../types';
2
- interface Options extends Operands {
3
- path?: string | string[];
4
- sep?: string;
5
- }
6
- export default function join({ path, sep }: Options): DataMapper;
7
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const pathGetter_1 = require("../utils/pathGetter");
4
- function join({ path = [], sep = ' ' }) {
5
- const getFns = [].concat(path).map(pathGetter_1.default);
6
- return (data) => {
7
- const values = getFns.map((fn) => fn(data));
8
- return values.filter((value) => typeof value !== 'undefined').join(sep);
9
- };
10
- }
11
- exports.default = join;
12
- //# sourceMappingURL=join.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/functions/join.ts"],"names":[],"mappings":";;AACA,oDAAwC;AAOxC,SAAwB,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAW;IAC5D,MAAM,MAAM,GAAI,EAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAA;IAExD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,CAAC,CAAA;AACH,CAAC;AAPD,uBAOC"}
@@ -1,2 +0,0 @@
1
- import { Operation, MapObject } from '../types';
2
- export default function mutate(def: MapObject): Operation;
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const stateHelpers_1 = require("../utils/stateHelpers");
4
- const getSet_1 = require("./getSet");
5
- const directionals_1 = require("./directionals");
6
- const iterate_1 = require("./iterate");
7
- const plug_1 = require("./plug");
8
- const definitionHelpers_1 = require("../utils/definitionHelpers");
9
- const array_1 = require("../utils/array");
10
- const is_1 = require("../utils/is");
11
- const setIfPath = (map) => (typeof map === 'string' ? (0, getSet_1.set)(map) : map);
12
- const flipIfNeeded = (pipe, shouldFlip) => {
13
- const pipeline = shouldFlip ? pipe.slice().reverse().map(setIfPath) : pipe;
14
- return pipeline;
15
- };
16
- const shouldIterate = (def, path) => ((0, definitionHelpers_1.isMapObject)(def) && def.$iterate === true) || (0, is_1.isArrayPath)(path);
17
- const shouldModify = (def) => (0, definitionHelpers_1.isMapObject)(def) && !!def.$modify;
18
- const extractModifyPath = (def) => shouldModify(def)
19
- ? def.$modify === true
20
- ? '.'
21
- : def.$modify || undefined
22
- : undefined;
23
- const extractRealPath = (path) => {
24
- const [realPath, index] = path.split('/');
25
- return [realPath, index !== undefined];
26
- };
27
- const setTargetOnState = (state, target) => ({
28
- ...state,
29
- target,
30
- });
31
- const runWithTarget = (options, state) => (prevState, operation) => operation(options)(setTargetOnState(state, prevState?.value));
32
- const revertTarget = ({ target, ...state }, originalState) => originalState.target ? setTargetOnState(state, originalState.target) : state;
33
- function modifyStateValue(prevStateValue, nextState) {
34
- const nextStateValue = (0, stateHelpers_1.getStateValue)(nextState);
35
- if ((0, is_1.isObject)(prevStateValue) && (0, is_1.isObject)(nextStateValue)) {
36
- return (0, stateHelpers_1.setStateValue)(nextState, {
37
- ...prevStateValue,
38
- ...nextStateValue,
39
- });
40
- }
41
- else {
42
- return nextState;
43
- }
44
- }
45
- const run = (operations, modifySourcePath) => function (options) {
46
- const shouldSkip = (0, stateHelpers_1.shouldSkipMutation)(options);
47
- return function runMutation(state) {
48
- if (shouldSkip(state)) {
49
- return (0, stateHelpers_1.setStateValue)(state, undefined);
50
- }
51
- else {
52
- const nextState = revertTarget(operations.reduce(runWithTarget(options, state), undefined) || state, state);
53
- return modifySourcePath
54
- ? modifyStateValue((0, getSet_1.getValueFromState)(modifySourcePath)(state), nextState)
55
- : nextState;
56
- }
57
- };
58
- };
59
- const objectToMapFunction = (objectDef, shouldFlip, parentPath = '') => Object.entries(objectDef)
60
- .flatMap(([path, def]) => {
61
- if (!def || path.startsWith('$')) {
62
- return null;
63
- }
64
- const [realPath, revOnly] = extractRealPath(path);
65
- const nextPath = [parentPath, realPath].filter(Boolean).join('.');
66
- if ((0, definitionHelpers_1.isMapObject)(def) &&
67
- !shouldIterate(def, nextPath) &&
68
- !shouldModify(def)) {
69
- return objectToMapFunction(def, shouldFlip, nextPath);
70
- }
71
- else {
72
- const subPipeline = (0, definitionHelpers_1.isMapObject)(def)
73
- ? [runAndIterate(def, shouldFlip, nextPath)]
74
- : flipIfNeeded((0, array_1.ensureArray)(def), shouldFlip);
75
- const pipeline = (0, definitionHelpers_1.mapFunctionFromDef)([
76
- shouldFlip ? nextPath : null,
77
- ...subPipeline,
78
- shouldFlip ? null : (0, getSet_1.set)(nextPath),
79
- ]);
80
- return revOnly ? (0, directionals_1.divide)((0, plug_1.default)(), pipeline) : pipeline;
81
- }
82
- })
83
- .filter((pipeline) => !!pipeline);
84
- function runAndIterate(def, shouldFlip, nextPath = '') {
85
- const operations = objectToMapFunction(def, shouldFlip);
86
- const modifySourcePath = extractModifyPath(def);
87
- return shouldIterate(def, nextPath)
88
- ? (0, iterate_1.default)(run(operations, modifySourcePath))
89
- : run(operations, modifySourcePath);
90
- }
91
- function mutate(def) {
92
- if (Object.keys(def).length === 0) {
93
- return (_options) => (state) => (0, stateHelpers_1.setStateValue)(state, undefined);
94
- }
95
- const shouldFlip = def.$flip === true;
96
- const runMutation = runAndIterate(def, shouldFlip);
97
- return function mutateFn(options) {
98
- const dir = def.$direction;
99
- if (typeof dir === 'string') {
100
- if (dir === 'fwd' || dir === options.fwdAlias) {
101
- return (state) => !state.rev ? runMutation(options)(state) : state;
102
- }
103
- else if (dir === 'rev' || dir === options.revAlias) {
104
- return (state) => state.rev ? runMutation(options)(state) : state;
105
- }
106
- }
107
- return runMutation(options);
108
- };
109
- }
110
- exports.default = mutate;
111
- //# sourceMappingURL=mutate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/operations/mutate.ts"],"names":[],"mappings":"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"}