@freelog/freelog-cg-collection 1.2.12 → 1.2.14
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/model/exp/FunctionCallInfo.d.ts +5 -7
- package/dist/model/exp-condition/ExpCondition.d.ts +6 -8
- package/dist/model/policy/ActionInfo.d.ts +1 -0
- package/dist/model/policy/PolicyInfo.d.ts +25 -26
- package/dist/resources/context_config/event_configs.json +126 -0
- package/dist/src/calculator/CalculatorFactory.d.ts +17 -0
- package/dist/src/calculator/CalculatorFactory.js +40 -0
- package/dist/src/calculator/CalculatorFactoryBuilder.d.ts +4 -0
- package/dist/src/calculator/CalculatorFactoryBuilder.js +13 -0
- package/dist/src/calculator/ExpArgsGroupCalculator.d.ts +12 -0
- package/dist/src/calculator/ExpArgsGroupCalculator.js +25 -0
- package/dist/src/calculator/ExpBooleanCalculator.d.ts +13 -0
- package/dist/src/calculator/ExpBooleanCalculator.js +81 -0
- package/dist/src/calculator/ExpCalculator.d.ts +17 -0
- package/dist/src/calculator/ExpCalculator.js +56 -0
- package/dist/src/calculator/ExpCollectionCalculator.d.ts +0 -0
- package/dist/src/calculator/ExpCollectionCalculator.js +1 -0
- package/dist/src/calculator/ExpConditionCalculator.d.ts +12 -0
- package/dist/src/calculator/ExpConditionCalculator.js +34 -0
- package/dist/src/contract-declaration-executor/DefaultContractDeclarationExecutor.d.ts +8 -0
- package/dist/src/contract-declaration-executor/DefaultContractDeclarationExecutor.js +13 -0
- package/dist/src/contract-declaration-executor/DynamicContractDeclarationExecutor.d.ts +7 -0
- package/dist/src/contract-declaration-executor/DynamicContractDeclarationExecutor.js +21 -0
- package/dist/src/contract-declaration-executor/USEContractDeclaration.d.ts +4 -0
- package/dist/src/contract-declaration-executor/USEContractDeclaration.js +23 -0
- package/dist/src/function-executor/ApiFunctionExecutor.d.ts +11 -0
- package/dist/src/function-executor/ApiFunctionExecutor.js +17 -0
- package/dist/src/function-executor/DefaultFunctionExecutor.d.ts +11 -0
- package/dist/src/function-executor/DefaultFunctionExecutor.js +19 -0
- package/dist/src/function-executor/DynamicFunctionExecutor.d.ts +13 -0
- package/dist/src/function-executor/DynamicFunctionExecutor.js +58 -0
- package/dist/src/function-executor/FunFunctionExecutor.d.ts +15 -0
- package/dist/src/function-executor/FunFunctionExecutor.js +48 -0
- package/dist/src/function-executor/KitFunctionExecutor.d.ts +9 -0
- package/dist/src/function-executor/KitFunctionExecutor.js +32 -0
- package/dist/src/function-executor/QueryFunctionExecutor.d.ts +40 -0
- package/dist/src/function-executor/QueryFunctionExecutor.js +42 -0
- package/dist/src/function-executor/TimeFunctionExecutor.d.ts +8 -0
- package/dist/src/function-executor/TimeFunctionExecutor.js +51 -0
- package/dist/src/helper/ContractDeclarationHelper.d.ts +7 -0
- package/dist/src/helper/ContractDeclarationHelper.js +28 -0
- package/dist/src/helper/ExpHelper.d.ts +16 -0
- package/dist/src/helper/ExpHelper.js +86 -0
- package/dist/src/helper/FunctionHelper.d.ts +41 -0
- package/dist/src/helper/FunctionHelper.js +161 -0
- package/dist/src/helper/GetPostHelper.d.ts +5 -0
- package/dist/src/helper/GetPostHelper.js +13 -0
- package/dist/src/helper/PolicyHelper.d.ts +102 -0
- package/dist/src/helper/PolicyHelper.js +519 -0
- package/dist/src/interface/Calculator.d.ts +5 -0
- package/dist/src/interface/Calculator.js +3 -0
- package/dist/src/interface/ConstantForApi.d.ts +12 -0
- package/dist/src/interface/ConstantForApi.js +17 -0
- package/dist/src/interface/ContractDeclarationExecute.d.ts +3 -0
- package/dist/src/interface/ContractDeclarationExecute.js +3 -0
- package/dist/src/interface/ExpHelperAware.d.ts +4 -0
- package/dist/src/interface/ExpHelperAware.js +3 -0
- package/dist/src/interface/FunctionHelperAware.d.ts +4 -0
- package/dist/src/interface/FunctionHelperAware.js +3 -0
- package/dist/src/interface/FunctionInvoke.d.ts +4 -0
- package/dist/src/interface/FunctionInvoke.js +3 -0
- package/dist/src/interface/GetPostInvoke.d.ts +4 -0
- package/dist/src/interface/GetPostInvoke.js +3 -0
- package/dist/src/interface/OutsideApiServiceAware.d.ts +4 -0
- package/dist/src/interface/OutsideApiServiceAware.js +3 -0
- package/dist/src/interface/VarContextCapable.d.ts +3 -0
- package/dist/src/interface/VarContextCapable.js +3 -0
- package/dist/src/model/AssignmentClauseInfo.d.ts +3 -0
- package/dist/src/model/AssignmentClauseInfo.js +3 -0
- package/dist/src/model/contract-declaration/VarContractDeclarationInfo.d.ts +17 -0
- package/dist/src/model/contract-declaration/VarContractDeclarationInfo.js +3 -0
- package/dist/src/model/exp/EntityInfo.d.ts +6 -0
- package/dist/src/model/exp/EntityInfo.js +3 -0
- package/dist/src/model/exp/Exp.d.ts +3 -0
- package/dist/src/model/exp/Exp.js +3 -0
- package/dist/src/model/exp/ExpAtom.d.ts +3 -0
- package/dist/src/model/exp/ExpAtom.js +3 -0
- package/dist/src/model/exp/ExpOp.d.ts +7 -0
- package/dist/src/model/exp/ExpOp.js +3 -0
- package/dist/src/model/exp/ExpParen.d.ts +5 -0
- package/dist/src/model/exp/ExpParen.js +3 -0
- package/dist/src/model/exp/ExpSigned.d.ts +6 -0
- package/dist/src/model/exp/ExpSigned.js +3 -0
- package/dist/src/model/exp/FunctionCallInfo.d.ts +12 -0
- package/dist/src/model/exp/FunctionCallInfo.js +3 -0
- package/dist/src/model/exp/NumberInfo.d.ts +5 -0
- package/dist/src/model/exp/NumberInfo.js +3 -0
- package/dist/src/model/exp/StringInfo.d.ts +5 -0
- package/dist/src/model/exp/StringInfo.js +3 -0
- package/dist/src/model/exp/VariableChainInfo.d.ts +6 -0
- package/dist/src/model/exp/VariableChainInfo.js +3 -0
- package/dist/src/model/exp-args-group/ExpArgsGroup.d.ts +9 -0
- package/dist/src/model/exp-args-group/ExpArgsGroup.js +3 -0
- package/dist/src/model/exp-boolean/BooleanInfo.d.ts +5 -0
- package/dist/src/model/exp-boolean/BooleanInfo.js +3 -0
- package/dist/src/model/exp-boolean/ExpBoolean.d.ts +3 -0
- package/dist/src/model/exp-boolean/ExpBoolean.js +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanAtom.d.ts +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanAtom.js +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpCollection.d.ts +7 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpCollection.js +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpCompare.d.ts +7 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpCompare.js +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpLogic.d.ts +7 -0
- package/dist/src/model/exp-boolean/ExpBooleanOpLogic.js +3 -0
- package/dist/src/model/exp-boolean/ExpBooleanParen.d.ts +5 -0
- package/dist/src/model/exp-boolean/ExpBooleanParen.js +3 -0
- package/dist/src/model/exp-collection/ExpCollection.d.ts +9 -0
- package/dist/src/model/exp-collection/ExpCollection.js +3 -0
- package/dist/src/model/exp-condition/ExpCondition.d.ts +11 -0
- package/dist/src/model/exp-condition/ExpCondition.js +3 -0
- package/dist/src/model/policy/ActionInfo.d.ts +20 -0
- package/dist/src/model/policy/ActionInfo.js +3 -0
- package/dist/src/model/policy/ContractDeclarationInfo.d.ts +7 -0
- package/dist/src/model/policy/ContractDeclarationInfo.js +7 -0
- package/dist/src/model/policy/EventInfo.d.ts +27 -0
- package/dist/src/model/policy/EventInfo.js +3 -0
- package/dist/src/model/policy/PolicyInfo.d.ts +32 -0
- package/dist/src/model/policy/PolicyInfo.js +3 -0
- package/dist/src/model/policy/VarDeclarationInfo.d.ts +10 -0
- package/dist/src/model/policy/VarDeclarationInfo.js +3 -0
- package/dist/src/service/OutsideApiService.d.ts +58 -0
- package/dist/src/service/OutsideApiService.js +62 -0
- package/dist/src/state-machine/ContractFsmHook.d.ts +17 -0
- package/dist/src/state-machine/ContractFsmHook.js +33 -0
- package/dist/src/state-machine/ContractStateMachine.d.ts +51 -0
- package/dist/src/state-machine/ContractStateMachine.js +190 -0
- package/dist/src/tools/PolicyDecompiler.d.ts +26 -0
- package/dist/src/tools/PolicyDecompiler.js +298 -0
- package/dist/src/tools/PolicyMapper.d.ts +3 -0
- package/dist/src/tools/PolicyMapper.js +83 -0
- package/dist/tools/PolicyDecompiler.d.ts +26 -0
- package/dist/tools/PolicyDecompiler.js +298 -0
- package/dist/tools/PolicyMapper.d.ts +3 -0
- package/dist/tools/PolicyMapper.js +81 -0
- package/index.js +5 -0
- package/package.json +1 -1
- package/resources/zhaojn.json +1947 -7
- package/resources/zhaojn.sc +58 -2
- package/resources/zhaojn2.json +61 -113
- package/resources/zhaojn3.json +76 -0
- package/src/model/exp/FunctionCallInfo.ts +2 -2
- package/src/model/exp-condition/ExpCondition.ts +2 -2
- package/src/model/policy/ActionInfo.ts +1 -1
- package/src/model/policy/PolicyInfo.ts +28 -22
- package/src/tools/PolicyDecompiler.ts +329 -0
- package/src/tools/PolicyMapper.ts +80 -0
- package/test/library/MomentTest.test.ts +12 -0
- package/test/tools/PolicyDecompilerTest.test.ts +9 -0
- package/test/tools/PolicyMapperTest.test.ts +15 -0
- package/tsconfig.json +2 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicContractDeclarationExecutor = void 0;
|
|
4
|
+
const DefaultContractDeclarationExecutor_1 = require("./DefaultContractDeclarationExecutor");
|
|
5
|
+
class DynamicContractDeclarationExecutor extends DefaultContractDeclarationExecutor_1.DefaultContractDeclarationExecutor {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.executorMap = new Map();
|
|
9
|
+
}
|
|
10
|
+
async execute(keyword, dataObj) {
|
|
11
|
+
if (this.executorMap.has(keyword)) {
|
|
12
|
+
return this.executorMap.get(keyword).execute(keyword, dataObj);
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`该关键字未实现【${keyword}】!`);
|
|
15
|
+
}
|
|
16
|
+
addExecutor(keyword, executor) {
|
|
17
|
+
this.executorMap.set(keyword, executor);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.DynamicContractDeclarationExecutor = DynamicContractDeclarationExecutor;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0NvbnRyYWN0RGVjbGFyYXRpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdC1kZWNsYXJhdGlvbi1leGVjdXRvci9EeW5hbWljQ29udHJhY3REZWNsYXJhdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZGQUF3RjtBQUV4RixNQUFhLGtDQUFtQyxTQUFRLHVFQUFrQztJQUExRjs7UUFFYyxnQkFBVyxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO0lBYTFFLENBQUM7SUFYRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWUsRUFBRSxPQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxPQUFPLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZSxFQUFFLFFBQW9DO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0o7QUFmRCxnRkFlQyJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.USEContractDeclaration = void 0;
|
|
4
|
+
const DefaultContractDeclarationExecutor_1 = require("./DefaultContractDeclarationExecutor");
|
|
5
|
+
class USEContractDeclaration extends DefaultContractDeclarationExecutor_1.DefaultContractDeclarationExecutor {
|
|
6
|
+
async execute(keyword, dataObj) {
|
|
7
|
+
let conditions = dataObj["conditions"];
|
|
8
|
+
let infos = await this.outsideApiService.contractInfos({
|
|
9
|
+
subject: conditions["subject"],
|
|
10
|
+
policyId: conditions["policyId"],
|
|
11
|
+
licensee: conditions["licensee"],
|
|
12
|
+
status: 0
|
|
13
|
+
});
|
|
14
|
+
if (infos.length != 0) {
|
|
15
|
+
return infos[0];
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.USEContractDeclaration = USEContractDeclaration;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVVNFQ29udHJhY3REZWNsYXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdC1kZWNsYXJhdGlvbi1leGVjdXRvci9VU0VDb250cmFjdERlY2xhcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZGQUF3RjtBQUV4RixNQUFhLHNCQUF1QixTQUFRLHVFQUFrQztJQUUxRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWUsRUFBRSxPQUFZO1FBQ3ZDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7WUFDbkQsT0FBTyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDOUIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDaEMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDaEMsTUFBTSxFQUFFLENBQUM7U0FDWixDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBaEJELHdEQWdCQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class ApiFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(args: {
|
|
5
|
+
node?: string;
|
|
6
|
+
subject?: any;
|
|
7
|
+
policyId?: string;
|
|
8
|
+
status?: number;
|
|
9
|
+
licensee: any;
|
|
10
|
+
}): Promise<number>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
class ApiFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
6
|
+
getFunctionCodeMap() {
|
|
7
|
+
return new Map([
|
|
8
|
+
["api.contract.querySignCount", "F_001"]
|
|
9
|
+
]);
|
|
10
|
+
}
|
|
11
|
+
async F_001(args) {
|
|
12
|
+
return this.outsideApiService.contractSignCount(args);
|
|
13
|
+
// throw new Error("该函数未实现【api.contract.querySignCount】");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ApiFunctionExecutor = ApiFunctionExecutor;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpRnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9BcGlGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQU1YO1FBQ0csT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsMERBQTBEO0lBQzlELENBQUM7Q0FDSjtBQWxCRCxrREFrQkMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FunctionInvoke } from "../interface/FunctionInvoke";
|
|
2
|
+
import { OutsideApiService } from "../service/OutsideApiService";
|
|
3
|
+
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
4
|
+
import { OutsideApiServiceAware } from "../interface/OutsideApiServiceAware";
|
|
5
|
+
export declare abstract class DefaultFunctionExecutor implements FunctionInvoke, OutsideApiServiceAware, VarContextCapable<any> {
|
|
6
|
+
protected outsideApiService: OutsideApiService;
|
|
7
|
+
setOutsideApiService(outsideApiService: OutsideApiService): void;
|
|
8
|
+
invoke(functionName: string, args: any[]): Promise<any>;
|
|
9
|
+
invokeEnable(functionName: string): boolean;
|
|
10
|
+
getVarContext(varName: string): Promise<any>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultFunctionExecutor = void 0;
|
|
4
|
+
class DefaultFunctionExecutor {
|
|
5
|
+
setOutsideApiService(outsideApiService) {
|
|
6
|
+
this.outsideApiService = outsideApiService;
|
|
7
|
+
}
|
|
8
|
+
async invoke(functionName, args) {
|
|
9
|
+
throw new Error("这是个空实现,不能被调用!");
|
|
10
|
+
}
|
|
11
|
+
invokeEnable(functionName) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
async getVarContext(varName) {
|
|
15
|
+
throw new Error("这是个空实现,不能被调用!");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.DefaultFunctionExecutor = DefaultFunctionExecutor;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsTUFBc0IsdUJBQXVCO0lBSXpDLG9CQUFvQixDQUFDLGlCQUFvQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBb0IsRUFBRSxJQUFXO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQjtRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFlO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBbkJELDBEQW1CQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DefaultFunctionExecutor } from "./DefaultFunctionExecutor";
|
|
2
|
+
import { FunctionInvoke } from "../interface/FunctionInvoke";
|
|
3
|
+
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
4
|
+
export declare class DynamicFunctionExecutor extends DefaultFunctionExecutor {
|
|
5
|
+
protected executorsMap: Map<string, FunctionInvoke>;
|
|
6
|
+
protected varContextProxy: VarContextCapable<any>;
|
|
7
|
+
invokeEnable(functionName: string): boolean;
|
|
8
|
+
invoke(functionName: string, args: any[]): Promise<any>;
|
|
9
|
+
addExecutor(functionName: string, executor: FunctionInvoke): void;
|
|
10
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
11
|
+
getVarContext(varName: string): Promise<any>;
|
|
12
|
+
setVarContextProxy(varContextProxy: VarContextCapable<any>): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicFunctionExecutor = void 0;
|
|
4
|
+
const DefaultFunctionExecutor_1 = require("./DefaultFunctionExecutor");
|
|
5
|
+
class DynamicFunctionExecutor extends DefaultFunctionExecutor_1.DefaultFunctionExecutor {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.executorsMap = new Map();
|
|
9
|
+
}
|
|
10
|
+
invokeEnable(functionName) {
|
|
11
|
+
return this.executorsMap.has(functionName) || this.getFunctionCodeMap().has(functionName);
|
|
12
|
+
}
|
|
13
|
+
async invoke(functionName, args) {
|
|
14
|
+
if (this.executorsMap.has(functionName)) {
|
|
15
|
+
return this.executorsMap.get(functionName).invoke(functionName, args);
|
|
16
|
+
}
|
|
17
|
+
if (this.getFunctionCodeMap().has(functionName)) {
|
|
18
|
+
let functionCode = this.getFunctionCodeMap().get(functionName);
|
|
19
|
+
// let argsStr = "";
|
|
20
|
+
// for (let i = 0; i < args.length; i++) {
|
|
21
|
+
// if (i == 0) {
|
|
22
|
+
// argsStr = JSON.stringify(args[i]);
|
|
23
|
+
// } else {
|
|
24
|
+
// argsStr = argsStr + "," + JSON.stringify(args[i]);
|
|
25
|
+
// }
|
|
26
|
+
// }
|
|
27
|
+
// let expStr = `this.${functionCode}(${argsStr})`;
|
|
28
|
+
return Reflect.apply(this[functionCode], this, args);
|
|
29
|
+
// return eval(expStr);
|
|
30
|
+
}
|
|
31
|
+
throw new Error("该函数未实现");
|
|
32
|
+
}
|
|
33
|
+
addExecutor(functionName, executor) {
|
|
34
|
+
if (executor instanceof DefaultFunctionExecutor_1.DefaultFunctionExecutor) {
|
|
35
|
+
executor.setOutsideApiService(this.outsideApiService);
|
|
36
|
+
}
|
|
37
|
+
if (executor instanceof DynamicFunctionExecutor) {
|
|
38
|
+
executor.setVarContextProxy(this.varContextProxy);
|
|
39
|
+
}
|
|
40
|
+
this.executorsMap.set(functionName, executor);
|
|
41
|
+
}
|
|
42
|
+
getFunctionCodeMap() {
|
|
43
|
+
return new Map();
|
|
44
|
+
}
|
|
45
|
+
async getVarContext(varName) {
|
|
46
|
+
if (this.varContextProxy != null) {
|
|
47
|
+
return this.varContextProxy.getVarContext(varName);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return super.getVarContext(varName);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
setVarContextProxy(varContextProxy) {
|
|
54
|
+
this.varContextProxy = varContextProxy;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.DynamicFunctionExecutor = DynamicFunctionExecutor;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBSWxFLE1BQWEsdUJBQXdCLFNBQVEsaURBQXVCO0lBQXBFOztRQUVjLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUF5RC9ELENBQUM7SUFyREcsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQW9CLEVBQUUsSUFBVztRQUMxQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxvQkFBb0I7WUFDcEIsMENBQTBDO1lBQzFDLG9CQUFvQjtZQUNwQiw2Q0FBNkM7WUFDN0MsZUFBZTtZQUNmLDZEQUE2RDtZQUM3RCxRQUFRO1lBQ1IsSUFBSTtZQUNKLG1EQUFtRDtZQUVuRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCx1QkFBdUI7UUFDM0IsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFvQixFQUFFLFFBQXdCO1FBQ3RELElBQUksUUFBUSxZQUFZLGlEQUF1QixFQUFFLENBQUM7WUFDOUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLFFBQVEsWUFBWSx1QkFBdUIsRUFBRSxDQUFDO1lBQzlDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFlO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBdUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDM0MsQ0FBQztDQUNKO0FBM0RELDBEQTJEQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class FunFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(set: [], elems: [], repeated: boolean): Promise<[]>;
|
|
5
|
+
F_002(set: []): Promise<[]>;
|
|
6
|
+
F_003(ttl: number): Promise<string>;
|
|
7
|
+
F_004(args: {
|
|
8
|
+
title: string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
F_005(args: {
|
|
11
|
+
label: string;
|
|
12
|
+
limitTime?: string;
|
|
13
|
+
ttl?: number;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FunFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
class FunFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
6
|
+
getFunctionCodeMap() {
|
|
7
|
+
return new Map([
|
|
8
|
+
["fun.addElements", "F_001"],
|
|
9
|
+
["fun.clearElems", "F_002"],
|
|
10
|
+
["fun.appendTTL", "F_003"],
|
|
11
|
+
["fun.sendEvent", "F_004"],
|
|
12
|
+
["fun.setLabel", "F_005"]
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
async F_001(set, elems, repeated) {
|
|
16
|
+
set.push(...elems);
|
|
17
|
+
return [...set];
|
|
18
|
+
}
|
|
19
|
+
async F_002(set) {
|
|
20
|
+
set.length = 0;
|
|
21
|
+
return [...set];
|
|
22
|
+
}
|
|
23
|
+
async F_003(ttl) {
|
|
24
|
+
throw new Error("该函数未实现【fun.appendTTL】");
|
|
25
|
+
}
|
|
26
|
+
async F_004(args) {
|
|
27
|
+
console.log(`-- FunFunctionExecutor.F_004 -- \nargs = ${JSON.stringify(args)}`);
|
|
28
|
+
let fromSubject = await this.getVarContext("policy.subject");
|
|
29
|
+
args["fromSubjectName"] = fromSubject["entityName"];
|
|
30
|
+
args["fromSubjectType"] = fromSubject["entityType"];
|
|
31
|
+
args["fromPolicyId"] = await this.getVarContext("policy.policyId");
|
|
32
|
+
args["fromContractId"] = await this.getVarContext("contract.contractId");
|
|
33
|
+
let fromLicensee = await this.getVarContext("contract.licensee");
|
|
34
|
+
args["fromLicenseeName"] = fromLicensee["entityName"];
|
|
35
|
+
args["fromLicenseeType"] = fromLicensee["entityType"];
|
|
36
|
+
let fromLicenseeOwner = await this.getVarContext("contract.licenseeOwner");
|
|
37
|
+
args["fromLicenseeOwnerName"] = fromLicenseeOwner["entityName"];
|
|
38
|
+
return this.outsideApiService.funSendEvent(args);
|
|
39
|
+
// throw new Error("该函数未实现【fun.sendEvent】");
|
|
40
|
+
}
|
|
41
|
+
async F_005(args) {
|
|
42
|
+
args["contractId"] = await this.getVarContext("contract.contractId");
|
|
43
|
+
return this.outsideApiService.funSetLabel(args);
|
|
44
|
+
// throw new Error("该函数未实现【fun.setLabel】");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.FunFunctionExecutor = FunFunctionExecutor;
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuRnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9GdW5GdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztZQUM1QixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztZQUMzQixDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7WUFDMUIsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDO1lBQzFCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFPLEVBQUUsS0FBUyxFQUFFLFFBQWlCO1FBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFPO1FBQ2YsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFXO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUF1QjtRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRixJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSxJQUFJLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksaUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELDRDQUE0QztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUF5RDtRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELDJDQUEyQztJQUMvQyxDQUFDO0NBQ0o7QUFqREQsa0RBaURDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class KitFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(va1: any, var2: any): Promise<any>;
|
|
5
|
+
F_002(va1: any): Promise<boolean>;
|
|
6
|
+
F_003(elems: any[]): Promise<number>;
|
|
7
|
+
F_004(labels: string[], labelName: string): Promise<boolean>;
|
|
8
|
+
F_005(va1: any, var2: any): Promise<any>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KitFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
class KitFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
6
|
+
getFunctionCodeMap() {
|
|
7
|
+
return new Map([
|
|
8
|
+
["Kit.Max", "F_001"],
|
|
9
|
+
["Kit.IsNull", "F_002"],
|
|
10
|
+
["Kit.Array.Size", "F_003"],
|
|
11
|
+
["Kit.Array.Include", "F_004"],
|
|
12
|
+
["Kit.Min", "F_005"],
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
async F_001(va1, var2) {
|
|
16
|
+
return va1 >= var2 ? va1 : var2;
|
|
17
|
+
}
|
|
18
|
+
async F_002(va1) {
|
|
19
|
+
return va1 == null;
|
|
20
|
+
}
|
|
21
|
+
async F_003(elems) {
|
|
22
|
+
return elems.length;
|
|
23
|
+
}
|
|
24
|
+
async F_004(labels, labelName) {
|
|
25
|
+
return labels.indexOf(labelName) != -1;
|
|
26
|
+
}
|
|
27
|
+
async F_005(va1, var2) {
|
|
28
|
+
return va1 <= var2 ? va1 : var2;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.KitFunctionExecutor = KitFunctionExecutor;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2l0RnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9LaXRGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO1lBQ3ZCLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO1lBQzNCLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO1lBQzlCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFRLEVBQUUsSUFBUztRQUMzQixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVE7UUFDaEIsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQVk7UUFDcEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQWdCLEVBQUUsU0FBaUI7UUFDM0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVEsRUFBRSxJQUFTO1FBQzNCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBL0JELGtEQStCQyJ9
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class QueryFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(args: {
|
|
5
|
+
subject: any;
|
|
6
|
+
interval?: "PAST_MONTH";
|
|
7
|
+
startTime?: string;
|
|
8
|
+
limitTime?: string;
|
|
9
|
+
}): Promise<number>;
|
|
10
|
+
F_002(args: {
|
|
11
|
+
subject: any;
|
|
12
|
+
policyId?: string;
|
|
13
|
+
licensee: any;
|
|
14
|
+
}): Promise<string[]>;
|
|
15
|
+
F_003(args: {
|
|
16
|
+
subject: any;
|
|
17
|
+
policyId?: string;
|
|
18
|
+
licensee: any;
|
|
19
|
+
}): Promise<any[]>;
|
|
20
|
+
F_004(args: {
|
|
21
|
+
node?: string;
|
|
22
|
+
subject?: any;
|
|
23
|
+
policyId?: string;
|
|
24
|
+
status?: number;
|
|
25
|
+
licensee: any;
|
|
26
|
+
}): Promise<number>;
|
|
27
|
+
F_005(args: {
|
|
28
|
+
subject?: any;
|
|
29
|
+
contractId?: string;
|
|
30
|
+
amount?: number;
|
|
31
|
+
licenseeOwner: number;
|
|
32
|
+
}): Promise<number>;
|
|
33
|
+
F_006(args: {
|
|
34
|
+
subject?: any;
|
|
35
|
+
contractId?: string;
|
|
36
|
+
interval?: "PAST_MONTH";
|
|
37
|
+
startTime?: string;
|
|
38
|
+
limitTime?: string;
|
|
39
|
+
}): Promise<number>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
class QueryFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
6
|
+
getFunctionCodeMap() {
|
|
7
|
+
return new Map([
|
|
8
|
+
["Query.ResourceService.CountOfUpdates", "F_001"],
|
|
9
|
+
["Query.EchoService.Labels", "F_002"],
|
|
10
|
+
["Query.EchoService.LabelInfos", "F_003"],
|
|
11
|
+
["Query.ContractService.SignCount", "F_004"],
|
|
12
|
+
["Query.TransactionService.RecordsCount", "F_005"],
|
|
13
|
+
["Query.TransactionService.AmountsSum", "F_006"]
|
|
14
|
+
]);
|
|
15
|
+
}
|
|
16
|
+
async F_001(args) {
|
|
17
|
+
return this.outsideApiService.resourceCountOfUpdates(args);
|
|
18
|
+
// throw new Error("该函数未实现【Query.ResourceService.CountOfUpdates】");
|
|
19
|
+
}
|
|
20
|
+
async F_002(args) {
|
|
21
|
+
return this.outsideApiService.echoLabels(args);
|
|
22
|
+
// throw new Error("该函数未实现【Query.EchoService.Labels】");
|
|
23
|
+
}
|
|
24
|
+
async F_003(args) {
|
|
25
|
+
return this.outsideApiService.echoLabelInfos(args);
|
|
26
|
+
// throw new Error("该函数未实现【Query.EchoService.LabelInfos】");
|
|
27
|
+
}
|
|
28
|
+
async F_004(args) {
|
|
29
|
+
return this.outsideApiService.contractSignCount(args);
|
|
30
|
+
// throw new Error("该函数未实现【Query.ContractService.SignCount】");
|
|
31
|
+
}
|
|
32
|
+
async F_005(args) {
|
|
33
|
+
return this.outsideApiService.transactionRecordsCount(args);
|
|
34
|
+
// throw new Error("该函数未实现【Query.TransactionService.RecordsCount】");
|
|
35
|
+
}
|
|
36
|
+
async F_006(args) {
|
|
37
|
+
return this.outsideApiService.transactionAmountsSum(args);
|
|
38
|
+
// throw new Error("该函数未实现【Query.TransactionService.AmountsSum】");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.QueryFunctionExecutor = QueryFunctionExecutor;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlGdW5jdGlvbkV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Z1bmN0aW9uLWV4ZWN1dG9yL1F1ZXJ5RnVuY3Rpb25FeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBa0U7QUFFbEUsTUFBYSxxQkFBc0IsU0FBUSxpREFBdUI7SUFFOUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsQ0FBaUI7WUFDM0IsQ0FBQyxzQ0FBc0MsRUFBRSxPQUFPLENBQUM7WUFDakQsQ0FBQywwQkFBMEIsRUFBRSxPQUFPLENBQUM7WUFDckMsQ0FBQyw4QkFBOEIsRUFBRSxPQUFPLENBQUM7WUFDekMsQ0FBQyxpQ0FBaUMsRUFBRSxPQUFPLENBQUM7WUFDNUMsQ0FBQyx1Q0FBdUMsRUFBRSxPQUFPLENBQUM7WUFDbEQsQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUM7U0FDbkQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFLWDtRQUNHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELG1FQUFtRTtJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUF3RDtRQUNoRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsdURBQXVEO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLElBQXdEO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCwyREFBMkQ7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFNWDtRQUNHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELDhEQUE4RDtJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFvRjtRQUM1RixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxvRUFBb0U7SUFDeEUsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFNWDtRQUNHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELGtFQUFrRTtJQUN0RSxDQUFDO0NBQ0o7QUEzREQsc0RBMkRDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
|
|
2
|
+
export declare class TimeFunctionExecutor extends DynamicFunctionExecutor {
|
|
3
|
+
getFunctionCodeMap(): Map<string, string>;
|
|
4
|
+
F_001(dateTime: string): Promise<string>;
|
|
5
|
+
F_002(dateTime: string, elapsed: number, timeUnit: "year" | "month" | "week" | "day" | "cycle" | "hour" | "minute"): Promise<string>;
|
|
6
|
+
F_003(): Promise<string>;
|
|
7
|
+
F_004(dateTime: string, timeUnit: "year" | "month" | "day" | "hour" | "minute"): Promise<string>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeFunctionExecutor = void 0;
|
|
4
|
+
const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
|
|
5
|
+
const moment = require("moment/moment");
|
|
6
|
+
class TimeFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
|
|
7
|
+
getFunctionCodeMap() {
|
|
8
|
+
return new Map([
|
|
9
|
+
["Time.NextMonth", "F_001"],
|
|
10
|
+
["Time.AddTime", "F_002"],
|
|
11
|
+
["Time.Now", "F_003"],
|
|
12
|
+
["Time.GetTime", "F_004"]
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
async F_001(dateTime) {
|
|
16
|
+
return moment(dateTime).add(1, "month").format("YYYY-MM-DD HH:mm:ss");
|
|
17
|
+
}
|
|
18
|
+
async F_002(dateTime, elapsed, timeUnit) {
|
|
19
|
+
if (timeUnit == "cycle") {
|
|
20
|
+
timeUnit = "hour";
|
|
21
|
+
elapsed *= 4;
|
|
22
|
+
}
|
|
23
|
+
return moment(dateTime).add(elapsed, timeUnit).format("YYYY-MM-DD HH:mm:ss");
|
|
24
|
+
}
|
|
25
|
+
async F_003() {
|
|
26
|
+
return moment(Date.now()).format("YYYY-MM-DD HH:mm:ss");
|
|
27
|
+
}
|
|
28
|
+
async F_004(dateTime, timeUnit) {
|
|
29
|
+
let formatStr = null;
|
|
30
|
+
switch (timeUnit) {
|
|
31
|
+
case "year":
|
|
32
|
+
formatStr = "YYYY";
|
|
33
|
+
break;
|
|
34
|
+
case "month":
|
|
35
|
+
formatStr = "YYYY-MM";
|
|
36
|
+
break;
|
|
37
|
+
case "day":
|
|
38
|
+
formatStr = "YYYY-MM-DD";
|
|
39
|
+
break;
|
|
40
|
+
case "hour":
|
|
41
|
+
formatStr = "YYYY-MM-DD HH";
|
|
42
|
+
break;
|
|
43
|
+
case "minute":
|
|
44
|
+
formatStr = "YYYY-MM-DD HH:mm";
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
return moment(moment(Date.now()).format(formatStr)).format("YYYY-MM-DD HH:mm:ss");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.TimeFunctionExecutor = TimeFunctionExecutor;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvVGltZUZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBQ2xFLHdDQUF5QztBQUV6QyxNQUFhLG9CQUFxQixTQUFRLGlEQUF1QjtJQUU3RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztZQUMzQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7WUFDekIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1lBQ3JCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFnQjtRQUN4QixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFFLFFBQXlFO1FBQ3BILElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFnQixFQUFFLFFBQXNEO1FBQ2hGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztRQUNyQixRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2YsS0FBSyxNQUFNO2dCQUNQLFNBQVMsR0FBRyxNQUFNLENBQUM7Z0JBQ25CLE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDdEIsTUFBTTtZQUNWLEtBQUssS0FBSztnQkFDTixTQUFTLEdBQUcsWUFBWSxDQUFDO2dCQUN6QixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLFNBQVMsR0FBRyxlQUFlLENBQUM7Z0JBQzVCLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsU0FBUyxHQUFHLGtCQUFrQixDQUFDO2dCQUMvQixNQUFNO1FBQ2QsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0o7QUFsREQsb0RBa0RDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DynamicContractDeclarationExecutor } from "../contract-declaration-executor/DynamicContractDeclarationExecutor";
|
|
2
|
+
import { OutsideApiService } from "../service/OutsideApiService";
|
|
3
|
+
export declare class ContractDeclarationHelper extends DynamicContractDeclarationExecutor {
|
|
4
|
+
private contractDeclarationExecutors;
|
|
5
|
+
constructor();
|
|
6
|
+
setOutsideApiService(outsideApiService: OutsideApiService): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContractDeclarationHelper = void 0;
|
|
4
|
+
const DynamicContractDeclarationExecutor_1 = require("../contract-declaration-executor/DynamicContractDeclarationExecutor");
|
|
5
|
+
const USEContractDeclaration_1 = require("../contract-declaration-executor/USEContractDeclaration");
|
|
6
|
+
class ContractDeclarationHelper extends DynamicContractDeclarationExecutor_1.DynamicContractDeclarationExecutor {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.contractDeclarationExecutors = new Map();
|
|
10
|
+
this.contractDeclarationExecutors.set("DEMAND", new USEContractDeclaration_1.USEContractDeclaration());
|
|
11
|
+
this.contractDeclarationExecutors.set("USE", new USEContractDeclaration_1.USEContractDeclaration());
|
|
12
|
+
let iterator = this.contractDeclarationExecutors.entries();
|
|
13
|
+
let elem = null;
|
|
14
|
+
while ((elem = iterator.next().value) != null) {
|
|
15
|
+
this.addExecutor(elem[0], elem[1]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
setOutsideApiService(outsideApiService) {
|
|
19
|
+
super.setOutsideApiService(outsideApiService);
|
|
20
|
+
let iterator = this.contractDeclarationExecutors.values();
|
|
21
|
+
let executor = null;
|
|
22
|
+
while ((executor = iterator.next().value) != null) {
|
|
23
|
+
executor.setOutsideApiService(outsideApiService);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ContractDeclarationHelper = ContractDeclarationHelper;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3REZWNsYXJhdGlvbkhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXIvQ29udHJhY3REZWNsYXJhdGlvbkhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0SEFBdUg7QUFFdkgsb0dBQStGO0FBRy9GLE1BQWEseUJBQTBCLFNBQVEsdUVBQWtDO0lBSTdFO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFISixpQ0FBNEIsR0FBRyxJQUFJLEdBQUcsRUFBOEMsQ0FBQztRQUl6RixJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLCtDQUFzQixFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLCtDQUFzQixFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsaUJBQW9DO1FBQ3JELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEQsUUFBUSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXhCRCw4REF3QkMifQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VarContextCapable } from "../interface/VarContextCapable";
|
|
2
|
+
import { FunctionHelper } from "./FunctionHelper";
|
|
3
|
+
import { Calculator } from "../interface/Calculator";
|
|
4
|
+
import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
|
|
5
|
+
import { FunctionHelperAware } from "../interface/FunctionHelperAware";
|
|
6
|
+
export declare class ExpHelper implements Calculator, FunctionHelperAware {
|
|
7
|
+
private functionHelper;
|
|
8
|
+
private calculatorFactory;
|
|
9
|
+
constructor();
|
|
10
|
+
getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any>;
|
|
11
|
+
setFunctionHelper(functionHelper: FunctionHelper): void;
|
|
12
|
+
guessBaseTypeByExpType(exp: AssignmentClauseInfo, varValueTypeList: {
|
|
13
|
+
varName: string;
|
|
14
|
+
varValueType: string;
|
|
15
|
+
}[]): string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpHelper = void 0;
|
|
4
|
+
const CalculatorFactoryBuilder_1 = require("../calculator/CalculatorFactoryBuilder");
|
|
5
|
+
class ExpHelper {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.calculatorFactory = new CalculatorFactoryBuilder_1.CalculatorFactoryBuilder().build();
|
|
8
|
+
this.calculatorFactory.setExpHelper(this);
|
|
9
|
+
}
|
|
10
|
+
async getExpValue(varObj, varContextCapable) {
|
|
11
|
+
console.debug(`getExpValue 【ExpHelper】${JSON.stringify(varObj)}`);
|
|
12
|
+
let calculator = this.calculatorFactory.getCalculatorByExpType(varObj.expType);
|
|
13
|
+
if (calculator != null) {
|
|
14
|
+
return calculator.getExpValue(varObj, varContextCapable);
|
|
15
|
+
}
|
|
16
|
+
throw new Error("getExpValue fail [ExpHelper]...");
|
|
17
|
+
}
|
|
18
|
+
setFunctionHelper(functionHelper) {
|
|
19
|
+
this.functionHelper = functionHelper;
|
|
20
|
+
this.calculatorFactory.setFunctionHelper(functionHelper);
|
|
21
|
+
}
|
|
22
|
+
/*
|
|
23
|
+
* 类型推断
|
|
24
|
+
*/
|
|
25
|
+
guessBaseTypeByExpType(exp, varValueTypeList) {
|
|
26
|
+
switch (exp.expType) {
|
|
27
|
+
case "entity":
|
|
28
|
+
return "entity";
|
|
29
|
+
case "expOp":
|
|
30
|
+
return "number";
|
|
31
|
+
case "expParen":
|
|
32
|
+
let expParen = exp;
|
|
33
|
+
return this.guessBaseTypeByExpType(expParen.var1, varValueTypeList);
|
|
34
|
+
case "expSigned":
|
|
35
|
+
return "number";
|
|
36
|
+
case "functionCall":
|
|
37
|
+
let functionCallInfo = exp;
|
|
38
|
+
let function_config = this.functionHelper.findFunctionConfig(functionCallInfo.varChain, functionCallInfo.funcName);
|
|
39
|
+
if (function_config != null) {
|
|
40
|
+
return function_config["returnType"];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return "any";
|
|
44
|
+
}
|
|
45
|
+
case "number":
|
|
46
|
+
return "number";
|
|
47
|
+
case "string":
|
|
48
|
+
return "string";
|
|
49
|
+
case "variableChain":
|
|
50
|
+
if (varValueTypeList != null) {
|
|
51
|
+
let variableChainInfo = exp;
|
|
52
|
+
let vvtTemp = varValueTypeList.find(vvt => {
|
|
53
|
+
return variableChainInfo.content == vvt["varName"];
|
|
54
|
+
});
|
|
55
|
+
if (vvtTemp != null) {
|
|
56
|
+
return vvtTemp["varValueType"];
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return "any";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return "any";
|
|
64
|
+
}
|
|
65
|
+
case "expArgsGroup":
|
|
66
|
+
return "argsGroup";
|
|
67
|
+
case "boolean":
|
|
68
|
+
return "boolean";
|
|
69
|
+
case "expBooleanOpCollection":
|
|
70
|
+
return "boolean";
|
|
71
|
+
case "expBooleanOpCompare":
|
|
72
|
+
return "boolean";
|
|
73
|
+
case "expBooleanOpLogic":
|
|
74
|
+
return "boolean";
|
|
75
|
+
case "expBooleanParen":
|
|
76
|
+
return "boolean";
|
|
77
|
+
case "expCollection":
|
|
78
|
+
return "array";
|
|
79
|
+
case "expCondition":
|
|
80
|
+
return "array";
|
|
81
|
+
}
|
|
82
|
+
return "any";
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.ExpHelper = ExpHelper;
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlci9FeHBIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscUZBQWdGO0FBTWhGLE1BQWEsU0FBUztJQU1sQjtRQUNJLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLG1EQUF3QixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUNyRixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUE4QjtRQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsR0FBeUIsRUFDekIsZ0JBQTZEO1FBQ2hGLFFBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxVQUFVO2dCQUNYLElBQUksUUFBUSxHQUFhLEdBQWUsQ0FBQztnQkFDekMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3hFLEtBQUssV0FBVztnQkFDWixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxnQkFBZ0IsR0FBcUIsR0FBdUIsQ0FBQztnQkFDakUsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25ILElBQUksZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUMxQixPQUFPLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsS0FBSyxRQUFRO2dCQUNULE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLGVBQWU7Z0JBQ2hCLElBQUksZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQzNCLElBQUksaUJBQWlCLEdBQXNCLEdBQXdCLENBQUM7b0JBQ3BFLElBQUksT0FBTyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDdEMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDbEIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ25DLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixPQUFPLEtBQUssQ0FBQztvQkFDakIsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDTCxLQUFLLGNBQWM7Z0JBQ2YsT0FBTyxXQUFXLENBQUM7WUFDdkIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssd0JBQXdCO2dCQUN6QixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLHFCQUFxQjtnQkFDdEIsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxtQkFBbUI7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssaUJBQWlCO2dCQUNsQixPQUFPLFNBQVMsQ0FBQztZQUVyQixLQUFLLGVBQWU7Z0JBQ2hCLE9BQU8sT0FBTyxDQUFDO1lBRW5CLEtBQUssY0FBYztnQkFDZixPQUFPLE9BQU8sQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBMUZELDhCQTBGQyJ9
|