map-transform 0.4.0-alpha.20 → 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 -8
  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 +13 -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 +46 -24
  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,6 +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");
17
+ const lookup_1 = require("../operations/lookup");
18
+ const pipe_1 = require("../operations/pipe");
19
+ const escape_1 = require("./escape");
18
20
  const transformDefFromValue = ({ $value: value, ...def }) => ({
19
21
  ...def,
20
22
  $transform: 'value',
@@ -30,7 +32,8 @@ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform
30
32
  (0, exports.isOperationType)(def, '$value') ||
31
33
  (0, exports.isOperationType)(def, '$and') ||
32
34
  (0, exports.isOperationType)(def, '$or') ||
33
- (0, exports.isOperationType)(def, '$concat');
35
+ (0, exports.isOperationType)(def, '$concat') ||
36
+ (0, exports.isOperationType)(def, '$lookup');
34
37
  exports.hasOperationProps = hasOperationProps;
35
38
  const isPath = (def) => typeof def === 'string';
36
39
  exports.isPath = isPath;
@@ -40,39 +43,45 @@ const isMapPipe = (def) => Array.isArray(def);
40
43
  exports.isMapPipe = isMapPipe;
41
44
  const isOperation = (def) => typeof def === 'function';
42
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;
43
48
  const iterateIf = (fn, should) => should ? (0, iterate_1.default)(fn) : fn;
44
49
  const wrapFromDefinition = (fn, def) => {
45
50
  const fnIterated = iterateIf(fn, def.$iterate === true);
46
- return (options) => {
51
+ return (options) => (next) => {
47
52
  const dir = def.$direction;
48
53
  if (typeof dir === 'string') {
49
54
  if (dir === 'rev' || dir === options.revAlias) {
50
- return (0, directionals_1.rev)(fnIterated)(options);
55
+ return (0, directionals_1.rev)(fnIterated)(options)(next);
51
56
  }
52
57
  else if (dir === 'fwd' || dir === options.fwdAlias) {
53
- return (0, directionals_1.fwd)(fnIterated)(options);
58
+ return (0, directionals_1.fwd)(fnIterated)(options)(next);
54
59
  }
55
60
  }
56
- return fnIterated(options);
61
+ return Array.isArray(fnIterated)
62
+ ? (0, pipe_1.default)(fnIterated)(options)(next)
63
+ : fnIterated(options)(next);
57
64
  };
58
65
  };
59
- const createOperation = (operationFn, fnProp, def) => (options) => {
66
+ const createOperation = (operationFn, fnProp, def) => (options) => (next) => {
60
67
  const { [fnProp]: fnId, ...operands } = def;
61
68
  const fn = options.functions && options.functions[fnId];
62
69
  return typeof fn === 'function'
63
- ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
64
- : functional_1.identity;
70
+ ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)(next)
71
+ : (state) => next(state);
65
72
  };
66
- const createAltOperation = (operationFn, def) => (options) => {
67
- const { $alt: fnId, $undefined: undefinedValues, ...operands } = def;
68
- const fn = options.functions && options.functions[fnId];
69
- return typeof fn === 'function'
70
- ? wrapFromDefinition(operationFn((0, transform_1.default)(fn(operands, options)), undefinedValues), def)(options)
71
- : functional_1.identity;
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);
72
81
  };
73
- const createIfOperation = (def) => (options) => {
74
- const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline } = def;
75
- 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);
76
85
  };
77
86
  const createApplyOperation = (operationFn, def) => {
78
87
  const pipelineId = def.$apply;
@@ -82,6 +91,11 @@ const createPipelineOperation = (operationFn, fnProp, def) => {
82
91
  const pipelines = def[fnProp];
83
92
  return operationFn(...pipelines);
84
93
  };
94
+ const createLookupOperation = (operationFn, def) => {
95
+ const arrayPath = def.$lookup;
96
+ const propPath = def.path;
97
+ return wrapFromDefinition(operationFn(arrayPath, propPath), def);
98
+ };
85
99
  const operationFromObject = (def) => {
86
100
  if ((0, exports.isOperationType)(def, '$transform')) {
87
101
  return createOperation(transform_1.default, '$transform', def);
@@ -110,12 +124,15 @@ const operationFromObject = (def) => {
110
124
  else if ((0, exports.isOperationType)(def, '$concat')) {
111
125
  return createPipelineOperation(concat_1.default, '$concat', def);
112
126
  }
127
+ else if ((0, exports.isOperationType)(def, '$lookup')) {
128
+ return createLookupOperation(lookup_1.default, def);
129
+ }
113
130
  else {
114
- return (0, mutate_1.default)(def);
131
+ return (0, props_1.default)(def);
115
132
  }
116
133
  };
117
- const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
118
- ? (0, pipe_1.default)(def)
134
+ const operationsFromDef = (def) => Array.isArray(def)
135
+ ? def.flatMap(exports.operationsFromDef)
119
136
  : (0, is_1.isObject)(def)
120
137
  ? operationFromObject(def)
121
138
  : (0, exports.isPath)(def)
@@ -123,5 +140,10 @@ const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
123
140
  : (0, exports.isOperation)(def)
124
141
  ? def
125
142
  : (_options) => functional_1.identity;
126
- 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;
127
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.20",
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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"}