@steedos/objectql 3.0.13-beta.3 → 3.0.13-beta.32
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/lib/actions/field_updates.js +84 -153
- package/lib/actions/field_updates.js.map +1 -1
- package/lib/actions/index.js +1 -1
- package/lib/actions/workflow_notifications.js +50 -111
- package/lib/actions/workflow_notifications.js.map +1 -1
- package/lib/actions/workflow_outbound_messages.js +43 -94
- package/lib/actions/workflow_outbound_messages.js.map +1 -1
- package/lib/actions/workflow_rule.js +80 -177
- package/lib/actions/workflow_rule.js.map +1 -1
- package/lib/broker.js +19 -49
- package/lib/broker.js.map +1 -1
- package/lib/driver/field-encrytion/index.js +1 -1
- package/lib/driver/field-encrytion/mongosharedconst.js +17 -17
- package/lib/driver/field-encrytion/mongosharedconst.js.map +1 -1
- package/lib/driver/format.js +3 -3
- package/lib/driver/format.js.map +1 -1
- package/lib/driver/index.js +1 -1
- package/lib/driver/metadata.js +283 -387
- package/lib/driver/metadata.js.map +1 -1
- package/lib/driver/metadataOld.js +104 -105
- package/lib/driver/metadataOld.js.map +1 -1
- package/lib/driver/meteorMongo.js +5 -8
- package/lib/driver/meteorMongo.js.map +1 -1
- package/lib/driver/mongo.js +321 -506
- package/lib/driver/mongo.js.map +1 -1
- package/lib/driver/mysql.js +16 -20
- package/lib/driver/mysql.js.map +1 -1
- package/lib/driver/oracle.js +25 -38
- package/lib/driver/oracle.js.map +1 -1
- package/lib/driver/postgres.js +16 -20
- package/lib/driver/postgres.js.map +1 -1
- package/lib/driver/sqlite3.js +15 -19
- package/lib/driver/sqlite3.js.map +1 -1
- package/lib/driver/sqlserver.js +20 -33
- package/lib/driver/sqlserver.js.map +1 -1
- package/lib/errors/index.js +10 -11
- package/lib/errors/index.js.map +1 -1
- package/lib/formula/core.js +307 -594
- package/lib/formula/core.js.map +1 -1
- package/lib/formula/field_formula.js +80 -126
- package/lib/formula/field_formula.js.map +1 -1
- package/lib/formula/index.js +56 -97
- package/lib/formula/index.js.map +1 -1
- package/lib/formula/params.js +11 -11
- package/lib/formula/params.js.map +1 -1
- package/lib/formula/recompute.js +41 -166
- package/lib/formula/recompute.js.map +1 -1
- package/lib/formula/simple_params.js +12 -12
- package/lib/formula/simple_params.js.map +1 -1
- package/lib/formula/util.js +43 -67
- package/lib/formula/util.js.map +1 -1
- package/lib/functions/function.js +62 -87
- package/lib/functions/function.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/services/datasourceServiceFactory.js +77 -111
- package/lib/services/datasourceServiceFactory.js.map +1 -1
- package/lib/services/index.js +3 -3
- package/lib/services/index.js.map +1 -1
- package/lib/summary/core.js +162 -355
- package/lib/summary/core.js.map +1 -1
- package/lib/summary/field_summary.js +44 -71
- package/lib/summary/field_summary.js.map +1 -1
- package/lib/summary/index.js +65 -80
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/recompute.js +19 -47
- package/lib/summary/recompute.js.map +1 -1
- package/lib/triggers/trigger.js +101 -142
- package/lib/triggers/trigger.js.map +1 -1
- package/lib/ts-types/index.js +1 -1
- package/lib/typeorm/driver.js +250 -450
- package/lib/typeorm/driver.js.map +1 -1
- package/lib/typeorm/index.js +1 -1
- package/lib/typeorm/util.js +28 -28
- package/lib/typeorm/util.js.map +1 -1
- package/lib/types/action.js +24 -33
- package/lib/types/action.js.map +1 -1
- package/lib/types/app.js +210 -355
- package/lib/types/app.js.map +1 -1
- package/lib/types/connection.js +42 -78
- package/lib/types/connection.js.map +1 -1
- package/lib/types/dashboard.js +56 -77
- package/lib/types/dashboard.js.map +1 -1
- package/lib/types/datasource.js +359 -705
- package/lib/types/datasource.js.map +1 -1
- package/lib/types/defaultValue.js +53 -65
- package/lib/types/defaultValue.js.map +1 -1
- package/lib/types/field.js +165 -137
- package/lib/types/field.js.map +1 -1
- package/lib/types/field_permission.js +35 -66
- package/lib/types/field_permission.js.map +1 -1
- package/lib/types/index.js +1 -1
- package/lib/types/list_view.js +36 -43
- package/lib/types/list_view.js.map +1 -1
- package/lib/types/metadata.js +6 -6
- package/lib/types/metadata.js.map +1 -1
- package/lib/types/method_base.js +95 -128
- package/lib/types/method_base.js.map +1 -1
- package/lib/types/object.js +2005 -3015
- package/lib/types/object.js.map +1 -1
- package/lib/types/object_events.js +24 -37
- package/lib/types/object_events.js.map +1 -1
- package/lib/types/object_layouts.js +15 -38
- package/lib/types/object_layouts.js.map +1 -1
- package/lib/types/object_permission.js +99 -85
- package/lib/types/object_permission.js.map +1 -1
- package/lib/types/report.js +70 -98
- package/lib/types/report.js.map +1 -1
- package/lib/types/restrictionRule.js +47 -96
- package/lib/types/restrictionRule.js.map +1 -1
- package/lib/types/schema.js +115 -177
- package/lib/types/schema.js.map +1 -1
- package/lib/types/shareRule.js +53 -102
- package/lib/types/shareRule.js.map +1 -1
- package/lib/types/trigger.js +43 -56
- package/lib/types/trigger.js.map +1 -1
- package/lib/types/validation_rules.js +18 -56
- package/lib/types/validation_rules.js.map +1 -1
- package/lib/util/convert.js +24 -24
- package/lib/util/convert.js.map +1 -1
- package/lib/util/field.js +16 -28
- package/lib/util/field.js.map +1 -1
- package/lib/util/function_expression.js +7 -8
- package/lib/util/function_expression.js.map +1 -1
- package/lib/util/index.js +79 -97
- package/lib/util/index.js.map +1 -1
- package/lib/util/locale.js +4 -4
- package/lib/util/locale.js.map +1 -1
- package/lib/util/permission_shares.js +7 -7
- package/lib/util/permission_shares.js.map +1 -1
- package/lib/util/suffix.js +19 -19
- package/lib/util/suffix.js.map +1 -1
- package/lib/util/transform.js +1 -1
- package/lib/validators/index.js +10 -10
- package/lib/validators/index.js.map +1 -1
- package/package.json +12 -12
package/lib/formula/recompute.js
CHANGED
|
@@ -1,175 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.recomputeFieldFormulaValues = exports.recomputeFormulaValues = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
docs = _b.sent();
|
|
22
|
-
_b.label = 2;
|
|
23
|
-
case 2:
|
|
24
|
-
_b.trys.push([2, 9, 10, 11]);
|
|
25
|
-
docs_1 = tslib_1.__values(docs), docs_1_1 = docs_1.next();
|
|
26
|
-
_b.label = 3;
|
|
27
|
-
case 3:
|
|
28
|
-
if (!!docs_1_1.done) return [3, 8];
|
|
29
|
-
doc = docs_1_1.value;
|
|
30
|
-
return [4, (0, core_1.computeFieldFormulaValue)(doc, fieldFormulaConfig, userSession)];
|
|
31
|
-
case 4:
|
|
32
|
-
value = _b.sent();
|
|
33
|
-
setDoc = {};
|
|
34
|
-
setDoc[fieldName] = value;
|
|
35
|
-
return [4, (0, index_1.getSteedosSchema)().getObject(objectName).directUpdate(doc._id, setDoc)];
|
|
36
|
-
case 5:
|
|
37
|
-
_b.sent();
|
|
38
|
-
return [4, runQuotedFieldFormulas(doc._id, fieldFormulaConfig, userSession)];
|
|
39
|
-
case 6:
|
|
40
|
-
_b.sent();
|
|
41
|
-
_b.label = 7;
|
|
42
|
-
case 7:
|
|
43
|
-
docs_1_1 = docs_1.next();
|
|
44
|
-
return [3, 3];
|
|
45
|
-
case 8: return [3, 11];
|
|
46
|
-
case 9:
|
|
47
|
-
e_1_1 = _b.sent();
|
|
48
|
-
e_1 = { error: e_1_1 };
|
|
49
|
-
return [3, 11];
|
|
50
|
-
case 10:
|
|
51
|
-
try {
|
|
52
|
-
if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);
|
|
53
|
-
}
|
|
54
|
-
finally { if (e_1) throw e_1.error; }
|
|
55
|
-
return [7];
|
|
56
|
-
case 11: return [4, runQuotedFieldSummaries(fieldFormulaConfig, userSession)];
|
|
57
|
-
case 12:
|
|
58
|
-
_b.sent();
|
|
59
|
-
return [2];
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
});
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
const util_1 = require("./util");
|
|
6
|
+
const field_formula_1 = require("./field_formula");
|
|
7
|
+
const core_1 = require("./core");
|
|
8
|
+
const summary_1 = require("../summary");
|
|
9
|
+
const runCurrentFieldFormulas = async function (fieldFormulaConfig, userSession) {
|
|
10
|
+
const { field_name: fieldName, object_name: objectName } = fieldFormulaConfig;
|
|
11
|
+
const formulaVarFields = (0, core_1.pickFieldFormulaVarFields)(fieldFormulaConfig);
|
|
12
|
+
const docs = await (0, index_1.getSteedosSchema)().getObject(objectName).find({ filters: [], fields: formulaVarFields });
|
|
13
|
+
for (const doc of docs) {
|
|
14
|
+
const value = await (0, core_1.computeFieldFormulaValue)(doc, fieldFormulaConfig, userSession);
|
|
15
|
+
let setDoc = {};
|
|
16
|
+
setDoc[fieldName] = value;
|
|
17
|
+
await (0, index_1.getSteedosSchema)().getObject(objectName).directUpdate(doc._id, setDoc);
|
|
18
|
+
await runQuotedFieldFormulas(doc._id, fieldFormulaConfig, userSession);
|
|
19
|
+
}
|
|
20
|
+
await runQuotedFieldSummaries(fieldFormulaConfig, userSession);
|
|
63
21
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
switch (_d.label) {
|
|
70
|
-
case 0: return [4, (0, field_formula_1.getQuotedByFieldFormulaConfigs)(fieldFormulaConfig)];
|
|
71
|
-
case 1:
|
|
72
|
-
formulaQuotedBys = _d.sent();
|
|
73
|
-
_d.label = 2;
|
|
74
|
-
case 2:
|
|
75
|
-
_d.trys.push([2, 7, 8, 9]);
|
|
76
|
-
_a = tslib_1.__values(formulaQuotedBys.allConfigs), _b = _a.next();
|
|
77
|
-
_d.label = 3;
|
|
78
|
-
case 3:
|
|
79
|
-
if (!!_b.done) return [3, 6];
|
|
80
|
-
config = _b.value;
|
|
81
|
-
return [4, (0, core_1.updateQuotedByObjectFieldFormulaValue)(fieldFormulaConfig.object_name, recordId, config, userSession)];
|
|
82
|
-
case 4:
|
|
83
|
-
_d.sent();
|
|
84
|
-
_d.label = 5;
|
|
85
|
-
case 5:
|
|
86
|
-
_b = _a.next();
|
|
87
|
-
return [3, 3];
|
|
88
|
-
case 6: return [3, 9];
|
|
89
|
-
case 7:
|
|
90
|
-
e_2_1 = _d.sent();
|
|
91
|
-
e_2 = { error: e_2_1 };
|
|
92
|
-
return [3, 9];
|
|
93
|
-
case 8:
|
|
94
|
-
try {
|
|
95
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
96
|
-
}
|
|
97
|
-
finally { if (e_2) throw e_2.error; }
|
|
98
|
-
return [7];
|
|
99
|
-
case 9: return [2];
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
22
|
+
const runQuotedFieldFormulas = async function (recordId, fieldFormulaConfig, userSession) {
|
|
23
|
+
const formulaQuotedBys = await (0, field_formula_1.getQuotedByFieldFormulaConfigs)(fieldFormulaConfig);
|
|
24
|
+
for (const config of formulaQuotedBys.allConfigs) {
|
|
25
|
+
await (0, core_1.updateQuotedByObjectFieldFormulaValue)(fieldFormulaConfig.object_name, recordId, config, userSession);
|
|
26
|
+
}
|
|
103
27
|
};
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
summaryQuotedBys_1 = tslib_1.__values(summaryQuotedBys), summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
|
|
117
|
-
_b.label = 3;
|
|
118
|
-
case 3:
|
|
119
|
-
if (!!summaryQuotedBys_1_1.done) return [3, 6];
|
|
120
|
-
config = summaryQuotedBys_1_1.value;
|
|
121
|
-
return [4, (0, summary_1.recomputeFieldSummaryValues)(config, userSession)];
|
|
122
|
-
case 4:
|
|
123
|
-
_b.sent();
|
|
124
|
-
_b.label = 5;
|
|
125
|
-
case 5:
|
|
126
|
-
summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
|
|
127
|
-
return [3, 3];
|
|
128
|
-
case 6: return [3, 9];
|
|
129
|
-
case 7:
|
|
130
|
-
e_3_1 = _b.sent();
|
|
131
|
-
e_3 = { error: e_3_1 };
|
|
132
|
-
return [3, 9];
|
|
133
|
-
case 8:
|
|
134
|
-
try {
|
|
135
|
-
if (summaryQuotedBys_1_1 && !summaryQuotedBys_1_1.done && (_a = summaryQuotedBys_1.return)) _a.call(summaryQuotedBys_1);
|
|
136
|
-
}
|
|
137
|
-
finally { if (e_3) throw e_3.error; }
|
|
138
|
-
return [7];
|
|
139
|
-
case 9: return [2];
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
28
|
+
const runQuotedFieldSummaries = async function (fieldFormulaConfig, userSession) {
|
|
29
|
+
const summaryQuotedBys = await (0, summary_1.getQuotedByFieldSummaryConfigs)(fieldFormulaConfig);
|
|
30
|
+
for (const config of summaryQuotedBys) {
|
|
31
|
+
await (0, summary_1.recomputeFieldSummaryValues)(config, userSession);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const recomputeFormulaValues = async (fieldId, userSession) => {
|
|
35
|
+
let config = await (0, field_formula_1.getFieldFormulaConfig)(fieldId);
|
|
36
|
+
if (!config) {
|
|
37
|
+
throw new Error(`recomputeFormulaValues:${fieldId} not found in field_formula configs.`);
|
|
38
|
+
}
|
|
39
|
+
return await (0, exports.recomputeFieldFormulaValues)(config, userSession);
|
|
143
40
|
};
|
|
144
|
-
var recomputeFormulaValues = function (fieldId, userSession) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
145
|
-
var config;
|
|
146
|
-
return tslib_1.__generator(this, function (_a) {
|
|
147
|
-
switch (_a.label) {
|
|
148
|
-
case 0: return [4, (0, field_formula_1.getFieldFormulaConfig)(fieldId)];
|
|
149
|
-
case 1:
|
|
150
|
-
config = _a.sent();
|
|
151
|
-
if (!config) {
|
|
152
|
-
throw new Error("recomputeFormulaValues:".concat(fieldId, " not found in field_formula configs."));
|
|
153
|
-
}
|
|
154
|
-
return [4, (0, exports.recomputeFieldFormulaValues)(config, userSession)];
|
|
155
|
-
case 2: return [2, _a.sent()];
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}); };
|
|
159
41
|
exports.recomputeFormulaValues = recomputeFormulaValues;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return [4, runCurrentFieldFormulas(fieldFormulaConfig, userSession)];
|
|
168
|
-
case 1:
|
|
169
|
-
_a.sent();
|
|
170
|
-
return [2, true];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}); };
|
|
42
|
+
const recomputeFieldFormulaValues = async (fieldFormulaConfig, userSession) => {
|
|
43
|
+
if (!userSession) {
|
|
44
|
+
(0, util_1.checkUserSessionNotRequiredForFieldFormulas)(fieldFormulaConfig);
|
|
45
|
+
}
|
|
46
|
+
await runCurrentFieldFormulas(fieldFormulaConfig, userSession);
|
|
47
|
+
return true;
|
|
48
|
+
};
|
|
174
49
|
exports.recomputeFieldFormulaValues = recomputeFieldFormulaValues;
|
|
175
50
|
//# sourceMappingURL=recompute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":";;;AAAA,oCAA4C;AAE5C,iCAAqE;AACrE,mDAAwF;AACxF,iCAAoH;AACpH,wCAAyF;AAEzF,MAAM,uBAAuB,GAAG,KAAK,WAAW,kBAAiD,EAAE,WAAgB;IAC/G,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC;IAC9E,MAAM,gBAAgB,GAAG,IAAA,gCAAyB,EAAC,kBAAkB,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAgB,GAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAC3G,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAwB,EAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACnF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC1B,MAAM,IAAA,wBAAgB,GAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,KAAK,WAAW,QAAgB,EAAE,kBAAiD,EAAE,WAAgB;IAChI,MAAM,gBAAgB,GAAG,MAAM,IAAA,8CAA8B,EAAC,kBAAkB,CAAC,CAAC;IAClF,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,IAAA,4CAAqC,EAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/G,CAAC;AACL,CAAC,CAAA;AAOD,MAAM,uBAAuB,GAAG,KAAK,WAAW,kBAAiD,EAAE,WAAgB;IAC/G,MAAM,gBAAgB,GAAG,MAAM,IAAA,wCAA8B,EAAC,kBAAkB,CAAC,CAAC;IAClF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAA,qCAA2B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC,CAAA;AAMM,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,WAAgB,EAAE,EAAE;IAC9E,IAAI,MAAM,GAAG,MAAM,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,sCAAsC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,MAAM,IAAA,mCAA2B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC,CAAA;AANY,QAAA,sBAAsB,0BAMlC;AAMM,MAAM,2BAA2B,GAAG,KAAK,EAAE,kBAAiD,EAAE,WAAgB,EAAE,EAAE;IACrH,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,IAAA,kDAA2C,EAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AANY,QAAA,2BAA2B,+BAMvC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSimpleParamSubstitution = getSimpleParamSubstitution;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const type_1 = require("./type");
|
|
5
|
+
const VALUE_TYPES_NOT_SUPPORTED = ["function"];
|
|
6
6
|
function getSubstitutionDataType(value) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const valueType = typeof value;
|
|
8
|
+
let dateType;
|
|
9
9
|
if (VALUE_TYPES_NOT_SUPPORTED.indexOf(dateType) > -1) {
|
|
10
|
-
throw new Error(
|
|
10
|
+
throw new Error(`runFormula:Catch an error the param type "${valueType}" is not supported while eval formula with the params value: "${value}"`);
|
|
11
11
|
}
|
|
12
12
|
switch (valueType) {
|
|
13
13
|
case 'string':
|
|
@@ -27,7 +27,7 @@ function getSubstitutionDataType(value) {
|
|
|
27
27
|
dateType = "datetime";
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
throw new Error(
|
|
30
|
+
throw new Error(`runFormula:Catch an error the param type "${valueType}" is not supported while eval formula with the params value: "${value}"`);
|
|
31
31
|
}
|
|
32
32
|
break;
|
|
33
33
|
case 'undefined':
|
|
@@ -41,14 +41,14 @@ function getSubstitutionDataType(value) {
|
|
|
41
41
|
function getSubstitutionOptions(dataType, value) {
|
|
42
42
|
switch (dataType) {
|
|
43
43
|
case "number":
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
let scale = 0;
|
|
45
|
+
let str = value.toString();
|
|
46
|
+
let dotStr = str.toString().split(".")[1];
|
|
47
|
+
let dotCount = dotStr && dotStr.length;
|
|
48
48
|
if (dotCount > 0) {
|
|
49
49
|
scale = dotCount;
|
|
50
50
|
}
|
|
51
|
-
return { scale
|
|
51
|
+
return { scale };
|
|
52
52
|
case "text":
|
|
53
53
|
return { length: Number.MAX_VALUE };
|
|
54
54
|
default:
|
|
@@ -78,7 +78,7 @@ function getSubstitutionValue(dataType, value, blankValue) {
|
|
|
78
78
|
return value;
|
|
79
79
|
}
|
|
80
80
|
function getSimpleParamSubstitution(value, blankValue) {
|
|
81
|
-
|
|
81
|
+
let fieldSubstitution = {
|
|
82
82
|
type: 'literal',
|
|
83
83
|
value: value
|
|
84
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":";;AAkFA,gEASC;AA3FD
|
|
1
|
+
{"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":"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"}
|
package/lib/formula/util.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFormulaVarPathsAggregateLookups = exports.isUserSessionRequiredForFormulaVars = exports.checkUserSessionNotRequiredForFieldFormulas = exports.sortFieldFormulaConfigs = exports.addToFieldFormulaConfigs = exports.isFieldFormulaConfigQuotedTwoWay = exports.isFieldFormulaConfigQuotedTwoWays = exports.isFieldFormulaConfigQuotingObjectAndFields = exports.isFieldFormulaConfigQuoted = exports.getQuotedFieldFormulaConfigs = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var quotes = config.quotes;
|
|
4
|
+
const _ = require("lodash");
|
|
5
|
+
const getQuotedFieldFormulaConfigs = (config, sourceConfigs) => {
|
|
6
|
+
const { quotes } = config;
|
|
8
7
|
if (quotes && quotes.length) {
|
|
9
|
-
return sourceConfigs.filter(
|
|
10
|
-
return !!quotes.find(
|
|
8
|
+
return sourceConfigs.filter((sourceConfig) => {
|
|
9
|
+
return !!quotes.find((quote) => {
|
|
11
10
|
return quote.object_name === sourceConfig.object_name && quote.field_name === sourceConfig.field_name;
|
|
12
11
|
});
|
|
13
12
|
});
|
|
@@ -17,18 +16,18 @@ var getQuotedFieldFormulaConfigs = function (config, sourceConfigs) {
|
|
|
17
16
|
}
|
|
18
17
|
};
|
|
19
18
|
exports.getQuotedFieldFormulaConfigs = getQuotedFieldFormulaConfigs;
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const isFieldFormulaConfigQuoted = (configA, configB) => {
|
|
20
|
+
let configAQuoteds = (0, exports.getQuotedFieldFormulaConfigs)(configA, [configB]);
|
|
22
21
|
return !!configAQuoteds.length;
|
|
23
22
|
};
|
|
24
23
|
exports.isFieldFormulaConfigQuoted = isFieldFormulaConfigQuoted;
|
|
25
24
|
function includesAny(mainString, stringArray) {
|
|
26
|
-
return _.some(stringArray,
|
|
25
|
+
return _.some(stringArray, (substr) => mainString.includes(substr));
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const isFieldFormulaConfigQuotingObjectAndFields = (config, objectName, fieldNames) => {
|
|
28
|
+
const { quotes } = config;
|
|
30
29
|
if (quotes && quotes.length) {
|
|
31
|
-
return !!quotes.find(
|
|
30
|
+
return !!quotes.find((quote) => {
|
|
32
31
|
if (fieldNames && fieldNames.length) {
|
|
33
32
|
return quote.object_name === objectName && fieldNames.indexOf(quote.field_name) > -1;
|
|
34
33
|
}
|
|
@@ -45,38 +44,27 @@ var isFieldFormulaConfigQuotingObjectAndFields = function (config, objectName, f
|
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
46
|
exports.isFieldFormulaConfigQuotingObjectAndFields = isFieldFormulaConfigQuotingObjectAndFields;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var quotedConfigs = (0, exports.getQuotedFieldFormulaConfigs)(config, sourceConfigs);
|
|
47
|
+
const isFieldFormulaConfigQuotedTwoWays = (config, sourceConfigs) => {
|
|
48
|
+
let quotedConfigs = (0, exports.getQuotedFieldFormulaConfigs)(config, sourceConfigs);
|
|
51
49
|
if (!quotedConfigs.length) {
|
|
52
50
|
return false;
|
|
53
51
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
throw new Error("isFieldFormulaConfigQuotedTwoWays:The field formula config '".concat(config._id, "' and '").concat(quotedConfig._id, "' is quoted each other."));
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
65
|
-
finally {
|
|
66
|
-
try {
|
|
67
|
-
if (quotedConfigs_1_1 && !quotedConfigs_1_1.done && (_a = quotedConfigs_1.return)) _a.call(quotedConfigs_1);
|
|
52
|
+
for (let quotedConfig of quotedConfigs) {
|
|
53
|
+
let isQuotedConfigQuoted = (0, exports.isFieldFormulaConfigQuoted)(quotedConfig, config);
|
|
54
|
+
if (isQuotedConfigQuoted) {
|
|
55
|
+
throw new Error(`isFieldFormulaConfigQuotedTwoWays:The field formula config '${config._id}' and '${quotedConfig._id}' is quoted each other.`);
|
|
56
|
+
return true;
|
|
68
57
|
}
|
|
69
|
-
finally { if (e_1) throw e_1.error; }
|
|
70
58
|
}
|
|
71
59
|
return false;
|
|
72
60
|
};
|
|
73
61
|
exports.isFieldFormulaConfigQuotedTwoWays = isFieldFormulaConfigQuotedTwoWays;
|
|
74
|
-
|
|
62
|
+
const isFieldFormulaConfigQuotedTwoWay = (configA, configB) => {
|
|
75
63
|
return (0, exports.isFieldFormulaConfigQuotedTwoWays)(configA, [configB]);
|
|
76
64
|
};
|
|
77
65
|
exports.isFieldFormulaConfigQuotedTwoWay = isFieldFormulaConfigQuotedTwoWay;
|
|
78
|
-
|
|
79
|
-
|
|
66
|
+
const addToFieldFormulaConfigs = (config, configs) => {
|
|
67
|
+
let existedConfig = configs.find((item) => {
|
|
80
68
|
return item._id === config._id;
|
|
81
69
|
});
|
|
82
70
|
if (!existedConfig) {
|
|
@@ -84,82 +72,70 @@ var addToFieldFormulaConfigs = function (config, configs) {
|
|
|
84
72
|
}
|
|
85
73
|
};
|
|
86
74
|
exports.addToFieldFormulaConfigs = addToFieldFormulaConfigs;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
quotedConfigs.forEach(
|
|
75
|
+
const addSortedFieldFormulaConfig = (config, sourceConfigs, sortedConfigs) => {
|
|
76
|
+
const quotedConfigs = (0, exports.getQuotedFieldFormulaConfigs)(config, sourceConfigs);
|
|
77
|
+
quotedConfigs.forEach((quotedConfig) => {
|
|
90
78
|
addSortedFieldFormulaConfig(quotedConfig, sourceConfigs, sortedConfigs);
|
|
91
79
|
});
|
|
92
80
|
(0, exports.addToFieldFormulaConfigs)(config, sortedConfigs);
|
|
93
81
|
};
|
|
94
|
-
|
|
82
|
+
const sortFieldFormulaConfigs = (configs) => {
|
|
95
83
|
if (configs.length <= 1) {
|
|
96
84
|
return configs;
|
|
97
85
|
}
|
|
98
|
-
|
|
99
|
-
configs.forEach(
|
|
86
|
+
let sortedConfigs = [];
|
|
87
|
+
configs.forEach((config) => {
|
|
100
88
|
addSortedFieldFormulaConfig(config, configs, sortedConfigs);
|
|
101
89
|
});
|
|
102
90
|
return sortedConfigs;
|
|
103
91
|
};
|
|
104
92
|
exports.sortFieldFormulaConfigs = sortFieldFormulaConfigs;
|
|
105
|
-
|
|
106
|
-
var e_2, _a;
|
|
93
|
+
const checkUserSessionNotRequiredForFieldFormulas = (configs) => {
|
|
107
94
|
if (!_.isArray(configs)) {
|
|
108
95
|
configs = [configs];
|
|
109
96
|
}
|
|
110
97
|
if (!configs.length) {
|
|
111
98
|
return;
|
|
112
99
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (required) {
|
|
119
|
-
throw new Error("The param 'userSession' is required while running the formula '".concat(formula.replace("$", "\\$"), "' of field '").concat(fieldName, "' on the object '").concat(objectName, "'"));
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
124
|
-
finally {
|
|
125
|
-
try {
|
|
126
|
-
if (configs_1_1 && !configs_1_1.done && (_a = configs_1.return)) _a.call(configs_1);
|
|
100
|
+
for (let config of configs) {
|
|
101
|
+
let { vars, object_name: objectName, field_name: fieldName, formula } = config;
|
|
102
|
+
let required = (0, exports.isUserSessionRequiredForFormulaVars)(vars);
|
|
103
|
+
if (required) {
|
|
104
|
+
throw new Error(`The param 'userSession' is required while running the formula '${formula.replace("$", "\\$")}' of field '${fieldName}' on the object '${objectName}'`);
|
|
127
105
|
}
|
|
128
|
-
finally { if (e_2) throw e_2.error; }
|
|
129
106
|
}
|
|
130
107
|
};
|
|
131
108
|
exports.checkUserSessionNotRequiredForFieldFormulas = checkUserSessionNotRequiredForFieldFormulas;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
var isUserVar = _a.is_user_var, isUserSessionVar = _a.is_user_session_var;
|
|
109
|
+
const isUserSessionRequiredForFormulaVars = (vars) => {
|
|
110
|
+
let required = !!vars.find(({ is_user_var: isUserVar, is_user_session_var: isUserSessionVar }) => {
|
|
135
111
|
return isUserVar || isUserSessionVar;
|
|
136
112
|
});
|
|
137
113
|
return required;
|
|
138
114
|
};
|
|
139
115
|
exports.isUserSessionRequiredForFormulaVars = isUserSessionRequiredForFormulaVars;
|
|
140
|
-
|
|
116
|
+
const getFormulaVarPathsAggregateLookups = (paths) => {
|
|
141
117
|
if (!paths.length) {
|
|
142
118
|
return [];
|
|
143
119
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
for (
|
|
120
|
+
let lookups = [], currentPath, nextPath;
|
|
121
|
+
let tempLookupAs = "", tempLookupLocalField = "";
|
|
122
|
+
for (let i = 0; i < paths.length - 1; i++) {
|
|
147
123
|
currentPath = paths[i];
|
|
148
124
|
nextPath = paths[i + 1];
|
|
149
125
|
tempLookupLocalField = currentPath.field_name;
|
|
150
126
|
if (tempLookupAs) {
|
|
151
|
-
tempLookupLocalField =
|
|
127
|
+
tempLookupLocalField = `${tempLookupAs}.${tempLookupLocalField}`;
|
|
152
128
|
tempLookupAs = tempLookupLocalField;
|
|
153
129
|
}
|
|
154
130
|
else {
|
|
155
|
-
tempLookupAs =
|
|
131
|
+
tempLookupAs = `__lookup__${currentPath.field_name}`;
|
|
156
132
|
}
|
|
157
|
-
|
|
133
|
+
let foreignField = currentPath.reference_to_field ? currentPath.reference_to_field : '_id';
|
|
158
134
|
lookups.push({
|
|
159
135
|
$lookup: {
|
|
160
136
|
from: nextPath.reference_from,
|
|
161
137
|
localField: tempLookupLocalField,
|
|
162
|
-
foreignField
|
|
138
|
+
foreignField,
|
|
163
139
|
as: tempLookupAs
|
|
164
140
|
}
|
|
165
141
|
});
|
package/lib/formula/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/formula/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/formula/util.ts"],"names":[],"mappings":"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"}
|