@wix/motion-edm-autogen-transformations-core 1.3.0
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/cjs/__tests__/corvid-entity.spec.js +68 -0
- package/dist/cjs/__tests__/corvid-entity.spec.js.map +1 -0
- package/dist/cjs/__tests__/getArgumentCardinality.spec.js +58 -0
- package/dist/cjs/__tests__/getArgumentCardinality.spec.js.map +1 -0
- package/dist/cjs/__tests__/helpers.spec.js +90 -0
- package/dist/cjs/__tests__/helpers.spec.js.map +1 -0
- package/dist/cjs/__tests__/reduceTransformation.spec.js +478 -0
- package/dist/cjs/__tests__/reduceTransformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/custom-functions.spec.js +111 -0
- package/dist/cjs/__tests__/transformations/custom-functions.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js +47 -0
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js +75 -0
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js +46 -0
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js +28 -0
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js +66 -0
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js +90 -0
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js +291 -0
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js +370 -0
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js.map +1 -0
- package/dist/cjs/index.js +102 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/corvid-entity/index.js +32 -0
- package/dist/cjs/lib/corvid-entity/index.js.map +1 -0
- package/dist/cjs/lib/getArgumentCardinality.js +34 -0
- package/dist/cjs/lib/getArgumentCardinality.js.map +1 -0
- package/dist/cjs/lib/helpers.js +111 -0
- package/dist/cjs/lib/helpers.js.map +1 -0
- package/dist/cjs/lib/transformations/common.js +24 -0
- package/dist/cjs/lib/transformations/common.js.map +1 -0
- package/dist/cjs/lib/transformations/constants.js +23 -0
- package/dist/cjs/lib/transformations/constants.js.map +1 -0
- package/dist/cjs/lib/transformations/custom-functions.js +46 -0
- package/dist/cjs/lib/transformations/custom-functions.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/create.js +17 -0
- package/dist/cjs/lib/transformations/preset/create.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/delete.js +42 -0
- package/dist/cjs/lib/transformations/preset/delete.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/get.js +17 -0
- package/dist/cjs/lib/transformations/preset/get.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/list.js +13 -0
- package/dist/cjs/lib/transformations/preset/list.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/query.js +40 -0
- package/dist/cjs/lib/transformations/preset/query.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/update.js +37 -0
- package/dist/cjs/lib/transformations/preset/update.js.map +1 -0
- package/dist/cjs/lib/transformations/reduceTransformation.js +180 -0
- package/dist/cjs/lib/transformations/reduceTransformation.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/common.js +50 -0
- package/dist/cjs/lib/transformations/validations/common.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js +118 -0
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js +161 -0
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js.map +1 -0
- package/dist/esm/__tests__/corvid-entity.spec.js +58 -0
- package/dist/esm/__tests__/corvid-entity.spec.js.map +1 -0
- package/dist/esm/__tests__/getArgumentCardinality.spec.js +42 -0
- package/dist/esm/__tests__/getArgumentCardinality.spec.js.map +1 -0
- package/dist/esm/__tests__/helpers.spec.js +61 -0
- package/dist/esm/__tests__/helpers.spec.js.map +1 -0
- package/dist/esm/__tests__/reduceTransformation.spec.js +416 -0
- package/dist/esm/__tests__/reduceTransformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/custom-functions.spec.js +87 -0
- package/dist/esm/__tests__/transformations/custom-functions.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js +40 -0
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js +65 -0
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js +39 -0
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js +22 -0
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js +57 -0
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js +85 -0
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js +200 -0
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js.map +1 -0
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js +246 -0
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js.map +1 -0
- package/dist/esm/index.js +47 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/corvid-entity/index.js +17 -0
- package/dist/esm/lib/corvid-entity/index.js.map +1 -0
- package/dist/esm/lib/getArgumentCardinality.js +30 -0
- package/dist/esm/lib/getArgumentCardinality.js.map +1 -0
- package/dist/esm/lib/helpers.js +56 -0
- package/dist/esm/lib/helpers.js.map +1 -0
- package/dist/esm/lib/transformations/common.js +17 -0
- package/dist/esm/lib/transformations/common.js.map +1 -0
- package/dist/esm/lib/transformations/constants.js +18 -0
- package/dist/esm/lib/transformations/constants.js.map +1 -0
- package/dist/esm/lib/transformations/custom-functions.js +34 -0
- package/dist/esm/lib/transformations/custom-functions.js.map +1 -0
- package/dist/esm/lib/transformations/preset/create.js +8 -0
- package/dist/esm/lib/transformations/preset/create.js.map +1 -0
- package/dist/esm/lib/transformations/preset/delete.js +25 -0
- package/dist/esm/lib/transformations/preset/delete.js.map +1 -0
- package/dist/esm/lib/transformations/preset/get.js +8 -0
- package/dist/esm/lib/transformations/preset/get.js.map +1 -0
- package/dist/esm/lib/transformations/preset/list.js +6 -0
- package/dist/esm/lib/transformations/preset/list.js.map +1 -0
- package/dist/esm/lib/transformations/preset/query.js +28 -0
- package/dist/esm/lib/transformations/preset/query.js.map +1 -0
- package/dist/esm/lib/transformations/preset/update.js +18 -0
- package/dist/esm/lib/transformations/preset/update.js.map +1 -0
- package/dist/esm/lib/transformations/reduceTransformation.js +122 -0
- package/dist/esm/lib/transformations/reduceTransformation.js.map +1 -0
- package/dist/esm/lib/transformations/validations/common.js +35 -0
- package/dist/esm/lib/transformations/validations/common.js.map +1 -0
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js +107 -0
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js.map +1 -0
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js +142 -0
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/__tests__/corvid-entity.spec.d.ts +2 -0
- package/dist/types/__tests__/corvid-entity.spec.d.ts.map +1 -0
- package/dist/types/__tests__/getArgumentCardinality.spec.d.ts +2 -0
- package/dist/types/__tests__/getArgumentCardinality.spec.d.ts.map +1 -0
- package/dist/types/__tests__/helpers.spec.d.ts +2 -0
- package/dist/types/__tests__/helpers.spec.d.ts.map +1 -0
- package/dist/types/__tests__/reduceTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/reduceTransformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/custom-functions.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/custom-functions.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/create-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/create-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/delete-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/delete-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/get-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/get-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/list-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/list-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/query-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/query-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/update-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/update-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/validations/validateRequestTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/validations/validateRequestTransformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/validations/validateResponseTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/validations/validateResponseTransformation.spec.d.ts.map +1 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/corvid-entity/index.d.ts +13 -0
- package/dist/types/lib/corvid-entity/index.d.ts.map +1 -0
- package/dist/types/lib/getArgumentCardinality.d.ts +3 -0
- package/dist/types/lib/getArgumentCardinality.d.ts.map +1 -0
- package/dist/types/lib/helpers.d.ts +28 -0
- package/dist/types/lib/helpers.d.ts.map +1 -0
- package/dist/types/lib/transformations/common.d.ts +15 -0
- package/dist/types/lib/transformations/common.d.ts.map +1 -0
- package/dist/types/lib/transformations/constants.d.ts +18 -0
- package/dist/types/lib/transformations/constants.d.ts.map +1 -0
- package/dist/types/lib/transformations/custom-functions.d.ts +13 -0
- package/dist/types/lib/transformations/custom-functions.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/create.d.ts +6 -0
- package/dist/types/lib/transformations/preset/create.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/delete.d.ts +7 -0
- package/dist/types/lib/transformations/preset/delete.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/get.d.ts +6 -0
- package/dist/types/lib/transformations/preset/get.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/list.d.ts +4 -0
- package/dist/types/lib/transformations/preset/list.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/query.d.ts +20 -0
- package/dist/types/lib/transformations/preset/query.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/update.d.ts +8 -0
- package/dist/types/lib/transformations/preset/update.d.ts.map +1 -0
- package/dist/types/lib/transformations/reduceTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/reduceTransformation.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/common.d.ts +13 -0
- package/dist/types/lib/transformations/validations/common.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/validateRequestTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/validations/validateRequestTransformation.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/validateResponseTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/validations/validateResponseTransformation.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.stripJsonPathRootPrefix = exports.parseOmitTransformation = exports.parseMapArrayItemsTransformation = exports.isSpreadOperator = exports.isSimpleTransformation = exports.isRootObjectIdentifier = exports.isOmitTransformation = exports.isMapArrayItemsTransformation = exports.isJsonPathExpression = exports.isInvalidJsonValue = exports.isInvalidJsonPath = exports.isIdentityResponseTransformation = exports.isConstantExpression = exports.isArrayIndexString = exports.hasValidArgumentIndex = exports.getArgumentIndex = exports.extractIndexAndPath = void 0;
|
|
5
|
+
|
|
6
|
+
var _jsonpathPlus = require("jsonpath-plus");
|
|
7
|
+
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
|
|
10
|
+
var _common = require("./transformations/common");
|
|
11
|
+
|
|
12
|
+
var _constants = require("./transformations/constants");
|
|
13
|
+
|
|
14
|
+
const RESPONSE_OBJECT_UNCHANGED = _common.transformations.RESPONSE_OBJECT_UNCHANGED,
|
|
15
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME = _common.transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
16
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = _common.transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
17
|
+
OMIT_SOURCE_PROPERTY_NAME = _common.transformations.OMIT_SOURCE_PROPERTY_NAME,
|
|
18
|
+
FIELDS_TO_OMIT_PROPERTY_NAME = _common.transformations.FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
19
|
+
SPREAD_OPERATOR = _common.transformations.SPREAD_OPERATOR,
|
|
20
|
+
CONSTANT_VALUE_PROPERTY_NAME = _common.transformations.CONSTANT_VALUE_PROPERTY_NAME;
|
|
21
|
+
|
|
22
|
+
const isInvalidJsonPath = path => (0, _lodash.isError)((0, _lodash.attempt)(() => (0, _jsonpathPlus.JSONPath)({
|
|
23
|
+
path,
|
|
24
|
+
json: {}
|
|
25
|
+
})));
|
|
26
|
+
|
|
27
|
+
exports.isInvalidJsonPath = isInvalidJsonPath;
|
|
28
|
+
|
|
29
|
+
const isInvalidJsonValue = value => (0, _lodash.isError)((0, _lodash.attempt)(() => JSON.parse(value)));
|
|
30
|
+
|
|
31
|
+
exports.isInvalidJsonValue = isInvalidJsonValue;
|
|
32
|
+
|
|
33
|
+
const isSimpleTransformation = transformation => typeof transformation === 'string';
|
|
34
|
+
|
|
35
|
+
exports.isSimpleTransformation = isSimpleTransformation;
|
|
36
|
+
|
|
37
|
+
const isArrayIndexString = str => !!/\d+/.test(str);
|
|
38
|
+
|
|
39
|
+
exports.isArrayIndexString = isArrayIndexString;
|
|
40
|
+
|
|
41
|
+
const isSpreadOperator = key => key === SPREAD_OPERATOR;
|
|
42
|
+
|
|
43
|
+
exports.isSpreadOperator = isSpreadOperator;
|
|
44
|
+
|
|
45
|
+
const isIdentityResponseTransformation = transformationPath => transformationPath === RESPONSE_OBJECT_UNCHANGED;
|
|
46
|
+
|
|
47
|
+
exports.isIdentityResponseTransformation = isIdentityResponseTransformation;
|
|
48
|
+
|
|
49
|
+
const getArgumentIndex = s => {
|
|
50
|
+
const match = s.match(/\$\[(?<argIndex>\d+)\]/);
|
|
51
|
+
return match && match.groups && Number(match.groups.argIndex);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.getArgumentIndex = getArgumentIndex;
|
|
55
|
+
|
|
56
|
+
const hasValidArgumentIndex = path => getArgumentIndex(path) !== null;
|
|
57
|
+
|
|
58
|
+
exports.hasValidArgumentIndex = hasValidArgumentIndex;
|
|
59
|
+
|
|
60
|
+
const isRootObjectIdentifier = s => s === _constants.JSON_PATH_ROOT;
|
|
61
|
+
|
|
62
|
+
exports.isRootObjectIdentifier = isRootObjectIdentifier;
|
|
63
|
+
|
|
64
|
+
const isJsonPathExpression = exp => exp && exp.startsWith(_constants.JSON_PATH_ROOT);
|
|
65
|
+
|
|
66
|
+
exports.isJsonPathExpression = isJsonPathExpression;
|
|
67
|
+
|
|
68
|
+
const stripJsonPathRootPrefix = jsonPath => jsonPath.replace(`${_constants.JSON_PATH_ROOT}.`, '');
|
|
69
|
+
|
|
70
|
+
exports.stripJsonPathRootPrefix = stripJsonPathRootPrefix;
|
|
71
|
+
|
|
72
|
+
const extractIndexAndPath = simpleTransformation => {
|
|
73
|
+
const _simpleTransformation = simpleTransformation.split('.'),
|
|
74
|
+
maybeIndexExpression = _simpleTransformation[0],
|
|
75
|
+
rest = _simpleTransformation.slice(1);
|
|
76
|
+
|
|
77
|
+
const index = getArgumentIndex(maybeIndexExpression);
|
|
78
|
+
return {
|
|
79
|
+
index,
|
|
80
|
+
nestedPath: index !== null && rest.length > 0 ? rest.join('.') : null
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
exports.extractIndexAndPath = extractIndexAndPath;
|
|
85
|
+
|
|
86
|
+
const isMapArrayItemsTransformation = transformationValue => (0, _lodash.has)(transformationValue, ARRAY_ITEMS_PATH_PROPERTY_NAME) && (0, _lodash.has)(transformationValue, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME);
|
|
87
|
+
|
|
88
|
+
exports.isMapArrayItemsTransformation = isMapArrayItemsTransformation;
|
|
89
|
+
|
|
90
|
+
const parseMapArrayItemsTransformation = transformationValue => ({
|
|
91
|
+
sourceArrayExpression: transformationValue[ARRAY_ITEMS_PATH_PROPERTY_NAME],
|
|
92
|
+
itemTransformation: transformationValue[ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
exports.parseMapArrayItemsTransformation = parseMapArrayItemsTransformation;
|
|
96
|
+
|
|
97
|
+
const isOmitTransformation = transformationValue => (0, _lodash.has)(transformationValue, OMIT_SOURCE_PROPERTY_NAME) && (0, _lodash.has)(transformationValue, FIELDS_TO_OMIT_PROPERTY_NAME);
|
|
98
|
+
|
|
99
|
+
exports.isOmitTransformation = isOmitTransformation;
|
|
100
|
+
|
|
101
|
+
const parseOmitTransformation = transformationValue => ({
|
|
102
|
+
sourceExpression: transformationValue[OMIT_SOURCE_PROPERTY_NAME],
|
|
103
|
+
fieldsToOmit: transformationValue[FIELDS_TO_OMIT_PROPERTY_NAME]
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
exports.parseOmitTransformation = parseOmitTransformation;
|
|
107
|
+
|
|
108
|
+
const isConstantExpression = value => (0, _lodash.has)(value, CONSTANT_VALUE_PROPERTY_NAME);
|
|
109
|
+
|
|
110
|
+
exports.isConstantExpression = isConstantExpression;
|
|
111
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/helpers.ts"],"names":["RESPONSE_OBJECT_UNCHANGED","transformations","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","SPREAD_OPERATOR","CONSTANT_VALUE_PROPERTY_NAME","isInvalidJsonPath","path","json","isInvalidJsonValue","value","JSON","parse","isSimpleTransformation","transformation","isArrayIndexString","str","test","isSpreadOperator","key","isIdentityResponseTransformation","transformationPath","getArgumentIndex","s","match","groups","Number","argIndex","hasValidArgumentIndex","isRootObjectIdentifier","JSON_PATH_ROOT","isJsonPathExpression","exp","startsWith","stripJsonPathRootPrefix","jsonPath","replace","extractIndexAndPath","simpleTransformation","split","maybeIndexExpression","rest","index","nestedPath","length","join","isMapArrayItemsTransformation","transformationValue","parseMapArrayItemsTransformation","sourceArrayExpression","itemTransformation","isOmitTransformation","parseOmitTransformation","sourceExpression","fieldsToOmit","isConstantExpression"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,MACEA,yBADF,GAQIC,uBARJ,CACED,yBADF;AAAA,MAEEE,8BAFF,GAQID,uBARJ,CAEEC,8BAFF;AAAA,MAGEC,uCAHF,GAQIF,uBARJ,CAGEE,uCAHF;AAAA,MAIEC,yBAJF,GAQIH,uBARJ,CAIEG,yBAJF;AAAA,MAKEC,4BALF,GAQIJ,uBARJ,CAKEI,4BALF;AAAA,MAMEC,eANF,GAQIL,uBARJ,CAMEK,eANF;AAAA,MAOEC,4BAPF,GAQIN,uBARJ,CAOEM,4BAPF;;AAUA,MAAMC,iBAAiB,GAAIC,IAAD,IACxB,qBAAQ,qBAAQ,MAAM,4BAAS;AAAEA,EAAAA,IAAF;AAAQC,EAAAA,IAAI,EAAE;AAAd,CAAT,CAAd,CAAR,CADF;;;;AAGA,MAAMC,kBAAkB,GAAIC,KAAD,IAAW,qBAAQ,qBAAQ,MAAMC,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAd,CAAR,CAAtC;;;;AAEA,MAAMG,sBAAsB,GAAIC,cAAD,IAC7B,OAAOA,cAAP,KAA0B,QAD5B;;;;AAGA,MAAMC,kBAAkB,GAAIC,GAAD,IAAS,CAAC,CAAC,MAAMC,IAAN,CAAWD,GAAX,CAAtC;;;;AAEA,MAAME,gBAAgB,GAAIC,GAAD,IAASA,GAAG,KAAKf,eAA1C;;;;AAEA,MAAMgB,gCAAgC,GAAIC,kBAAD,IACvCA,kBAAkB,KAAKvB,yBADzB;;;;AAGA,MAAMwB,gBAAgB,GAAIC,CAAD,IAAO;AAC9B,QAAMC,KAAK,GAAGD,CAAC,CAACC,KAAF,CAAQ,wBAAR,CAAd;AAEA,SAAOA,KAAK,IAAIA,KAAK,CAACC,MAAf,IAAyBC,MAAM,CAACF,KAAK,CAACC,MAAN,CAAaE,QAAd,CAAtC;AACD,CAJD;;;;AAMA,MAAMC,qBAAqB,GAAIrB,IAAD,IAAUe,gBAAgB,CAACf,IAAD,CAAhB,KAA2B,IAAnE;;;;AAEA,MAAMsB,sBAAsB,GAAIN,CAAD,IAAOA,CAAC,KAAKO,yBAA5C;;;;AAEA,MAAMC,oBAAoB,GAAIC,GAAD,IAASA,GAAG,IAAIA,GAAG,CAACC,UAAJ,CAAeH,yBAAf,CAA7C;;;;AAEA,MAAMI,uBAAuB,GAAIC,QAAD,IAC9BA,QAAQ,CAACC,OAAT,CAAkB,GAAEN,yBAAe,GAAnC,EAAuC,EAAvC,CADF;;;;AAGA,MAAMO,mBAAmB,GAAIC,oBAAD,IAA0B;AACpD,gCAAwCA,oBAAoB,CAACC,KAArB,CAA2B,GAA3B,CAAxC;AAAA,QAAOC,oBAAP;AAAA,QAAgCC,IAAhC;;AACA,QAAMC,KAAK,GAAGpB,gBAAgB,CAACkB,oBAAD,CAA9B;AAEA,SAAO;AACLE,IAAAA,KADK;AAELC,IAAAA,UAAU,EAAED,KAAK,KAAK,IAAV,IAAkBD,IAAI,CAACG,MAAL,GAAc,CAAhC,GAAoCH,IAAI,CAACI,IAAL,CAAU,GAAV,CAApC,GAAqD;AAF5D,GAAP;AAID,CARD;;;;AAUA,MAAMC,6BAA6B,GAAIC,mBAAD,IACpC,iBAAIA,mBAAJ,EAAyB/C,8BAAzB,KACA,iBAAI+C,mBAAJ,EAAyB9C,uCAAzB,CAFF;;;;AAIA,MAAM+C,gCAAgC,GAAID,mBAAD,KAA0B;AACjEE,EAAAA,qBAAqB,EAAEF,mBAAmB,CAAC/C,8BAAD,CADuB;AAEjEkD,EAAAA,kBAAkB,EAChBH,mBAAmB,CAAC9C,uCAAD;AAH4C,CAA1B,CAAzC;;;;AAMA,MAAMkD,oBAAoB,GAAIJ,mBAAD,IAC3B,iBAAIA,mBAAJ,EAAyB7C,yBAAzB,KACA,iBAAI6C,mBAAJ,EAAyB5C,4BAAzB,CAFF;;;;AAIA,MAAMiD,uBAAuB,GAAIL,mBAAD,KAA0B;AACxDM,EAAAA,gBAAgB,EAAEN,mBAAmB,CAAC7C,yBAAD,CADmB;AAExDoD,EAAAA,YAAY,EAAEP,mBAAmB,CAAC5C,4BAAD;AAFuB,CAA1B,CAAhC;;;;AAKA,MAAMoD,oBAAoB,GAAI7C,KAAD,IAC3B,iBAAIA,KAAJ,EAAWL,4BAAX,CADF","sourcesContent":["import { JSONPath } from 'jsonpath-plus';\nimport { isError, attempt, has } from 'lodash';\nimport { transformations } from './transformations/common';\nimport { JSON_PATH_ROOT } from './transformations/constants';\n\nconst {\n RESPONSE_OBJECT_UNCHANGED,\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n SPREAD_OPERATOR,\n CONSTANT_VALUE_PROPERTY_NAME,\n} = transformations;\n\nconst isInvalidJsonPath = (path) =>\n isError(attempt(() => JSONPath({ path, json: {} })));\n\nconst isInvalidJsonValue = (value) => isError(attempt(() => JSON.parse(value)));\n\nconst isSimpleTransformation = (transformation) =>\n typeof transformation === 'string';\n\nconst isArrayIndexString = (str) => !!/\\d+/.test(str);\n\nconst isSpreadOperator = (key) => key === SPREAD_OPERATOR;\n\nconst isIdentityResponseTransformation = (transformationPath) =>\n transformationPath === RESPONSE_OBJECT_UNCHANGED;\n\nconst getArgumentIndex = (s) => {\n const match = s.match(/\\$\\[(?<argIndex>\\d+)\\]/);\n\n return match && match.groups && Number(match.groups.argIndex);\n};\n\nconst hasValidArgumentIndex = (path) => getArgumentIndex(path) !== null;\n\nconst isRootObjectIdentifier = (s) => s === JSON_PATH_ROOT;\n\nconst isJsonPathExpression = (exp) => exp && exp.startsWith(JSON_PATH_ROOT);\n\nconst stripJsonPathRootPrefix = (jsonPath) =>\n jsonPath.replace(`${JSON_PATH_ROOT}.`, '');\n\nconst extractIndexAndPath = (simpleTransformation) => {\n const [maybeIndexExpression, ...rest] = simpleTransformation.split('.');\n const index = getArgumentIndex(maybeIndexExpression);\n\n return {\n index,\n nestedPath: index !== null && rest.length > 0 ? rest.join('.') : null,\n };\n};\n\nconst isMapArrayItemsTransformation = (transformationValue) =>\n has(transformationValue, ARRAY_ITEMS_PATH_PROPERTY_NAME) &&\n has(transformationValue, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME);\n\nconst parseMapArrayItemsTransformation = (transformationValue) => ({\n sourceArrayExpression: transformationValue[ARRAY_ITEMS_PATH_PROPERTY_NAME],\n itemTransformation:\n transformationValue[ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME],\n});\n\nconst isOmitTransformation = (transformationValue) =>\n has(transformationValue, OMIT_SOURCE_PROPERTY_NAME) &&\n has(transformationValue, FIELDS_TO_OMIT_PROPERTY_NAME);\n\nconst parseOmitTransformation = (transformationValue) => ({\n sourceExpression: transformationValue[OMIT_SOURCE_PROPERTY_NAME],\n fieldsToOmit: transformationValue[FIELDS_TO_OMIT_PROPERTY_NAME],\n});\n\nconst isConstantExpression = (value) =>\n has(value, CONSTANT_VALUE_PROPERTY_NAME);\n\nexport {\n isSimpleTransformation,\n isArrayIndexString,\n isSpreadOperator,\n extractIndexAndPath,\n isIdentityResponseTransformation,\n getArgumentIndex,\n hasValidArgumentIndex,\n isRootObjectIdentifier,\n isInvalidJsonPath,\n isMapArrayItemsTransformation,\n parseMapArrayItemsTransformation,\n isOmitTransformation,\n parseOmitTransformation,\n isJsonPathExpression,\n stripJsonPathRootPrefix,\n isInvalidJsonValue,\n isConstantExpression,\n};\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.unwrap = exports.transformations = void 0;
|
|
5
|
+
|
|
6
|
+
var _constants = require("./constants");
|
|
7
|
+
|
|
8
|
+
const unwrap = ({
|
|
9
|
+
responseMessageResultPath
|
|
10
|
+
}) => `$.${responseMessageResultPath}`;
|
|
11
|
+
|
|
12
|
+
exports.unwrap = unwrap;
|
|
13
|
+
const transformations = {
|
|
14
|
+
JS_SINGLE_ARG_UNCHANGED: '$[0]',
|
|
15
|
+
RESPONSE_OBJECT_UNCHANGED: _constants.JSON_PATH_ROOT,
|
|
16
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME: '@path',
|
|
17
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME: '@itemTransformation',
|
|
18
|
+
OMIT_SOURCE_PROPERTY_NAME: '@source',
|
|
19
|
+
FIELDS_TO_OMIT_PROPERTY_NAME: '@omit',
|
|
20
|
+
SPREAD_OPERATOR: '*',
|
|
21
|
+
CONSTANT_VALUE_PROPERTY_NAME: '@constant'
|
|
22
|
+
};
|
|
23
|
+
exports.transformations = transformations;
|
|
24
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/transformations/common.ts"],"names":["unwrap","responseMessageResultPath","transformations","JS_SINGLE_ARG_UNCHANGED","RESPONSE_OBJECT_UNCHANGED","JSON_PATH_ROOT","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","SPREAD_OPERATOR","CONSTANT_VALUE_PROPERTY_NAME"],"mappings":";;;;;AAAA;;AAEA,MAAMA,MAAM,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,KACZ,KAAIA,yBAA0B,EADjC;;;AAGA,MAAMC,eAAe,GAAG;AACtBC,EAAAA,uBAAuB,EAAE,MADH;AAEtBC,EAAAA,yBAAyB,EAAEC,yBAFL;AAGtBC,EAAAA,8BAA8B,EAAE,OAHV;AAItBC,EAAAA,uCAAuC,EAAE,qBAJnB;AAKtBC,EAAAA,yBAAyB,EAAE,SALL;AAMtBC,EAAAA,4BAA4B,EAAE,OANR;AAOtBC,EAAAA,eAAe,EAAE,GAPK;AAQtBC,EAAAA,4BAA4B,EAAE;AARR,CAAxB","sourcesContent":["import { JSON_PATH_ROOT } from './constants';\n\nconst unwrap = ({ responseMessageResultPath }) =>\n `$.${responseMessageResultPath}`;\n\nconst transformations = {\n JS_SINGLE_ARG_UNCHANGED: '$[0]',\n RESPONSE_OBJECT_UNCHANGED: JSON_PATH_ROOT,\n ARRAY_ITEMS_PATH_PROPERTY_NAME: '@path',\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME: '@itemTransformation',\n OMIT_SOURCE_PROPERTY_NAME: '@source',\n FIELDS_TO_OMIT_PROPERTY_NAME: '@omit',\n SPREAD_OPERATOR: '*',\n CONSTANT_VALUE_PROPERTY_NAME: '@constant',\n};\n\nexport { transformations, unwrap };\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.visitorTypes = exports.JSON_PATH_ROOT = void 0;
|
|
5
|
+
const visitorTypes = {
|
|
6
|
+
TOP_LEVEL_SIMPLE_TRANSFORMATION: 'TopLevelSimpleTransformationExpression',
|
|
7
|
+
TOP_LEVEL_CUSTOM_FUNCTION: 'TopLevelCustomFunctionExpression',
|
|
8
|
+
NESTED_UNSUPPORTED_TRANSFORMATION: 'NestedUnsupportedTransformationExpression',
|
|
9
|
+
TOP_LEVEL_UNSUPPORTED_TRANSFORMATION: 'TopLevelUnsupportedTransformationExpression',
|
|
10
|
+
NESTED_SPREAD: 'NestedSpreadExpression',
|
|
11
|
+
TOP_LEVEL_SPREAD: 'TopLevelSpreadExpression',
|
|
12
|
+
CUSTOM_FUNCTION: 'CustomFunctionExpression',
|
|
13
|
+
NESTED_SIMPLE_TRANSFORMATION: 'NestedSimpleTransformationExpression',
|
|
14
|
+
MAP_ARRAY_ITEMS: 'MapArrayItems',
|
|
15
|
+
TOP_LEVEL_MAP_ARRAY_ITEMS: 'TopLevelMapArrayItems',
|
|
16
|
+
TOP_LEVEL_OMIT_TRANSFORMATION: 'TopLevelOmit',
|
|
17
|
+
NESTED_OMIT_TRANSFORMATION: 'NestedOmit',
|
|
18
|
+
NESTED_CONSTANT_VALUE: 'NestedConstantValue'
|
|
19
|
+
};
|
|
20
|
+
exports.visitorTypes = visitorTypes;
|
|
21
|
+
const JSON_PATH_ROOT = '$';
|
|
22
|
+
exports.JSON_PATH_ROOT = JSON_PATH_ROOT;
|
|
23
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/transformations/constants.ts"],"names":["visitorTypes","TOP_LEVEL_SIMPLE_TRANSFORMATION","TOP_LEVEL_CUSTOM_FUNCTION","NESTED_UNSUPPORTED_TRANSFORMATION","TOP_LEVEL_UNSUPPORTED_TRANSFORMATION","NESTED_SPREAD","TOP_LEVEL_SPREAD","CUSTOM_FUNCTION","NESTED_SIMPLE_TRANSFORMATION","MAP_ARRAY_ITEMS","TOP_LEVEL_MAP_ARRAY_ITEMS","TOP_LEVEL_OMIT_TRANSFORMATION","NESTED_OMIT_TRANSFORMATION","NESTED_CONSTANT_VALUE","JSON_PATH_ROOT"],"mappings":";;;;AAAA,MAAMA,YAAY,GAAG;AACnBC,EAAAA,+BAA+B,EAAE,wCADd;AAEnBC,EAAAA,yBAAyB,EAAE,kCAFR;AAGnBC,EAAAA,iCAAiC,EAC/B,2CAJiB;AAKnBC,EAAAA,oCAAoC,EAClC,6CANiB;AAOnBC,EAAAA,aAAa,EAAE,wBAPI;AAQnBC,EAAAA,gBAAgB,EAAE,0BARC;AASnBC,EAAAA,eAAe,EAAE,0BATE;AAUnBC,EAAAA,4BAA4B,EAAE,sCAVX;AAWnBC,EAAAA,eAAe,EAAE,eAXE;AAYnBC,EAAAA,yBAAyB,EAAE,uBAZR;AAanBC,EAAAA,6BAA6B,EAAE,cAbZ;AAcnBC,EAAAA,0BAA0B,EAAE,YAdT;AAenBC,EAAAA,qBAAqB,EAAE;AAfJ,CAArB;;AAkBA,MAAMC,cAAc,GAAG,GAAvB","sourcesContent":["const visitorTypes = {\n TOP_LEVEL_SIMPLE_TRANSFORMATION: 'TopLevelSimpleTransformationExpression',\n TOP_LEVEL_CUSTOM_FUNCTION: 'TopLevelCustomFunctionExpression',\n NESTED_UNSUPPORTED_TRANSFORMATION:\n 'NestedUnsupportedTransformationExpression',\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION:\n 'TopLevelUnsupportedTransformationExpression',\n NESTED_SPREAD: 'NestedSpreadExpression',\n TOP_LEVEL_SPREAD: 'TopLevelSpreadExpression',\n CUSTOM_FUNCTION: 'CustomFunctionExpression',\n NESTED_SIMPLE_TRANSFORMATION: 'NestedSimpleTransformationExpression',\n MAP_ARRAY_ITEMS: 'MapArrayItems',\n TOP_LEVEL_MAP_ARRAY_ITEMS: 'TopLevelMapArrayItems',\n TOP_LEVEL_OMIT_TRANSFORMATION: 'TopLevelOmit',\n NESTED_OMIT_TRANSFORMATION: 'NestedOmit',\n NESTED_CONSTANT_VALUE: 'NestedConstantValue',\n};\n\nconst JSON_PATH_ROOT = '$';\n\nexport { visitorTypes, JSON_PATH_ROOT };\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.runCustomFunctionCallExpression = exports.parseCustomFunctionCall = exports.isFunctionCallExpression = void 0;
|
|
5
|
+
|
|
6
|
+
var _lodash = require("lodash");
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line max-len
|
|
9
|
+
const FUNCTION_CALL_EXPRESSION_REGEX = /^#(?<functionName>[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)*)\((?<argumentExpressions>[\S ]*)\)$/;
|
|
10
|
+
|
|
11
|
+
const parseCustomFunctionCall = functionCallExpression => {
|
|
12
|
+
const match = functionCallExpression.match(FUNCTION_CALL_EXPRESSION_REGEX);
|
|
13
|
+
const argumentExpressions = (0, _lodash.get)(match, 'groups.argumentExpressions', null);
|
|
14
|
+
return {
|
|
15
|
+
functionName: (0, _lodash.get)(match, 'groups.functionName', null),
|
|
16
|
+
argumentExpressions: argumentExpressions === null ? argumentExpressions : argumentExpressions.split(',').filter(s => s).map(_lodash.trim)
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.parseCustomFunctionCall = parseCustomFunctionCall;
|
|
21
|
+
|
|
22
|
+
const isFunctionCallExpression = expression => (0, _lodash.isString)(expression) && expression.startsWith('#');
|
|
23
|
+
|
|
24
|
+
exports.isFunctionCallExpression = isFunctionCallExpression;
|
|
25
|
+
|
|
26
|
+
const runCustomFunctionCallExpression = ({
|
|
27
|
+
customFunctions,
|
|
28
|
+
functionName,
|
|
29
|
+
argumentValues = [],
|
|
30
|
+
transformationParentPath
|
|
31
|
+
}) => {
|
|
32
|
+
const customFunction = (0, _lodash.get)(customFunctions, functionName);
|
|
33
|
+
|
|
34
|
+
if (!customFunction) {
|
|
35
|
+
throw new Error(`unrecognized custom function "${functionName}"`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
return customFunction(...argumentValues);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
throw new Error(`Transforming ${transformationParentPath} failed, #${functionName} threw: "${error.message}" for arguments: ${JSON.stringify(argumentValues)}`);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.runCustomFunctionCallExpression = runCustomFunctionCallExpression;
|
|
46
|
+
//# sourceMappingURL=custom-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/transformations/custom-functions.ts"],"names":["FUNCTION_CALL_EXPRESSION_REGEX","parseCustomFunctionCall","functionCallExpression","match","argumentExpressions","functionName","split","filter","s","map","trim","isFunctionCallExpression","expression","startsWith","runCustomFunctionCallExpression","customFunctions","argumentValues","transformationParentPath","customFunction","Error","error","message","JSON","stringify"],"mappings":";;;;;AAAA;;AAEA;AACA,MAAMA,8BAA8B,GAClC,qFADF;;AAGA,MAAMC,uBAAuB,GAAIC,sBAAD,IAA4B;AAC1D,QAAMC,KAAK,GAAGD,sBAAsB,CAACC,KAAvB,CAA6BH,8BAA7B,CAAd;AAEA,QAAMI,mBAAmB,GAAG,iBAAID,KAAJ,EAAW,4BAAX,EAAyC,IAAzC,CAA5B;AAEA,SAAO;AACLE,IAAAA,YAAY,EAAE,iBAAIF,KAAJ,EAAW,qBAAX,EAAkC,IAAlC,CADT;AAELC,IAAAA,mBAAmB,EACjBA,mBAAmB,KAAK,IAAxB,GACIA,mBADJ,GAEIA,mBAAmB,CAChBE,KADH,CACS,GADT,EAEGC,MAFH,CAEWC,CAAD,IAAOA,CAFjB,EAGGC,GAHH,CAGOC,YAHP;AALD,GAAP;AAUD,CAfD;;;;AAiBA,MAAMC,wBAAwB,GAAIC,UAAD,IAC/B,sBAASA,UAAT,KAAwBA,UAAU,CAACC,UAAX,CAAsB,GAAtB,CAD1B;;;;AAGA,MAAMC,+BAA+B,GAAG,CAAC;AACvCC,EAAAA,eADuC;AAEvCV,EAAAA,YAFuC;AAGvCW,EAAAA,cAAc,GAAG,EAHsB;AAIvCC,EAAAA;AAJuC,CAAD,KAUlC;AACJ,QAAMC,cAAc,GAAG,iBAAIH,eAAJ,EAAqBV,YAArB,CAAvB;;AAEA,MAAI,CAACa,cAAL,EAAqB;AACnB,UAAM,IAAIC,KAAJ,CAAW,iCAAgCd,YAAa,GAAxD,CAAN;AACD;;AAED,MAAI;AACF,WAAOa,cAAc,CAAC,GAAGF,cAAJ,CAArB;AACD,GAFD,CAEE,OAAOI,KAAP,EAAmB;AACnB,UAAM,IAAID,KAAJ,CACH,gBAAeF,wBAAyB,aAAYZ,YAAa,YAChEe,KAAK,CAACC,OACP,oBAAmBC,IAAI,CAACC,SAAL,CAAeP,cAAf,CAA+B,EAH/C,CAAN;AAKD;AACF,CA1BD","sourcesContent":["import { isString, get, trim } from 'lodash';\n\n// eslint-disable-next-line max-len\nconst FUNCTION_CALL_EXPRESSION_REGEX =\n /^#(?<functionName>[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)*)\\((?<argumentExpressions>[\\S ]*)\\)$/;\n\nconst parseCustomFunctionCall = (functionCallExpression) => {\n const match = functionCallExpression.match(FUNCTION_CALL_EXPRESSION_REGEX);\n\n const argumentExpressions = get(match, 'groups.argumentExpressions', null);\n\n return {\n functionName: get(match, 'groups.functionName', null),\n argumentExpressions:\n argumentExpressions === null\n ? argumentExpressions\n : argumentExpressions\n .split(',')\n .filter((s) => s)\n .map(trim),\n };\n};\n\nconst isFunctionCallExpression = (expression) =>\n isString(expression) && expression.startsWith('#');\n\nconst runCustomFunctionCallExpression = ({\n customFunctions,\n functionName,\n argumentValues = [],\n transformationParentPath,\n}: {\n customFunctions: any;\n functionName: string;\n argumentValues: string[];\n transformationParentPath: string;\n}) => {\n const customFunction = get(customFunctions, functionName);\n\n if (!customFunction) {\n throw new Error(`unrecognized custom function \"${functionName}\"`);\n }\n\n try {\n return customFunction(...argumentValues);\n } catch (error: any) {\n throw new Error(\n `Transforming ${transformationParentPath} failed, #${functionName} threw: \"${\n error.message\n }\" for arguments: ${JSON.stringify(argumentValues)}`,\n );\n }\n};\n\nexport {\n parseCustomFunctionCall,\n isFunctionCallExpression,\n runCustomFunctionCallExpression,\n};\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildRequestTransformation = void 0;
|
|
5
|
+
|
|
6
|
+
var _lodash = require("lodash");
|
|
7
|
+
|
|
8
|
+
var _common = require("../common");
|
|
9
|
+
|
|
10
|
+
exports.buildResponseTransformation = _common.unwrap;
|
|
11
|
+
|
|
12
|
+
const buildRequestTransformation = ({
|
|
13
|
+
requestMessageEntityPath
|
|
14
|
+
}) => (0, _lodash.set)({}, requestMessageEntityPath, '$[0]');
|
|
15
|
+
|
|
16
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
17
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/create.ts"],"names":["buildRequestTransformation","requestMessageEntityPath"],"mappings":";;;;;AAAA;;AACA;;;;AAEA,MAAMA,0BAA0B,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,KACjC,iBAAI,EAAJ,EAAQA,wBAAR,EAAkC,MAAlC,CADF","sourcesContent":["import { set } from 'lodash';\nimport { unwrap as buildResponseTransformation } from '../common';\n\nconst buildRequestTransformation = ({ requestMessageEntityPath }) =>\n set({}, requestMessageEntityPath, '$[0]');\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildResponseTransformation = exports.buildRequestTransformation = void 0;
|
|
5
|
+
|
|
6
|
+
var _motionEdmAutogenCommon = require("@wix/motion-edm-autogen-common");
|
|
7
|
+
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
|
|
10
|
+
var _common = require("../common");
|
|
11
|
+
|
|
12
|
+
const RESPONSE_OBJECT_UNCHANGED = _common.transformations.RESPONSE_OBJECT_UNCHANGED;
|
|
13
|
+
|
|
14
|
+
const contains = (longerPath, shorterPath) => longerPath.startsWith(shorterPath) && (0, _motionEdmAutogenCommon.segmentCount)(longerPath) === (0, _motionEdmAutogenCommon.segmentCount)(shorterPath) + 1;
|
|
15
|
+
|
|
16
|
+
const buildRequestTransformation = ({
|
|
17
|
+
requestMessageIdentifierPath,
|
|
18
|
+
requestMessageOptionsPath
|
|
19
|
+
}) => {
|
|
20
|
+
const transformed = (0, _lodash.set)({}, requestMessageIdentifierPath, '$[0]');
|
|
21
|
+
|
|
22
|
+
if (requestMessageOptionsPath) {
|
|
23
|
+
if (contains(requestMessageIdentifierPath, requestMessageOptionsPath)) {
|
|
24
|
+
return (0, _lodash.merge)(transformed, {
|
|
25
|
+
[requestMessageOptionsPath]: {
|
|
26
|
+
'*': '$[1]'
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return (0, _lodash.set)(transformed, requestMessageOptionsPath, '$[1]');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return transformed;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
38
|
+
|
|
39
|
+
const buildResponseTransformation = () => RESPONSE_OBJECT_UNCHANGED;
|
|
40
|
+
|
|
41
|
+
exports.buildResponseTransformation = buildResponseTransformation;
|
|
42
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/delete.ts"],"names":["RESPONSE_OBJECT_UNCHANGED","transformations","contains","longerPath","shorterPath","startsWith","buildRequestTransformation","requestMessageIdentifierPath","requestMessageOptionsPath","transformed","buildResponseTransformation"],"mappings":";;;;;AAAA;;AACA;;AACA;;AAEA,MAAQA,yBAAR,GAAsCC,uBAAtC,CAAQD,yBAAR;;AAEA,MAAME,QAAQ,GAAG,CAACC,UAAD,EAAaC,WAAb,KACfD,UAAU,CAACE,UAAX,CAAsBD,WAAtB,KACA,0CAAaD,UAAb,MAA6B,0CAAaC,WAAb,IAA4B,CAF3D;;AAIA,MAAME,0BAA0B,GAAG,CAAC;AAClCC,EAAAA,4BADkC;AAElCC,EAAAA;AAFkC,CAAD,KAG7B;AACJ,QAAMC,WAAW,GAAG,iBAAI,EAAJ,EAAQF,4BAAR,EAAsC,MAAtC,CAApB;;AAEA,MAAIC,yBAAJ,EAA+B;AAC7B,QAAIN,QAAQ,CAACK,4BAAD,EAA+BC,yBAA/B,CAAZ,EAAuE;AACrE,aAAO,mBAAMC,WAAN,EAAmB;AACxB,SAACD,yBAAD,GAA6B;AAAE,eAAK;AAAP;AADL,OAAnB,CAAP;AAGD;;AAED,WAAO,iBAAIC,WAAJ,EAAiBD,yBAAjB,EAA4C,MAA5C,CAAP;AACD;;AAED,SAAOC,WAAP;AACD,CAjBD;;;;AAmBA,MAAMC,2BAA2B,GAAG,MAAMV,yBAA1C","sourcesContent":["import { segmentCount } from '@wix/motion-edm-autogen-common';\nimport { set, merge } from 'lodash';\nimport { transformations } from '../common';\n\nconst { RESPONSE_OBJECT_UNCHANGED } = transformations;\n\nconst contains = (longerPath, shorterPath) =>\n longerPath.startsWith(shorterPath) &&\n segmentCount(longerPath) === segmentCount(shorterPath) + 1;\n\nconst buildRequestTransformation = ({\n requestMessageIdentifierPath,\n requestMessageOptionsPath,\n}) => {\n const transformed = set({}, requestMessageIdentifierPath, '$[0]');\n\n if (requestMessageOptionsPath) {\n if (contains(requestMessageIdentifierPath, requestMessageOptionsPath)) {\n return merge(transformed, {\n [requestMessageOptionsPath]: { '*': '$[1]' },\n });\n }\n\n return set(transformed, requestMessageOptionsPath, '$[1]');\n }\n\n return transformed;\n};\n\nconst buildResponseTransformation = () => RESPONSE_OBJECT_UNCHANGED;\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildRequestTransformation = void 0;
|
|
5
|
+
|
|
6
|
+
var _lodash = require("lodash");
|
|
7
|
+
|
|
8
|
+
var _common = require("../common");
|
|
9
|
+
|
|
10
|
+
exports.buildResponseTransformation = _common.unwrap;
|
|
11
|
+
|
|
12
|
+
const buildRequestTransformation = ({
|
|
13
|
+
requestMessageIdentifierPath
|
|
14
|
+
}) => (0, _lodash.set)({}, requestMessageIdentifierPath, '$[0]');
|
|
15
|
+
|
|
16
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
17
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/get.ts"],"names":["buildRequestTransformation","requestMessageIdentifierPath"],"mappings":";;;;;AAAA;;AACA;;;;AAEA,MAAMA,0BAA0B,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,KACjC,iBAAI,EAAJ,EAAQA,4BAAR,EAAsC,MAAtC,CADF","sourcesContent":["import { set } from 'lodash';\nimport { unwrap as buildResponseTransformation } from '../common';\n\nconst buildRequestTransformation = ({ requestMessageIdentifierPath }) =>\n set({}, requestMessageIdentifierPath, '$[0]');\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildRequestTransformation = void 0;
|
|
5
|
+
|
|
6
|
+
var _common = require("../common");
|
|
7
|
+
|
|
8
|
+
exports.buildResponseTransformation = _common.unwrap;
|
|
9
|
+
|
|
10
|
+
const buildRequestTransformation = () => _common.transformations.JS_SINGLE_ARG_UNCHANGED;
|
|
11
|
+
|
|
12
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
13
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/list.ts"],"names":["buildRequestTransformation","transformations","JS_SINGLE_ARG_UNCHANGED"],"mappings":";;;;;AAAA;;;;AAKA,MAAMA,0BAA0B,GAAG,MACjCC,wBAAgBC,uBADlB","sourcesContent":["import {\n unwrap as buildResponseTransformation,\n transformations,\n} from '../common';\n\nconst buildRequestTransformation = () =>\n transformations.JS_SINGLE_ARG_UNCHANGED;\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildResponseTransformation = exports.buildRequestTransformation = exports.PAGING_METADATA_RESULT_PROPERTY_NAME = exports.ITEMS_RESULT_PROPERTY_NAME = void 0;
|
|
5
|
+
|
|
6
|
+
var _motionEdmAutogenCommon = require("@wix/motion-edm-autogen-common");
|
|
7
|
+
|
|
8
|
+
var _common = require("../common");
|
|
9
|
+
|
|
10
|
+
const ARRAY_ITEMS_PATH_PROPERTY_NAME = _common.transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
11
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = _common.transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME;
|
|
12
|
+
const DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME = _motionEdmAutogenCommon.constants.DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME;
|
|
13
|
+
const ITEMS_RESULT_PROPERTY_NAME = 'items';
|
|
14
|
+
exports.ITEMS_RESULT_PROPERTY_NAME = ITEMS_RESULT_PROPERTY_NAME;
|
|
15
|
+
const PAGING_METADATA_RESULT_PROPERTY_NAME = 'pagingMetadata';
|
|
16
|
+
exports.PAGING_METADATA_RESULT_PROPERTY_NAME = PAGING_METADATA_RESULT_PROPERTY_NAME;
|
|
17
|
+
|
|
18
|
+
const buildRequestTransformation = ({
|
|
19
|
+
requestQueryObjectPropertyName = DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME
|
|
20
|
+
} = {}) => ({
|
|
21
|
+
[requestQueryObjectPropertyName]: '$[0]',
|
|
22
|
+
'*': '$[1]'
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
26
|
+
|
|
27
|
+
const buildResponseTransformation = ({
|
|
28
|
+
responseMessageResultPath,
|
|
29
|
+
responseMessagePagingMetadataPath,
|
|
30
|
+
itemTransformation
|
|
31
|
+
}) => ({
|
|
32
|
+
[ITEMS_RESULT_PROPERTY_NAME]: itemTransformation ? {
|
|
33
|
+
[ARRAY_ITEMS_PATH_PROPERTY_NAME]: `$.${responseMessageResultPath}`,
|
|
34
|
+
[ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]: itemTransformation
|
|
35
|
+
} : `$.${responseMessageResultPath}`,
|
|
36
|
+
[PAGING_METADATA_RESULT_PROPERTY_NAME]: `$.${responseMessagePagingMetadataPath}`
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
exports.buildResponseTransformation = buildResponseTransformation;
|
|
40
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/query.ts"],"names":["ARRAY_ITEMS_PATH_PROPERTY_NAME","transformations","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME","constants","ITEMS_RESULT_PROPERTY_NAME","PAGING_METADATA_RESULT_PROPERTY_NAME","buildRequestTransformation","requestQueryObjectPropertyName","buildResponseTransformation","responseMessageResultPath","responseMessagePagingMetadataPath","itemTransformation"],"mappings":";;;;;AAAA;;AACA;;AAEA,MACEA,8BADF,GAGIC,uBAHJ,CACED,8BADF;AAAA,MAEEE,uCAFF,GAGID,uBAHJ,CAEEC,uCAFF;AAIA,MAAQC,0CAAR,GAAuDC,iCAAvD,CAAQD,0CAAR;AAEA,MAAME,0BAA0B,GAAG,OAAnC;;AACA,MAAMC,oCAAoC,GAAG,gBAA7C;;;AAEA,MAAMC,0BAA0B,GAAG,CAAC;AAClCC,EAAAA,8BAA8B,GAAGL;AADC,IAEhC,EAF+B,MAEvB;AACV,GAACK,8BAAD,GAAkC,MADxB;AAEV,OAAK;AAFK,CAFuB,CAAnC;;;;AAOA,MAAMC,2BAA2B,GAAG,CAAC;AACnCC,EAAAA,yBADmC;AAEnCC,EAAAA,iCAFmC;AAGnCC,EAAAA;AAHmC,CAAD,MAI7B;AACL,GAACP,0BAAD,GAA8BO,kBAAkB,GAC5C;AACE,KAACZ,8BAAD,GAAmC,KAAIU,yBAA0B,EADnE;AAEE,KAACR,uCAAD,GAA2CU;AAF7C,GAD4C,GAK3C,KAAIF,yBAA0B,EAN9B;AAOL,GAACJ,oCAAD,GAAyC,KAAIK,iCAAkC;AAP1E,CAJ6B,CAApC","sourcesContent":["import { constants } from '@wix/motion-edm-autogen-common';\nimport { transformations } from '../common';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n} = transformations;\nconst { DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME } = constants;\n\nconst ITEMS_RESULT_PROPERTY_NAME = 'items';\nconst PAGING_METADATA_RESULT_PROPERTY_NAME = 'pagingMetadata';\n\nconst buildRequestTransformation = ({\n requestQueryObjectPropertyName = DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME,\n} = {}) => ({\n [requestQueryObjectPropertyName]: '$[0]',\n '*': '$[1]',\n});\n\nconst buildResponseTransformation = ({\n responseMessageResultPath,\n responseMessagePagingMetadataPath,\n itemTransformation,\n}) => ({\n [ITEMS_RESULT_PROPERTY_NAME]: itemTransformation\n ? {\n [ARRAY_ITEMS_PATH_PROPERTY_NAME]: `$.${responseMessageResultPath}`,\n [ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]: itemTransformation,\n }\n : `$.${responseMessageResultPath}`,\n [PAGING_METADATA_RESULT_PROPERTY_NAME]: `$.${responseMessagePagingMetadataPath}`,\n});\n\nexport {\n buildRequestTransformation,\n buildResponseTransformation,\n ITEMS_RESULT_PROPERTY_NAME,\n PAGING_METADATA_RESULT_PROPERTY_NAME,\n};\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.buildRequestTransformation = void 0;
|
|
5
|
+
|
|
6
|
+
var _lodash = require("lodash");
|
|
7
|
+
|
|
8
|
+
var _common = require("../common");
|
|
9
|
+
|
|
10
|
+
exports.buildResponseTransformation = _common.unwrap;
|
|
11
|
+
|
|
12
|
+
const objectWithNestedPath = (path, value) => (0, _lodash.set)({}, path, value);
|
|
13
|
+
|
|
14
|
+
const buildRequestTransformation = ({
|
|
15
|
+
requestMessageEntityIdentifierField,
|
|
16
|
+
requestMessageEntityPath,
|
|
17
|
+
requestMessageOptionsPath
|
|
18
|
+
}) => {
|
|
19
|
+
const transformation = objectWithNestedPath(`${requestMessageEntityPath}.${requestMessageEntityIdentifierField}`, '$[0]');
|
|
20
|
+
|
|
21
|
+
if (requestMessageOptionsPath) {
|
|
22
|
+
if (requestMessageOptionsPath === requestMessageEntityPath) {
|
|
23
|
+
return (0, _lodash.merge)(transformation, objectWithNestedPath(requestMessageOptionsPath, {
|
|
24
|
+
'*': ['$[1]', '$[2]']
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
(0, _lodash.set)(transformation, requestMessageOptionsPath, '$[2]');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return (0, _lodash.merge)({}, transformation, objectWithNestedPath(requestMessageEntityPath, {
|
|
32
|
+
'*': '$[1]'
|
|
33
|
+
}));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.buildRequestTransformation = buildRequestTransformation;
|
|
37
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/transformations/preset/update.ts"],"names":["objectWithNestedPath","path","value","buildRequestTransformation","requestMessageEntityIdentifierField","requestMessageEntityPath","requestMessageOptionsPath","transformation"],"mappings":";;;;;AAAA;;AACA;;;;AAEA,MAAMA,oBAAoB,GAAG,CAACC,IAAD,EAAOC,KAAP,KAAiB,iBAAI,EAAJ,EAAQD,IAAR,EAAcC,KAAd,CAA9C;;AAEA,MAAMC,0BAA0B,GAAG,CAAC;AAClCC,EAAAA,mCADkC;AAElCC,EAAAA,wBAFkC;AAGlCC,EAAAA;AAHkC,CAAD,KAI7B;AACJ,QAAMC,cAAc,GAAGP,oBAAoB,CACxC,GAAEK,wBAAyB,IAAGD,mCAAoC,EAD1B,EAEzC,MAFyC,CAA3C;;AAKA,MAAIE,yBAAJ,EAA+B;AAC7B,QAAIA,yBAAyB,KAAKD,wBAAlC,EAA4D;AAC1D,aAAO,mBACLE,cADK,EAELP,oBAAoB,CAACM,yBAAD,EAA4B;AAC9C,aAAK,CAAC,MAAD,EAAS,MAAT;AADyC,OAA5B,CAFf,CAAP;AAMD;;AAED,qBAAIC,cAAJ,EAAoBD,yBAApB,EAA+C,MAA/C;AACD;;AAED,SAAO,mBACL,EADK,EAELC,cAFK,EAGLP,oBAAoB,CAACK,wBAAD,EAA2B;AAAE,SAAK;AAAP,GAA3B,CAHf,CAAP;AAKD,CA5BD","sourcesContent":["import { set, merge } from 'lodash';\nimport { unwrap as buildResponseTransformation } from '../common';\n\nconst objectWithNestedPath = (path, value) => set({}, path, value);\n\nconst buildRequestTransformation = ({\n requestMessageEntityIdentifierField,\n requestMessageEntityPath,\n requestMessageOptionsPath,\n}) => {\n const transformation = objectWithNestedPath(\n `${requestMessageEntityPath}.${requestMessageEntityIdentifierField}`,\n '$[0]',\n );\n\n if (requestMessageOptionsPath) {\n if (requestMessageOptionsPath === requestMessageEntityPath) {\n return merge(\n transformation,\n objectWithNestedPath(requestMessageOptionsPath, {\n '*': ['$[1]', '$[2]'],\n }),\n );\n }\n\n set(transformation, requestMessageOptionsPath, '$[2]');\n }\n\n return merge(\n {},\n transformation,\n objectWithNestedPath(requestMessageEntityPath, { '*': '$[1]' }),\n );\n};\n\nexport { buildRequestTransformation, buildResponseTransformation };\n"]}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.reduceTransformation = void 0;
|
|
7
|
+
|
|
8
|
+
var _deepForEach = _interopRequireDefault(require("deep-for-each"));
|
|
9
|
+
|
|
10
|
+
var _lodash = require("lodash");
|
|
11
|
+
|
|
12
|
+
var _helpers = require("../helpers");
|
|
13
|
+
|
|
14
|
+
var _common = require("./common");
|
|
15
|
+
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
|
|
18
|
+
var _customFunctions = require("./custom-functions");
|
|
19
|
+
|
|
20
|
+
const ARRAY_ITEMS_PATH_PROPERTY_NAME = _common.transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
21
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = _common.transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
22
|
+
OMIT_SOURCE_PROPERTY_NAME = _common.transformations.OMIT_SOURCE_PROPERTY_NAME,
|
|
23
|
+
FIELDS_TO_OMIT_PROPERTY_NAME = _common.transformations.FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
24
|
+
CONSTANT_VALUE_PROPERTY_NAME = _common.transformations.CONSTANT_VALUE_PROPERTY_NAME;
|
|
25
|
+
const TOP_LEVEL_SIMPLE_TRANSFORMATION = _constants.visitorTypes.TOP_LEVEL_SIMPLE_TRANSFORMATION,
|
|
26
|
+
TOP_LEVEL_CUSTOM_FUNCTION = _constants.visitorTypes.TOP_LEVEL_CUSTOM_FUNCTION,
|
|
27
|
+
TOP_LEVEL_SPREAD = _constants.visitorTypes.TOP_LEVEL_SPREAD,
|
|
28
|
+
NESTED_SPREAD = _constants.visitorTypes.NESTED_SPREAD,
|
|
29
|
+
NESTED_UNSUPPORTED_TRANSFORMATION = _constants.visitorTypes.NESTED_UNSUPPORTED_TRANSFORMATION,
|
|
30
|
+
TOP_LEVEL_UNSUPPORTED_TRANSFORMATION = _constants.visitorTypes.TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,
|
|
31
|
+
CUSTOM_FUNCTION = _constants.visitorTypes.CUSTOM_FUNCTION,
|
|
32
|
+
NESTED_SIMPLE_TRANSFORMATION = _constants.visitorTypes.NESTED_SIMPLE_TRANSFORMATION,
|
|
33
|
+
MAP_ARRAY_ITEMS = _constants.visitorTypes.MAP_ARRAY_ITEMS,
|
|
34
|
+
TOP_LEVEL_MAP_ARRAY_ITEMS = _constants.visitorTypes.TOP_LEVEL_MAP_ARRAY_ITEMS,
|
|
35
|
+
TOP_LEVEL_OMIT_TRANSFORMATION = _constants.visitorTypes.TOP_LEVEL_OMIT_TRANSFORMATION,
|
|
36
|
+
NESTED_OMIT_TRANSFORMATION = _constants.visitorTypes.NESTED_OMIT_TRANSFORMATION,
|
|
37
|
+
NESTED_CONSTANT_VALUE = _constants.visitorTypes.NESTED_CONSTANT_VALUE;
|
|
38
|
+
|
|
39
|
+
const safeResolveDefaultExport = module => {
|
|
40
|
+
const isEsModule = module && module.__esModule && module.default;
|
|
41
|
+
return isEsModule ? module.default : module;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const deepForEach = safeResolveDefaultExport(_deepForEach.default);
|
|
45
|
+
|
|
46
|
+
const withoutSpreadOperatorKeys = obj => Object.keys(obj).filter(k => !(0, _helpers.isSpreadOperator)(k));
|
|
47
|
+
|
|
48
|
+
const safeInvokeVisitor = (visitors, name, ...args) => {
|
|
49
|
+
const visitor = (0, _lodash.get)(visitors, name);
|
|
50
|
+
return visitor && visitor(...args);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const reduceComplexTransformation = (transformation, {
|
|
54
|
+
visitors,
|
|
55
|
+
accumulator
|
|
56
|
+
}) => {
|
|
57
|
+
const terminalPaths = [];
|
|
58
|
+
|
|
59
|
+
const addTerminals = (path, leaves = []) => leaves.length > 0 ? leaves.forEach(leaf => terminalPaths.push([path, leaf].join('.'))) : terminalPaths.push(path);
|
|
60
|
+
|
|
61
|
+
deepForEach(transformation, (value, key, _, path) => {
|
|
62
|
+
if ((0, _lodash.some)(terminalPaths, tp => path.startsWith(tp))) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if ((0, _helpers.isSpreadOperator)(key)) {
|
|
67
|
+
addTerminals(path);
|
|
68
|
+
const spreadOperatorParentPath = path.replace(/\.?\*/, '');
|
|
69
|
+
const values = !(0, _lodash.isArray)(value) ? [value] : value;
|
|
70
|
+
values.forEach(item => {
|
|
71
|
+
if (spreadOperatorParentPath === '') {
|
|
72
|
+
const siblingKeys = withoutSpreadOperatorKeys(transformation);
|
|
73
|
+
safeInvokeVisitor(visitors, TOP_LEVEL_SPREAD, accumulator, item, siblingKeys);
|
|
74
|
+
} else {
|
|
75
|
+
const siblingKeys = withoutSpreadOperatorKeys((0, _lodash.get)(transformation, spreadOperatorParentPath));
|
|
76
|
+
safeInvokeVisitor(visitors, NESTED_SPREAD, accumulator, spreadOperatorParentPath, item, siblingKeys);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if ((0, _helpers.isOmitTransformation)(value)) {
|
|
83
|
+
addTerminals(path, [OMIT_SOURCE_PROPERTY_NAME, FIELDS_TO_OMIT_PROPERTY_NAME]);
|
|
84
|
+
|
|
85
|
+
const _parseOmitTransformat = (0, _helpers.parseOmitTransformation)(value),
|
|
86
|
+
sourceExpression = _parseOmitTransformat.sourceExpression,
|
|
87
|
+
fieldsToOmit = _parseOmitTransformat.fieldsToOmit;
|
|
88
|
+
|
|
89
|
+
safeInvokeVisitor(visitors, NESTED_OMIT_TRANSFORMATION, accumulator, path, sourceExpression, fieldsToOmit);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if ((0, _helpers.isMapArrayItemsTransformation)(value)) {
|
|
94
|
+
addTerminals(path, [ARRAY_ITEMS_PATH_PROPERTY_NAME, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]);
|
|
95
|
+
|
|
96
|
+
const _parseMapArrayItemsTr = (0, _helpers.parseMapArrayItemsTransformation)(value),
|
|
97
|
+
sourceArrayExpression = _parseMapArrayItemsTr.sourceArrayExpression,
|
|
98
|
+
itemTransformation = _parseMapArrayItemsTr.itemTransformation;
|
|
99
|
+
|
|
100
|
+
safeInvokeVisitor(visitors, MAP_ARRAY_ITEMS, accumulator, path, sourceArrayExpression, itemTransformation);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if ((0, _customFunctions.isFunctionCallExpression)(value)) {
|
|
105
|
+
const _parseCustomFunctionC = (0, _customFunctions.parseCustomFunctionCall)(value),
|
|
106
|
+
functionName = _parseCustomFunctionC.functionName,
|
|
107
|
+
argumentExpressions = _parseCustomFunctionC.argumentExpressions;
|
|
108
|
+
|
|
109
|
+
safeInvokeVisitor(visitors, CUSTOM_FUNCTION, accumulator, path, functionName, argumentExpressions, value);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if ((0, _helpers.isConstantExpression)(value)) {
|
|
114
|
+
addTerminals(path, [CONSTANT_VALUE_PROPERTY_NAME]);
|
|
115
|
+
safeInvokeVisitor(visitors, NESTED_CONSTANT_VALUE, {
|
|
116
|
+
accumulator,
|
|
117
|
+
path,
|
|
118
|
+
value: value[CONSTANT_VALUE_PROPERTY_NAME]
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if ((0, _lodash.isString)(value)) {
|
|
124
|
+
if ((0, _helpers.isJsonPathExpression)(value)) {
|
|
125
|
+
safeInvokeVisitor(visitors, NESTED_SIMPLE_TRANSFORMATION, accumulator, path, value);
|
|
126
|
+
} else {
|
|
127
|
+
safeInvokeVisitor(visitors, NESTED_UNSUPPORTED_TRANSFORMATION, accumulator, path, value);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return accumulator;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const reduceTransformation = (transformation, {
|
|
135
|
+
visitors,
|
|
136
|
+
accumulator
|
|
137
|
+
}) => {
|
|
138
|
+
if ((0, _helpers.isSimpleTransformation)(transformation)) {
|
|
139
|
+
switch (true) {
|
|
140
|
+
case (0, _helpers.isJsonPathExpression)(transformation):
|
|
141
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_SIMPLE_TRANSFORMATION, transformation);
|
|
142
|
+
|
|
143
|
+
case (0, _customFunctions.isFunctionCallExpression)(transformation):
|
|
144
|
+
{
|
|
145
|
+
const _parseCustomFunctionC2 = (0, _customFunctions.parseCustomFunctionCall)(transformation),
|
|
146
|
+
functionName = _parseCustomFunctionC2.functionName,
|
|
147
|
+
argumentExpressions = _parseCustomFunctionC2.argumentExpressions;
|
|
148
|
+
|
|
149
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_CUSTOM_FUNCTION, functionName, argumentExpressions, transformation);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
default:
|
|
153
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_UNSUPPORTED_TRANSFORMATION, transformation);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if ((0, _helpers.isOmitTransformation)(transformation)) {
|
|
158
|
+
const _parseOmitTransformat2 = (0, _helpers.parseOmitTransformation)(transformation),
|
|
159
|
+
sourceExpression = _parseOmitTransformat2.sourceExpression,
|
|
160
|
+
fieldsToOmit = _parseOmitTransformat2.fieldsToOmit;
|
|
161
|
+
|
|
162
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_OMIT_TRANSFORMATION, sourceExpression, fieldsToOmit);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if ((0, _helpers.isMapArrayItemsTransformation)(transformation)) {
|
|
166
|
+
const _parseMapArrayItemsTr2 = (0, _helpers.parseMapArrayItemsTransformation)(transformation),
|
|
167
|
+
sourceArrayExpression = _parseMapArrayItemsTr2.sourceArrayExpression,
|
|
168
|
+
itemTransformation = _parseMapArrayItemsTr2.itemTransformation;
|
|
169
|
+
|
|
170
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_MAP_ARRAY_ITEMS, sourceArrayExpression, itemTransformation);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return reduceComplexTransformation(transformation, {
|
|
174
|
+
visitors,
|
|
175
|
+
accumulator
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
exports.reduceTransformation = reduceTransformation;
|
|
180
|
+
//# sourceMappingURL=reduceTransformation.js.map
|