@openforis/arena-core 2.3.21 → 2.3.22
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/expression/javascript/evaluator.js +17 -2
- package/dist/expression/javascript/evaluator.js.map +1 -1
- package/dist/geo/points/transform.js +11 -1
- package/dist/geo/points/transform.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/identifier.d.ts +2 -0
- package/dist/nodeDefExpressionEvaluator/node/identifier.js +65 -61
- package/dist/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
- package/dist/utils/_objects/assocPath.js +10 -22
- package/dist/utils/_objects/assocPath.js.map +1 -1
- package/dist/utils/_objects/dissocPath.js +1 -1
- package/dist/utils/_objects/dissocPath.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,6 +38,22 @@ const defaultEvaluators = {
|
|
|
38
38
|
[node_1.ExpressionNodeType.This]: this_1.ThisEvaluator,
|
|
39
39
|
[node_1.ExpressionNodeType.Unary]: unary_1.UnaryEvaluator,
|
|
40
40
|
};
|
|
41
|
+
const PARSED_EXPRESSIONS_CACHE_MAX_SIZE = 1000;
|
|
42
|
+
const parsedExpressionsCache = new Map();
|
|
43
|
+
const expressionParser = new parser_1.JavascriptExpressionParser();
|
|
44
|
+
const parseExpression = (expression) => {
|
|
45
|
+
let expressionNode = parsedExpressionsCache.get(expression);
|
|
46
|
+
if (!expressionNode) {
|
|
47
|
+
expressionNode = expressionParser.parse(expression);
|
|
48
|
+
if (parsedExpressionsCache.size >= PARSED_EXPRESSIONS_CACHE_MAX_SIZE) {
|
|
49
|
+
const oldestExpression = parsedExpressionsCache.keys().next().value;
|
|
50
|
+
if (oldestExpression !== undefined)
|
|
51
|
+
parsedExpressionsCache.delete(oldestExpression);
|
|
52
|
+
}
|
|
53
|
+
parsedExpressionsCache.set(expression, expressionNode);
|
|
54
|
+
}
|
|
55
|
+
return expressionNode;
|
|
56
|
+
};
|
|
41
57
|
class JavascriptExpressionEvaluator {
|
|
42
58
|
constructor(functions = {}, evaluators = {}) {
|
|
43
59
|
this.evaluators = Object.assign(Object.assign({}, defaultEvaluators), evaluators);
|
|
@@ -45,8 +61,7 @@ class JavascriptExpressionEvaluator {
|
|
|
45
61
|
}
|
|
46
62
|
evaluate(expression, context) {
|
|
47
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
|
|
49
|
-
return this.evaluateNode(parser.parse(expression), context !== null && context !== void 0 ? context : {});
|
|
64
|
+
return this.evaluateNode(parseExpression(expression), context !== null && context !== void 0 ? context : {});
|
|
50
65
|
});
|
|
51
66
|
}
|
|
52
67
|
evaluateNode(expressionNode, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/expression/javascript/evaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,kCAAgG;AAChG,uCAAyC;AAEzC,yDAAqD;AACrD,wCAA6C;AAC7C,0CAA+C;AAC/C,sCAA2C;AAC3C,8CAAmD;AACnD,oDAAyD;AACzD,kDAAuD;AACvD,4CAAiD;AACjD,0CAA+C;AAC/C,8CAAmD;AACnD,sCAA2C;AAC3C,wCAA6C;AAC7C,4CAA4D;AAM5D,MAAM,iBAAiB,GAAG;IACxB,CAAC,yBAAkB,CAAC,KAAK,CAAC,EAAE,sBAAc;IAC1C,CAAC,yBAAkB,CAAC,MAAM,CAAC,EAAE,wBAAe;IAC5C,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,oBAAa;IACxC,CAAC,yBAAkB,CAAC,QAAQ,CAAC,EAAE,4BAAiB;IAChD,CAAC,yBAAkB,CAAC,WAAW,CAAC,EAAE,kCAAoB;IACtD,CAAC,yBAAkB,CAAC,UAAU,CAAC,EAAE,gCAAmB;IACpD,CAAC,yBAAkB,CAAC,OAAO,CAAC,EAAE,0BAAgB;IAC9C,CAAC,yBAAkB,CAAC,MAAM,CAAC,EAAE,wBAAe;IAC5C,CAAC,yBAAkB,CAAC,QAAQ,CAAC,EAAE,4BAAiB;IAChD,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,oBAAa;IACxC,CAAC,yBAAkB,CAAC,KAAK,CAAC,EAAE,sBAAc;CAC3C,CAAA;AAED,MAAa,6BAA6B;IAIxC,YAAY,YAAoC,EAAE,EAAE,aAA4B,EAAE;QAChF,IAAI,CAAC,UAAU,mCAAQ,iBAAiB,GAAK,UAAU,CAAE,CAAA;QACzD,IAAI,CAAC,SAAS,mCAAQ,mCAAgB,GAAK,SAAS,CAAE,CAAA;IACxD,CAAC;IAEK,QAAQ,CAAC,UAAkB,EAAE,OAAW;;YAC5C,
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/expression/javascript/evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,16 @@ const srs_1 = require("../../srs");
|
|
|
9
9
|
const pointFactory_1 = require("../pointFactory");
|
|
10
10
|
const isFilled_1 = require("./isFilled");
|
|
11
11
|
const getSrs_1 = require("./getSrs");
|
|
12
|
+
const convertersCache = new Map();
|
|
13
|
+
const getConverter = (wktFrom, wktTo) => {
|
|
14
|
+
const key = `${wktFrom}\n${wktTo}`;
|
|
15
|
+
let converter = convertersCache.get(key);
|
|
16
|
+
if (!converter) {
|
|
17
|
+
converter = (0, proj4_1.default)(wktFrom, wktTo);
|
|
18
|
+
convertersCache.set(key, converter);
|
|
19
|
+
}
|
|
20
|
+
return converter;
|
|
21
|
+
};
|
|
12
22
|
const transform = (point, srsCodeTo, srsIndex = srs_1.DEFAULT_SRS_INDEX) => {
|
|
13
23
|
if (!(0, isFilled_1.isFilled)(point))
|
|
14
24
|
return null;
|
|
@@ -26,7 +36,7 @@ const transform = (point, srsCodeTo, srsIndex = srs_1.DEFAULT_SRS_INDEX) => {
|
|
|
26
36
|
}
|
|
27
37
|
try {
|
|
28
38
|
const { x, y } = point;
|
|
29
|
-
const [long, lat] = (
|
|
39
|
+
const [long, lat] = getConverter(srsFrom.wkt, srsTo.wkt).forward([Number(x), Number(y)]);
|
|
30
40
|
return pointFactory_1.PointFactory.createInstance(Object.assign(Object.assign({}, point), { srs: srsCodeTo, x: long, y: lat }));
|
|
31
41
|
}
|
|
32
42
|
catch (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/geo/points/transform.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,mCAAuD;AAEvD,kDAA8C;AAC9C,yCAAqC;AACrC,qCAAiC;
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/geo/points/transform.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEzB,mCAAuD;AAEvD,kDAA8C;AAC9C,yCAAqC;AACrC,qCAAiC;AAGjC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAA;AAE1D,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,KAAa,EAAmB,EAAE;IACvE,MAAM,GAAG,GAAG,GAAG,OAAO,KAAK,KAAK,EAAE,CAAA;IAClC,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,IAAA,eAAK,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACjC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAUM,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,SAAiB,EAAE,WAAqB,uBAAiB,EAAgB,EAAE;IACjH,IAAI,CAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEjC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAElC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAE9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEb,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QAEX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;QACtB,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAExF,OAAO,2BAAY,CAAC,cAAc,iCAAM,KAAK,KAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAG,CAAA;IACnF,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AA5BY,QAAA,SAAS,aA4BrB"}
|
|
@@ -4,7 +4,9 @@ import { NodeDefExpressionContext } from '../context';
|
|
|
4
4
|
import { IdentifierExpression } from '../../expression';
|
|
5
5
|
export declare class NodeDefIdentifierEvaluator extends IdentifierEvaluator<NodeDefExpressionContext> {
|
|
6
6
|
evaluate(expressionNode: IdentifierExpression): Promise<any>;
|
|
7
|
+
private evaluateIdentifier;
|
|
7
8
|
private addReferencedNodeDefUuid;
|
|
8
9
|
protected findIdentifierAmongReachableNodeDefs(expressionNode: IdentifierExpression): NodeDef<NodeDefType, NodeDefProps> | undefined;
|
|
9
10
|
protected getReachableNodeDefs(): NodeDef<NodeDefType, NodeDefProps>[];
|
|
11
|
+
private iterateReachableNodeDefs;
|
|
10
12
|
}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.NodeDefIdentifierEvaluator = void 0;
|
|
13
4
|
const nodeDefs_1 = require("../../survey/surveys/nodeDefs");
|
|
@@ -34,50 +25,51 @@ const findActualContextNode = (params) => {
|
|
|
34
25
|
};
|
|
35
26
|
class NodeDefIdentifierEvaluator extends identifier_1.IdentifierEvaluator {
|
|
36
27
|
evaluate(expressionNode) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const identifierAsGlobalObject = yield _super.evaluate.call(this, expressionNode);
|
|
53
|
-
return identifierAsGlobalObject;
|
|
54
|
-
}
|
|
55
|
-
catch (_e) {
|
|
56
|
-
}
|
|
57
|
-
if (itemsFilter) {
|
|
58
|
-
const prop = ((_a = objectContext === null || objectContext === void 0 ? void 0 : objectContext.props) === null || _a === void 0 ? void 0 : _a[exprName]) || ((_c = (_b = objectContext === null || objectContext === void 0 ? void 0 : objectContext.props) === null || _b === void 0 ? void 0 : _b.extra) === null || _c === void 0 ? void 0 : _c[exprName]);
|
|
59
|
-
if (!utils_1.Objects.isEmpty(prop)) {
|
|
60
|
-
return prop;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (nodeDefExpressionNativeProperties_1.NodeNativeProperties.hasNativeProperty({ nodeDefOrValue: objectContext, propName: exprName })) {
|
|
64
|
-
return nodeDefExpressionNativeProperties_1.NodeNativeProperties.evalNodeDefProperty({ nodeDefOrValue: objectContext, propName: exprName });
|
|
28
|
+
try {
|
|
29
|
+
return Promise.resolve(this.evaluateIdentifier(expressionNode));
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return Promise.reject(error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
evaluateIdentifier(expressionNode) {
|
|
36
|
+
var _a, _b, _c, _d;
|
|
37
|
+
const { context } = this;
|
|
38
|
+
const { nodeDefContext, nodeDefCurrent, selfReferenceAllowed, object: objectContext, itemsFilter } = context;
|
|
39
|
+
const { name: exprName } = expressionNode;
|
|
40
|
+
if (exprName === expression_1.ExpressionVariable.CONTEXT) {
|
|
41
|
+
if (nodeDefContext) {
|
|
42
|
+
this.addReferencedNodeDefUuid(nodeDefContext.uuid);
|
|
65
43
|
}
|
|
66
|
-
|
|
67
|
-
|
|
44
|
+
return nodeDefContext;
|
|
45
|
+
}
|
|
46
|
+
const globalOrNativeProperty = this.findGlobalOrNativeProperty(expressionNode);
|
|
47
|
+
if (globalOrNativeProperty) {
|
|
48
|
+
return globalOrNativeProperty.value;
|
|
49
|
+
}
|
|
50
|
+
if (itemsFilter) {
|
|
51
|
+
const prop = ((_a = objectContext === null || objectContext === void 0 ? void 0 : objectContext.props) === null || _a === void 0 ? void 0 : _a[exprName]) || ((_c = (_b = objectContext === null || objectContext === void 0 ? void 0 : objectContext.props) === null || _b === void 0 ? void 0 : _b.extra) === null || _c === void 0 ? void 0 : _c[exprName]);
|
|
52
|
+
if (!utils_1.Objects.isEmpty(prop)) {
|
|
53
|
+
return prop;
|
|
68
54
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
55
|
+
}
|
|
56
|
+
if (nodeDefExpressionNativeProperties_1.NodeNativeProperties.hasNativeProperty({ nodeDefOrValue: objectContext, propName: exprName })) {
|
|
57
|
+
return nodeDefExpressionNativeProperties_1.NodeNativeProperties.evalNodeDefProperty({ nodeDefOrValue: objectContext, propName: exprName });
|
|
58
|
+
}
|
|
59
|
+
if (nodeDefs_2.NodeDefs.isAttribute(objectContext) && nodeValues_1.NodeValues.isValueProp({ nodeDef: objectContext, prop: exprName })) {
|
|
60
|
+
return objectContext;
|
|
61
|
+
}
|
|
62
|
+
const referencedNodeDef = this.findIdentifierAmongReachableNodeDefs(expressionNode);
|
|
63
|
+
if (referencedNodeDef) {
|
|
64
|
+
if (!selfReferenceAllowed && referencedNodeDef.uuid === (nodeDefCurrent === null || nodeDefCurrent === void 0 ? void 0 : nodeDefCurrent.uuid)) {
|
|
65
|
+
throw new error_1.SystemError(validation_1.ValidatorErrorKeys.expressions.cannotUseCurrentNode, { name: exprName });
|
|
76
66
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
67
|
+
this.addReferencedNodeDefUuid(referencedNodeDef.uuid);
|
|
68
|
+
return referencedNodeDef;
|
|
69
|
+
}
|
|
70
|
+
throw new error_1.SystemError('expression.identifierNotFound', {
|
|
71
|
+
name: exprName,
|
|
72
|
+
contextObject: (_d = objectContext === null || objectContext === void 0 ? void 0 : objectContext.props) === null || _d === void 0 ? void 0 : _d.name,
|
|
81
73
|
});
|
|
82
74
|
}
|
|
83
75
|
addReferencedNodeDefUuid(uuid) {
|
|
@@ -87,40 +79,52 @@ class NodeDefIdentifierEvaluator extends identifier_1.IdentifierEvaluator {
|
|
|
87
79
|
}
|
|
88
80
|
findIdentifierAmongReachableNodeDefs(expressionNode) {
|
|
89
81
|
const { object: contextObject } = this.context;
|
|
90
|
-
if (contextObject)
|
|
91
|
-
|
|
92
|
-
|
|
82
|
+
if (!contextObject)
|
|
83
|
+
return undefined;
|
|
84
|
+
for (const reachableNodeDef of this.iterateReachableNodeDefs()) {
|
|
85
|
+
if (reachableNodeDef.props.name === expressionNode.name) {
|
|
86
|
+
return reachableNodeDef;
|
|
87
|
+
}
|
|
93
88
|
}
|
|
94
89
|
return undefined;
|
|
95
90
|
}
|
|
96
91
|
getReachableNodeDefs() {
|
|
92
|
+
return Array.from(this.iterateReachableNodeDefs());
|
|
93
|
+
}
|
|
94
|
+
*iterateReachableNodeDefs() {
|
|
97
95
|
const { context } = this;
|
|
98
96
|
const { survey, includeAnalysis } = context;
|
|
99
|
-
const
|
|
97
|
+
const reachableNodeDefUuids = new Set();
|
|
98
|
+
const visitedUuids = new Set();
|
|
100
99
|
const queue = new utils_1.Queue();
|
|
101
|
-
const visitedUuids = [];
|
|
102
100
|
const actualContextNode = findActualContextNode({ context });
|
|
103
101
|
if (actualContextNode) {
|
|
104
102
|
queue.enqueue(actualContextNode);
|
|
105
|
-
|
|
103
|
+
reachableNodeDefUuids.add(actualContextNode.uuid);
|
|
104
|
+
yield actualContextNode;
|
|
106
105
|
}
|
|
107
106
|
while (!queue.isEmpty()) {
|
|
108
107
|
const entityDefCurrent = queue.dequeue();
|
|
109
108
|
const entityDefCurrentChildren = (0, nodeDefs_1.getNodeDefChildren)({ survey, nodeDef: entityDefCurrent, includeAnalysis });
|
|
110
109
|
for (const childDef of entityDefCurrentChildren) {
|
|
111
|
-
|
|
110
|
+
if (!reachableNodeDefUuids.has(childDef.uuid)) {
|
|
111
|
+
reachableNodeDefUuids.add(childDef.uuid);
|
|
112
|
+
yield childDef;
|
|
113
|
+
}
|
|
112
114
|
}
|
|
113
115
|
queue.enqueueItems(entityDefCurrentChildren.filter(nodeDefs_2.NodeDefs.isSingleEntity));
|
|
114
|
-
if (!visitedUuids.
|
|
116
|
+
if (!visitedUuids.has(entityDefCurrent.uuid)) {
|
|
115
117
|
const entityDefCurrentParent = (0, nodeDefs_1.getNodeDefParent)({ survey, nodeDef: entityDefCurrent });
|
|
116
118
|
if (entityDefCurrentParent) {
|
|
117
119
|
queue.enqueue(entityDefCurrentParent);
|
|
118
120
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
+
if (!reachableNodeDefUuids.has(entityDefCurrent.uuid)) {
|
|
122
|
+
reachableNodeDefUuids.add(entityDefCurrent.uuid);
|
|
123
|
+
yield entityDefCurrent;
|
|
124
|
+
}
|
|
125
|
+
visitedUuids.add(entityDefCurrent.uuid);
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
|
-
return Object.values(reachableNodeDefsByUuid);
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
130
|
exports.NodeDefIdentifierEvaluator = NodeDefIdentifierEvaluator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../src/nodeDefExpressionEvaluator/node/identifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../src/nodeDefExpressionEvaluator/node/identifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assocPath = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
if (path.length === 0)
|
|
8
|
-
return objUpdated;
|
|
9
|
-
const [firstPathPart, ...otherPathParts] = path;
|
|
10
|
-
if (path.length === 1) {
|
|
11
|
-
objUpdated[firstPathPart] = value;
|
|
4
|
+
const _assocPath = (obj, path, pathIndex, value, sideEffect) => {
|
|
5
|
+
const objUpdated = sideEffect ? obj : Object.assign({}, obj);
|
|
6
|
+
if (pathIndex >= path.length)
|
|
12
7
|
return objUpdated;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
obj: sideEffect ? objPart : Object.assign({}, objPart),
|
|
17
|
-
path: otherPathParts,
|
|
18
|
-
value,
|
|
19
|
-
sideEffect,
|
|
20
|
-
});
|
|
21
|
-
if (sideEffect) {
|
|
22
|
-
objUpdated[firstPathPart] = objPartUpdated;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
objUpdated = Object.assign(Object.assign({}, obj), { [firstPathPart]: objPartUpdated });
|
|
26
|
-
}
|
|
8
|
+
const pathPart = path[pathIndex];
|
|
9
|
+
objUpdated[pathPart] =
|
|
10
|
+
pathIndex === path.length - 1 ? value : _assocPath((obj === null || obj === void 0 ? void 0 : obj[pathPart]) || {}, path, pathIndex + 1, value, sideEffect);
|
|
27
11
|
return objUpdated;
|
|
28
12
|
};
|
|
13
|
+
const assocPath = (params) => {
|
|
14
|
+
const { obj, path, value, sideEffect = false } = params;
|
|
15
|
+
return _assocPath(obj, path, 0, value, sideEffect);
|
|
16
|
+
};
|
|
29
17
|
exports.assocPath = assocPath;
|
|
30
18
|
//# sourceMappingURL=assocPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assocPath.js","sourceRoot":"","sources":["../../../src/utils/_objects/assocPath.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"assocPath.js","sourceRoot":"","sources":["../../../src/utils/_objects/assocPath.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,SAAiB,EAAE,KAAU,EAAE,UAAmB,EAAO,EAAE;IAEvG,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAM,GAAG,CAAE,CAAA;IAChD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,CAAA;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAChC,UAAU,CAAC,QAAQ,CAAC;QAClB,SAAS,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,QAAQ,CAAC,KAAI,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IACnH,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,MAAsE,EAAO,EAAE;IACvG,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IACvD,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;AACpD,CAAC,CAAA;AAHY,QAAA,SAAS,aAGrB"}
|
|
@@ -15,7 +15,7 @@ const dissocPath = (params) => {
|
|
|
15
15
|
delete objUpdated[firstPathPart];
|
|
16
16
|
return objUpdated;
|
|
17
17
|
}
|
|
18
|
-
const objPartUpdated = (0, exports.dissocPath)({ obj:
|
|
18
|
+
const objPartUpdated = (0, exports.dissocPath)({ obj: objPart, path: otherPathParts, sideEffect });
|
|
19
19
|
if ((0, isEmpty_1.isEmpty)(objPartUpdated)) {
|
|
20
20
|
delete objUpdated[firstPathPart];
|
|
21
21
|
return objUpdated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dissocPath.js","sourceRoot":"","sources":["../../../src/utils/_objects/dissocPath.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAE5B,MAAM,UAAU,GAAG,CAAmB,MAAwD,EAAK,EAAE;IAC1G,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAM,GAAG,CAAE,CAAA;IAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,GAAG,cAAc,CAAC,GAAG,IAAI,CAAA;IACrD,MAAM,aAAa,GAAG,mBAA8C,CAAA;IAEpE,MAAM,OAAO,GAAQ,UAAU,CAAC,aAAa,CAAC,CAAA;IAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;QAChC,OAAO,UAAU,CAAA;IACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"dissocPath.js","sourceRoot":"","sources":["../../../src/utils/_objects/dissocPath.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAE5B,MAAM,UAAU,GAAG,CAAmB,MAAwD,EAAK,EAAE;IAC1G,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAM,GAAG,CAAE,CAAA;IAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,mBAAmB,EAAE,GAAG,cAAc,CAAC,GAAG,IAAI,CAAA;IACrD,MAAM,aAAa,GAAG,mBAA8C,CAAA;IAEpE,MAAM,OAAO,GAAQ,UAAU,CAAC,aAAa,CAAC,CAAA;IAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;QAChC,OAAO,UAAU,CAAA;IACnB,CAAC;IAGD,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAA;IAErF,IAAI,IAAA,iBAAO,EAAC,cAAc,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;QAChC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,UAAU,CAAC,aAAa,CAAC,GAAG,cAAc,CAAA;IAC1C,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AA5BY,QAAA,UAAU,cA4BtB"}
|