map-transform 0.4.0-alpha.18 → 0.4.0-alpha.20
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/dist/operations/alt.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Operation, MapDefinition } from '../types';
|
|
2
|
-
export default function alt(fn: MapDefinition): Operation;
|
|
2
|
+
export default function alt(fn: MapDefinition, undefinedValues?: unknown[]): Operation;
|
package/dist/operations/alt.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const stateHelpers_1 = require("../utils/stateHelpers");
|
|
4
4
|
const definitionHelpers_1 = require("../utils/definitionHelpers");
|
|
5
|
-
|
|
5
|
+
const escape_1 = require("../utils/escape");
|
|
6
|
+
function alt(fn, undefinedValues = [undefined]) {
|
|
6
7
|
return (options) => {
|
|
8
|
+
const undefinedValuesUnescaped = undefinedValues.map(escape_1.unescapeValue);
|
|
7
9
|
const runAlt = (0, definitionHelpers_1.mapFunctionFromDef)(fn)(options);
|
|
8
|
-
return (state) => (0, stateHelpers_1.getStateValue)(state)
|
|
10
|
+
return (state) => undefinedValuesUnescaped.includes((0, stateHelpers_1.getStateValue)(state))
|
|
9
11
|
? runAlt((0, stateHelpers_1.setStateValue)(state, state.context))
|
|
10
12
|
: state;
|
|
11
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;
|
|
1
|
+
{"version":3,"file":"alt.js","sourceRoot":"","sources":["../../src/operations/alt.ts"],"names":[],"mappings":";;AACA,wDAAoE;AACpE,kEAA+D;AAC/D,4CAA+C;AAE/C,SAAwB,GAAG,CACzB,EAAiB,EACjB,kBAA6B,CAAC,SAAS,CAAC;IAExC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,wBAAwB,GAAG,eAAe,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,IAAA,sCAAkB,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAE9C,OAAO,CAAC,KAAK,EAAE,EAAE,CACf,wBAAwB,CAAC,QAAQ,CAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,MAAM,CAAC,IAAA,4BAAa,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AAbD,sBAaC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ export interface AltObject extends Operands {
|
|
|
60
60
|
$alt: string;
|
|
61
61
|
$iterate?: boolean;
|
|
62
62
|
$direction?: string;
|
|
63
|
+
undefined?: unknown[];
|
|
63
64
|
}
|
|
64
65
|
export interface ValueObject extends Operands {
|
|
65
66
|
$value: string;
|
|
@@ -72,7 +73,10 @@ export interface AndObject extends Operands {
|
|
|
72
73
|
export interface OrObject extends Operands {
|
|
73
74
|
$or: MapDefinition[];
|
|
74
75
|
}
|
|
75
|
-
export
|
|
76
|
+
export interface ConcatObject extends Operands {
|
|
77
|
+
$concat: MapDefinition[];
|
|
78
|
+
}
|
|
79
|
+
export declare type OperationObject = TransformObject | FilterObject | IfObject | ApplyObject | AltObject | ValueObject | AndObject | OrObject | ConcatObject;
|
|
76
80
|
export interface StateMapper {
|
|
77
81
|
(state: State): State;
|
|
78
82
|
getTarget?: (state: State) => unknown;
|
|
@@ -98,6 +102,7 @@ export interface MapObject {
|
|
|
98
102
|
$alt?: undefined;
|
|
99
103
|
$and?: undefined;
|
|
100
104
|
$or?: undefined;
|
|
105
|
+
$concat?: undefined;
|
|
101
106
|
}
|
|
102
107
|
export declare type MapDefinition = MapObject | Operation | OperationObject | MapPipe | Path | null;
|
|
103
108
|
export interface MapTransformWithOnlyMappedValues {
|
|
@@ -14,7 +14,7 @@ const apply_1 = require("../operations/apply");
|
|
|
14
14
|
const alt_1 = require("../operations/alt");
|
|
15
15
|
const directionals_1 = require("../operations/directionals");
|
|
16
16
|
const logical_1 = require("../operations/logical");
|
|
17
|
-
const
|
|
17
|
+
const concat_1 = require("../operations/concat");
|
|
18
18
|
const transformDefFromValue = ({ $value: value, ...def }) => ({
|
|
19
19
|
...def,
|
|
20
20
|
$transform: 'value',
|
|
@@ -29,7 +29,8 @@ const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform
|
|
|
29
29
|
(0, exports.isOperationType)(def, '$alt') ||
|
|
30
30
|
(0, exports.isOperationType)(def, '$value') ||
|
|
31
31
|
(0, exports.isOperationType)(def, '$and') ||
|
|
32
|
-
(0, exports.isOperationType)(def, '$or')
|
|
32
|
+
(0, exports.isOperationType)(def, '$or') ||
|
|
33
|
+
(0, exports.isOperationType)(def, '$concat');
|
|
33
34
|
exports.hasOperationProps = hasOperationProps;
|
|
34
35
|
const isPath = (def) => typeof def === 'string';
|
|
35
36
|
exports.isPath = isPath;
|
|
@@ -62,6 +63,13 @@ const createOperation = (operationFn, fnProp, def) => (options) => {
|
|
|
62
63
|
? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
|
|
63
64
|
: functional_1.identity;
|
|
64
65
|
};
|
|
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;
|
|
72
|
+
};
|
|
65
73
|
const createIfOperation = (def) => (options) => {
|
|
66
74
|
const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline } = def;
|
|
67
75
|
return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options);
|
|
@@ -70,7 +78,7 @@ const createApplyOperation = (operationFn, def) => {
|
|
|
70
78
|
const pipelineId = def.$apply;
|
|
71
79
|
return wrapFromDefinition(operationFn(pipelineId), def);
|
|
72
80
|
};
|
|
73
|
-
const
|
|
81
|
+
const createPipelineOperation = (operationFn, fnProp, def) => {
|
|
74
82
|
const pipelines = def[fnProp];
|
|
75
83
|
return operationFn(...pipelines);
|
|
76
84
|
};
|
|
@@ -91,13 +99,16 @@ const operationFromObject = (def) => {
|
|
|
91
99
|
return createApplyOperation(apply_1.default, def);
|
|
92
100
|
}
|
|
93
101
|
else if ((0, exports.isOperationType)(def, '$alt')) {
|
|
94
|
-
return
|
|
102
|
+
return createAltOperation(alt_1.default, def);
|
|
95
103
|
}
|
|
96
104
|
else if ((0, exports.isOperationType)(def, '$and')) {
|
|
97
|
-
return
|
|
105
|
+
return createPipelineOperation(logical_1.and, '$and', def);
|
|
98
106
|
}
|
|
99
107
|
else if ((0, exports.isOperationType)(def, '$or')) {
|
|
100
|
-
return
|
|
108
|
+
return createPipelineOperation(logical_1.or, '$or', def);
|
|
109
|
+
}
|
|
110
|
+
else if ((0, exports.isOperationType)(def, '$concat')) {
|
|
111
|
+
return createPipelineOperation(concat_1.default, '$concat', def);
|
|
101
112
|
}
|
|
102
113
|
else {
|
|
103
114
|
return (0, mutate_1.default)(def);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":";;;AAmBA,6CAAuC;AACvC,6BAA+B;AAC/B,iDAA0C;AAC1C,iDAAyC;AACzC,mDAA2C;AAC3C,6CAAqC;AACrC,uDAA+C;AAC/C,iDAAyC;AACzC,iDAAyC;AACzC,+CAAuC;AACvC,2CAAmC;AACnC,6DAAqD;AACrD,mDAA+C;AAC/C,iDAAyC;AAEzC,MAAM,qBAAqB,GAAG,CAAC,EAC7B,MAAM,EAAE,KAAK,EACb,GAAG,GAAG,EACsB,EAAE,EAAE,CAAC,CAAC;IAClC,GAAG,GAAG;IACN,UAAU,EAAE,OAAO;IACnB,KAAK;CACN,CAAC,CAAA;AAEK,MAAM,eAAe,GAAG,CAC7B,GAAgC,EAChC,IAAY,EACF,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AAHzB,QAAA,eAAe,mBAGU;AAC/B,MAAM,iBAAiB,GAAG,CAC/B,GAAgC,EACR,EAAE,CAC1B,IAAA,uBAAe,EAAkB,GAAG,EAAE,YAAY,CAAC;IACnD,IAAA,uBAAe,EAAe,GAAG,EAAE,SAAS,CAAC;IAC7C,IAAA,uBAAe,EAAW,GAAG,EAAE,KAAK,CAAC;IACrC,IAAA,uBAAe,EAAc,GAAG,EAAE,QAAQ,CAAC;IAC3C,IAAA,uBAAe,EAAY,GAAG,EAAE,MAAM,CAAC;IACvC,IAAA,uBAAe,EAAc,GAAG,EAAE,QAAQ,CAAC;IAC3C,IAAA,uBAAe,EAAY,GAAG,EAAE,MAAM,CAAC;IACvC,IAAA,uBAAe,EAAW,GAAG,EAAE,KAAK,CAAC;IACrC,IAAA,uBAAe,EAAe,GAAG,EAAE,SAAS,CAAC,CAAA;AAXlC,QAAA,iBAAiB,qBAWiB;AAExC,MAAM,MAAM,GAAG,CAAC,GAAY,EAAe,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAA;AAA/D,QAAA,MAAM,UAAyD;AACrE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAoB,EAAE,CAC5D,IAAA,aAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,IAAA,yBAAiB,EAAC,GAAkC,CAAC,CAAA;AAD5D,QAAA,WAAW,eACiD;AAClE,MAAM,SAAS,GAAG,CAAC,GAAY,EAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAAhE,QAAA,SAAS,aAAuD;AACtE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAoB,EAAE,CAC5D,OAAO,GAAG,KAAK,UAAU,CAAA;AADd,QAAA,WAAW,eACG;AAE3B,MAAM,SAAS,GAAG,CAAC,EAAa,EAAE,MAAe,EAAE,EAAE,CACnD,MAAM,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAE3B,MAAM,kBAAkB,GAAG,CAAC,EAAa,EAAE,GAAoB,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;IACvD,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAA;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC7C,OAAO,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAA;aAChC;iBAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACpD,OAAO,IAAA,kBAAG,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAA;aAChC;SACF;QACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GACnB,CACE,WAA0C,EAC1C,MAAc,EACd,GAAM,EACN,EAAE,CACJ,CAAC,OAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAA;IAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAc,CAAC,CAAA;IACjE,OAAO,OAAO,EAAE,KAAK,UAAU;QAC7B,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACtE,CAAC,CAAC,qBAAQ,CAAA;AACd,CAAC,CAAA;AAEH,MAAM,kBAAkB,GACtB,CACE,WAA+D,EAC/D,GAAc,EACd,EAAE,CACJ,CAAC,OAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAA;IACpE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAc,CAAC,CAAA;IACjE,OAAO,OAAO,EAAE,KAAK,UAAU;QAC7B,CAAC,CAAC,kBAAkB,CAChB,WAAW,CAAC,IAAA,mBAAS,EAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,EAC9D,GAAG,CACJ,CAAC,OAAO,CAAC;QACZ,CAAC,CAAC,qBAAQ,CAAA;AACd,CAAC,CAAA;AAEH,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE;IAChE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,GAAG,CAAA;IAC9E,OAAO,kBAAkB,CACvB,IAAA,gBAAM,EAAC,iBAAiB,EAAE,YAAY,EAAE,YAAY,CAAC,EACrD,GAAG,CACJ,CAAC,OAAO,CAAC,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,WAA8C,EAC9C,GAAgB,EAChB,EAAE;IACF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAA;IAC7B,OAAO,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,WAAkD,EAClD,MAAkC,EAClC,GAAwC,EACxC,EAAE;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,OAAO,WAAW,CAAC,GAAG,SAAS,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,GAAgC,EAAE,EAAE;IAC/D,IAAI,IAAA,uBAAe,EAAkB,GAAG,EAAE,YAAY,CAAC,EAAE;QACvD,OAAO,eAAe,CAAC,mBAAS,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;KACrD;SAAM,IAAI,IAAA,uBAAe,EAAc,GAAG,EAAE,QAAQ,CAAC,EAAE;QACtD,OAAO,eAAe,CAAC,mBAAS,EAAE,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;KAC5E;SAAM,IAAI,IAAA,uBAAe,EAAe,GAAG,EAAE,SAAS,CAAC,EAAE;QACxD,OAAO,eAAe,CAAC,gBAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;KAC/C;SAAM,IAAI,IAAA,uBAAe,EAAW,GAAG,EAAE,KAAK,CAAC,EAAE;QAChD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;KAC9B;SAAM,IAAI,IAAA,uBAAe,EAAc,GAAG,EAAE,QAAQ,CAAC,EAAE;QACtD,OAAO,oBAAoB,CAAC,eAAK,EAAE,GAAG,CAAC,CAAA;KACxC;SAAM,IAAI,IAAA,uBAAe,EAAY,GAAG,EAAE,MAAM,CAAC,EAAE;QAClD,OAAO,kBAAkB,CAAC,aAAG,EAAE,GAAG,CAAC,CAAA;KACpC;SAAM,IAAI,IAAA,uBAAe,EAAY,GAAG,EAAE,MAAM,CAAC,EAAE;QAClD,OAAO,uBAAuB,CAAC,aAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;KACjD;SAAM,IAAI,IAAA,uBAAe,EAAW,GAAG,EAAE,KAAK,CAAC,EAAE;QAChD,OAAO,uBAAuB,CAAC,YAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;KAC/C;SAAM,IAAI,IAAA,uBAAe,EAAe,GAAG,EAAE,SAAS,CAAC,EAAE;QACxD,OAAO,uBAAuB,CAAC,gBAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;KACvD;SAAM;QACL,OAAO,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAA;KACnB;AACH,CAAC,CAAA;AAEM,MAAM,kBAAkB,GAAG,CAAC,GAAmB,EAAa,EAAE,CACnE,IAAA,iBAAS,EAAC,GAAG,CAAC;IACZ,CAAC,CAAC,IAAA,cAAI,EAAC,GAAG,CAAC;IACX,CAAC,CAAC,IAAA,aAAQ,EAAC,GAAG,CAAC;QACf,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAA,cAAM,EAAC,GAAG,CAAC;YACb,CAAC,CAAC,IAAA,YAAG,EAAC,GAAG,CAAC;YACV,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,CAAC;gBAClB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,qBAAQ,CAAA;AATxB,QAAA,kBAAkB,sBASM"}
|
package/package.json
CHANGED