@freelog/freelog-cg-collection 1.0.23 → 1.1.1

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.
Files changed (44) hide show
  1. package/dist/function-executor/DefaultFunctionExecutor.d.ts +3 -0
  2. package/dist/function-executor/DefaultFunctionExecutor.js +4 -1
  3. package/dist/function-executor/KitFunctionExecutor.d.ts +1 -0
  4. package/dist/function-executor/KitFunctionExecutor.js +6 -2
  5. package/dist/function-executor/QueryFunctionExecutor.js +3 -2
  6. package/dist/function-executor/TimeFunctionExecutor.d.ts +2 -0
  7. package/dist/function-executor/TimeFunctionExecutor.js +27 -1
  8. package/dist/helper/FunctionHelper.d.ts +3 -0
  9. package/dist/helper/FunctionHelper.js +14 -9
  10. package/dist/helper/GetPostHelper.d.ts +5 -0
  11. package/dist/helper/GetPostHelper.js +13 -0
  12. package/dist/helper/PolicyHelper.d.ts +1 -1
  13. package/dist/helper/PolicyHelper.js +8 -3
  14. package/dist/interface/GetPostInvoke.d.ts +4 -0
  15. package/dist/interface/GetPostInvoke.js +3 -0
  16. package/dist/service/OutsideApiService.d.ts +17 -0
  17. package/dist/service/OutsideApiService.js +24 -0
  18. package/index.js +5 -0
  19. package/package.json +1 -1
  20. package/resources/zhaojn.json +52 -1
  21. package/resources/zhaojn.sc +2 -0
  22. package/src/calculator/ExpArgsGroupCalculator.ts +1 -1
  23. package/src/calculator/ExpBooleanCalculator.ts +6 -6
  24. package/src/calculator/ExpCalculator.ts +2 -2
  25. package/src/calculator/ExpConditionCalculator.ts +1 -1
  26. package/src/function-executor/DefaultFunctionExecutor.ts +8 -1
  27. package/src/function-executor/DynamicFunctionExecutor.ts +14 -12
  28. package/src/function-executor/KitFunctionExecutor.ts +6 -1
  29. package/src/function-executor/QueryFunctionExecutor.ts +3 -2
  30. package/src/function-executor/TimeFunctionExecutor.ts +29 -0
  31. package/src/helper/ExpHelper.ts +1 -1
  32. package/src/helper/FunctionHelper.ts +19 -11
  33. package/src/helper/GetPostHelper.ts +12 -0
  34. package/src/helper/PolicyHelper.ts +11 -7
  35. package/src/interface/Calculator.ts +1 -1
  36. package/src/interface/FunctionInvoke.ts +1 -1
  37. package/src/interface/GetPostInvoke.ts +6 -0
  38. package/src/service/OutsideApiService.ts +31 -0
  39. package/test/function/FunctionFunExecutorTest.test.ts +1 -1
  40. package/test/function/{ApiContractQuerySignCount.ts → api/ApiContractQuerySignCount.ts} +2 -2
  41. package/test/function/{FunAddElements.ts → fun/FunAddElements.ts} +2 -2
  42. package/test/function/{QueryEchoServiceLabels.ts → query/QueryEchoServiceLabels.ts} +2 -2
  43. package/test/helper/CustomGetPostHelper.ts +8 -0
  44. package/test/helper/PolicyHelperTest.test.ts +10 -3
@@ -1,5 +1,8 @@
1
1
  import { FunctionInvoke } from "../interface/FunctionInvoke";
2
+ import { OutsideApiService } from "../service/OutsideApiService";
2
3
  export declare abstract class DefaultFunctionExecutor implements FunctionInvoke {
4
+ protected outsideApiService: OutsideApiService;
5
+ setOutsideApiService(outsideApiService: OutsideApiService): void;
3
6
  invoke(functionName: string, args: any[]): any;
4
7
  invokeEnable(functionName: string): boolean;
5
8
  }
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultFunctionExecutor = void 0;
4
4
  class DefaultFunctionExecutor {
5
+ setOutsideApiService(outsideApiService) {
6
+ this.outsideApiService = outsideApiService;
7
+ }
5
8
  invoke(functionName, args) {
6
9
  throw new Error("这是个空实现,不能被调用!");
7
10
  }
@@ -10,4 +13,4 @@ class DefaultFunctionExecutor {
10
13
  }
11
14
  }
12
15
  exports.DefaultFunctionExecutor = DefaultFunctionExecutor;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBc0IsdUJBQXVCO0lBRXpDLE1BQU0sQ0FBQyxZQUFvQixFQUFFLElBQVc7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQVRELDBEQVNDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBc0IsdUJBQXVCO0lBSXpDLG9CQUFvQixDQUFDLGlCQUFvQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFvQixFQUFFLElBQVc7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQWZELDBEQWVDIn0=
@@ -5,4 +5,5 @@ export declare class KitFunctionExecutor extends DynamicFunctionExecutor {
5
5
  F_002(va1: any): boolean;
6
6
  F_003(elems: any[]): number;
7
7
  F_004(labels: any[], labelName: string): number;
8
+ F_005(va1: any, var2: any): any;
8
9
  }
@@ -8,7 +8,8 @@ class KitFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecu
8
8
  ["Kit.Max", "F_001"],
9
9
  ["Kit.IsNull", "F_002"],
10
10
  ["Kit.Array.Size", "F_003"],
11
- ["Kit.Echo.IncludeLabel", "F_004"]
11
+ ["Kit.Echo.IncludeLabel", "F_004"],
12
+ ["Kit.Min", "F_005"],
12
13
  ]);
13
14
  }
14
15
  F_001(va1, var2) {
@@ -23,6 +24,9 @@ class KitFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecu
23
24
  F_004(labels, labelName) {
24
25
  throw new Error("该函数未实现【Kit.Echo.IncludeLabel】");
25
26
  }
27
+ F_005(va1, var2) {
28
+ return va1 <= var2 ? va1 : var2;
29
+ }
26
30
  }
27
31
  exports.KitFunctionExecutor = KitFunctionExecutor;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2l0RnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9LaXRGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO1lBQ3ZCLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO1lBQzNCLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBUSxFQUFFLElBQVM7UUFDckIsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVE7UUFDVixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFZO1FBQ2QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBYSxFQUFFLFNBQWlCO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUExQkQsa0RBMEJDIn0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2l0RnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9LaXRGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO1lBQ3ZCLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO1lBQzNCLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDO1lBQ2xDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVEsRUFBRSxJQUFTO1FBQ3JCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRO1FBQ1YsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBWTtRQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQWEsRUFBRSxTQUFpQjtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRLEVBQUUsSUFBUztRQUNyQixPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQS9CRCxrREErQkMifQ==
@@ -14,7 +14,8 @@ class QueryFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExe
14
14
  ]);
15
15
  }
16
16
  F_001(args) {
17
- throw new Error("该函数未实现【Query.ResourceService.CountOfUpdates】");
17
+ return this.outsideApiService.resourceCountOfUpdates(args);
18
+ // throw new Error("该函数未实现【Query.ResourceService.CountOfUpdates】");
18
19
  }
19
20
  F_002(subject, licensee) {
20
21
  throw new Error("该函数未实现【Query.EchoService.Labels】");
@@ -33,4 +34,4 @@ class QueryFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExe
33
34
  }
34
35
  }
35
36
  exports.QueryFunctionExecutor = QueryFunctionExecutor;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlGdW5jdGlvbkV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Z1bmN0aW9uLWV4ZWN1dG9yL1F1ZXJ5RnVuY3Rpb25FeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBa0U7QUFFbEUsTUFBYSxxQkFBc0IsU0FBUSxpREFBdUI7SUFFOUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsQ0FBaUI7WUFDM0IsQ0FBQyxzQ0FBc0MsRUFBRSxPQUFPLENBQUM7WUFDakQsQ0FBQywwQkFBMEIsRUFBRSxPQUFPLENBQUM7WUFDckMsQ0FBQyw4QkFBOEIsRUFBRSxPQUFPLENBQUM7WUFDekMsQ0FBQyxpQ0FBaUMsRUFBRSxPQUFPLENBQUM7WUFDNUMsQ0FBQyx1Q0FBdUMsRUFBRSxPQUFPLENBQUM7WUFDbEQsQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUM7U0FDbkQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUF1RjtRQUN6RixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsUUFBYTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsUUFBYTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUF5RjtRQUMzRixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUEwRTtRQUM1RSxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQU1MO1FBQ0csTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDSjtBQTFDRCxzREEwQ0MifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlGdW5jdGlvbkV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Z1bmN0aW9uLWV4ZWN1dG9yL1F1ZXJ5RnVuY3Rpb25FeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBa0U7QUFFbEUsTUFBYSxxQkFBc0IsU0FBUSxpREFBdUI7SUFFOUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsQ0FBaUI7WUFDM0IsQ0FBQyxzQ0FBc0MsRUFBRSxPQUFPLENBQUM7WUFDakQsQ0FBQywwQkFBMEIsRUFBRSxPQUFPLENBQUM7WUFDckMsQ0FBQyw4QkFBOEIsRUFBRSxPQUFPLENBQUM7WUFDekMsQ0FBQyxpQ0FBaUMsRUFBRSxPQUFPLENBQUM7WUFDNUMsQ0FBQyx1Q0FBdUMsRUFBRSxPQUFPLENBQUM7WUFDbEQsQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUM7U0FDbkQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUF1RjtRQUN6RixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxtRUFBbUU7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsUUFBYTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsUUFBYTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUF5RjtRQUMzRixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUEwRTtRQUM1RSxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQU1MO1FBQ0csTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDSjtBQTNDRCxzREEyQ0MifQ==
@@ -3,4 +3,6 @@ export declare class TimeFunctionExecutor extends DynamicFunctionExecutor {
3
3
  getFunctionCodeMap(): Map<string, string>;
4
4
  F_001(dateTime: string): string;
5
5
  F_002(dateTime: string, elapsed: number, timeUnit: "year" | "month" | "week" | "day" | "cycle" | "hour" | "minute"): string;
6
+ F_003(): string;
7
+ F_004(dateTime: string, timeUnit: "year" | "month" | "day" | "hour" | "minute"): string;
6
8
  }
@@ -8,6 +8,8 @@ class TimeFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExec
8
8
  return new Map([
9
9
  ["Time.NextMonth", "F_001"],
10
10
  ["Time.AddTime", "F_002"],
11
+ ["Time.Now", "F_003"],
12
+ ["Time.GetTime", "F_004"]
11
13
  ]);
12
14
  }
13
15
  F_001(dateTime) {
@@ -20,6 +22,30 @@ class TimeFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExec
20
22
  }
21
23
  return moment(dateTime).add(elapsed, timeUnit).format("YYYY-MM-DD HH:mm:ss");
22
24
  }
25
+ F_003() {
26
+ return moment(Date.now()).format("YYYY-MM-DD HH:mm:ss");
27
+ }
28
+ 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
+ }
23
49
  }
24
50
  exports.TimeFunctionExecutor = TimeFunctionExecutor;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvVGltZUZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBQ2xFLHdDQUF5QztBQUV6QyxNQUFhLG9CQUFxQixTQUFRLGlEQUF1QjtJQUU3RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztZQUMzQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQjtRQUNsQixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBZ0IsRUFBRSxPQUFlLEVBQUUsUUFBeUU7UUFDOUcsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7WUFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDSjtBQXJCRCxvREFxQkMifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvVGltZUZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBQ2xFLHdDQUF5QztBQUV6QyxNQUFhLG9CQUFxQixTQUFRLGlEQUF1QjtJQUU3RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztZQUMzQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7WUFDekIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1lBQ3JCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQixFQUFFLE9BQWUsRUFBRSxRQUF5RTtRQUM5RyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELEtBQUs7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBc0Q7UUFDMUUsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDZixLQUFLLE1BQU07Z0JBQ1AsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssT0FBTztnQkFDUixTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUN0QixNQUFNO1lBQ1YsS0FBSyxLQUFLO2dCQUNOLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ3pCLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsU0FBUyxHQUFHLGVBQWUsQ0FBQztnQkFDNUIsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxTQUFTLEdBQUcsa0JBQWtCLENBQUM7Z0JBQy9CLE1BQU07UUFDZCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7Q0FDSjtBQWxERCxvREFrREMifQ==
@@ -4,10 +4,12 @@ import { ExpHelper } from "./ExpHelper";
4
4
  import { VarContextCapable } from "../interface/VarContextCapable";
5
5
  import { ExpHelperAware } from "../interface/ExpHelperAware";
6
6
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
7
+ import { OutsideApiService } from "../service/OutsideApiService";
7
8
  export declare class FunctionHelper implements FunctionInvoke, ExpHelperAware {
8
9
  private expCustomList;
9
10
  private funcExecutors;
10
11
  private expHelper;
12
+ private outsideApiService;
11
13
  constructor();
12
14
  setExpCustom(expCustom: any): void;
13
15
  getExpCustom(functionName: string): any;
@@ -16,6 +18,7 @@ export declare class FunctionHelper implements FunctionInvoke, ExpHelperAware {
16
18
  invoke(functionName: string, args: any[]): any;
17
19
  addExecutor(executorName: "Query" | "Kit" | "Time" | "fun" | "api", functionName: string, executor: FunctionInvoke): void;
18
20
  setExpHelper(expHelper: ExpHelper): void;
21
+ setOutsideApiService(outsideApiService: OutsideApiService): void;
19
22
  argsMatch(paramList: {
20
23
  paramValue: string;
21
24
  paramValueObj: AssignmentClauseInfo;
@@ -53,16 +53,13 @@ class FunctionHelper {
53
53
  }
54
54
  });
55
55
  }
56
- let funcExecutorsIterator = this.funcExecutors.values();
57
- let funcExecutor = null;
58
- while ((funcExecutor = funcExecutorsIterator.next().value) != null) {
59
- if (funcExecutor.invokeEnable(functionName)) {
60
- return funcExecutor.invoke(functionName, args);
56
+ let executorsIterator = this.funcExecutors.values();
57
+ let executor = null;
58
+ while ((executor = executorsIterator.next().value) != null) {
59
+ if (executor.invokeEnable(functionName)) {
60
+ return executor.invoke(functionName, args);
61
61
  }
62
62
  }
63
- // if (this.funcHandle.invokeEnable(functionName)) {
64
- // return this.funcHandle.invoke(functionName, args);
65
- // }
66
63
  throw new Error("invoke fail [FunctionHelper]...");
67
64
  }
68
65
  addExecutor(executorName, functionName, executor) {
@@ -71,6 +68,14 @@ class FunctionHelper {
71
68
  setExpHelper(expHelper) {
72
69
  this.expHelper = expHelper;
73
70
  }
71
+ setOutsideApiService(outsideApiService) {
72
+ this.outsideApiService = outsideApiService;
73
+ let executorsIterator = this.funcExecutors.values();
74
+ let executor = null;
75
+ while ((executor = executorsIterator.next().value) != null) {
76
+ executor.setOutsideApiService(this.outsideApiService);
77
+ }
78
+ }
74
79
  /*
75
80
  * 参数校验
76
81
  */
@@ -113,4 +118,4 @@ class FunctionHelper {
113
118
  }
114
119
  }
115
120
  exports.FunctionHelper = FunctionHelper;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVyL0Z1bmN0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHNGQUFpRjtBQUNqRixrRkFBNkU7QUFDN0Usb0ZBQStFO0FBQy9FLGtGQUE2RTtBQUM3RSxrRkFBNkU7QUFLN0UsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUV6RixNQUFhLGNBQWM7SUFRdkI7UUFOUSxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUUxQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBSy9ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLDZDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksMkNBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLHlDQUFtQixFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFjO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUEwQixFQUFFLGlCQUF5QztRQUNsRixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzVCLFlBQVksR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQjtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBb0IsRUFBRSxJQUFXO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLFlBQVksV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyRCxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSTtnQkFDNUQsYUFBYSxDQUFDLE9BQWU7b0JBQ3pCLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEMsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakUsSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNMLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQseURBQXlEO1FBQ3pELElBQUk7UUFFSixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFzRCxFQUFFLFlBQW9CLEVBQUUsUUFBd0I7UUFDOUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW9CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxTQUF3RSxFQUN4RSxlQUFxRSxFQUNyRSxnQkFBNkQ7UUFDbkUsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksV0FBVyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN6QixPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxXQUFXLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLENBQUMsVUFBVSxRQUFRLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25GLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDakQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuQixJQUFJLFFBQVEsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDOUIsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDckIsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLFFBQVEsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUEvSEQsd0NBK0hDIn0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnVuY3Rpb25IZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVyL0Z1bmN0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHNGQUFpRjtBQUNqRixrRkFBNkU7QUFDN0Usb0ZBQStFO0FBQy9FLGtGQUE2RTtBQUM3RSxrRkFBNkU7QUFNN0UsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUV6RixNQUFhLGNBQWM7SUFVdkI7UUFSUSxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUUxQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBTy9ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLDZDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksMkNBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLHlDQUFtQixFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSx5Q0FBbUIsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFjO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdC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
@@ -0,0 +1,5 @@
1
+ import { GetPostInvoke } from "../interface/GetPostInvoke";
2
+ export declare abstract class GetPostHelper implements GetPostInvoke {
3
+ doGet(url: string, payloadData: any): any;
4
+ doPost(url: string, payloadData: any): any;
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetPostHelper = void 0;
4
+ class GetPostHelper {
5
+ doGet(url, payloadData) {
6
+ throw new Error(`这是个空实现,不能被调用!| url = ${url}, payloadData = ${payloadData}`);
7
+ }
8
+ doPost(url, payloadData) {
9
+ throw new Error(`这是个空实现,不能被调用!| url = ${url}, payloadData = ${payloadData}`);
10
+ }
11
+ }
12
+ exports.GetPostHelper = GetPostHelper;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2V0UG9zdEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXIvR2V0UG9zdEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFzQixhQUFhO0lBRS9CLEtBQUssQ0FBQyxHQUFXLEVBQUUsV0FBZ0I7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxtQkFBbUIsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxXQUFnQjtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixHQUFHLG1CQUFtQixXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDSjtBQVRELHNDQVNDIn0=
@@ -19,7 +19,7 @@ export declare class PolicyHelper implements VarContextCapable<any>, Calculator,
19
19
  protected expHelper: ExpHelper;
20
20
  protected functionHelper: FunctionHelper;
21
21
  private audienceInfo;
22
- constructor(policyInfo: PolicyInfo);
22
+ constructor(policyInfo: PolicyInfo, functionHelper: FunctionHelper);
23
23
  init(varContextCapable: VarContextCapable<any>, checkConditions: boolean): void;
24
24
  setVarContractDeclaration(varName: string, varValue: any): void;
25
25
  getVarContractDeclarationList(): any[];
@@ -5,7 +5,7 @@ const ExpHelper_1 = require("./ExpHelper");
5
5
  const FunctionHelper_1 = require("./FunctionHelper");
6
6
  const ContractDeclarationHelper_1 = require("./ContractDeclarationHelper");
7
7
  class PolicyHelper {
8
- constructor(policyInfo) {
8
+ constructor(policyInfo, functionHelper) {
9
9
  this.varContractDeclarationMap = new Map();
10
10
  this.varContractDeclarationList = [];
11
11
  this.varGlobalList = [];
@@ -15,7 +15,12 @@ class PolicyHelper {
15
15
  this.policyInfo = policyInfo;
16
16
  this.contractDeclarationHelper = new ContractDeclarationHelper_1.ContractDeclarationHelper();
17
17
  this.expHelper = new ExpHelper_1.ExpHelper();
18
- this.functionHelper = new FunctionHelper_1.FunctionHelper();
18
+ if (functionHelper != null) {
19
+ this.functionHelper = functionHelper;
20
+ }
21
+ else {
22
+ this.functionHelper = new FunctionHelper_1.FunctionHelper();
23
+ }
19
24
  this.expHelper.setFunctionHelper(this.functionHelper);
20
25
  this.functionHelper.setExpHelper(this.expHelper);
21
26
  }
@@ -215,4 +220,4 @@ class PolicyHelper {
215
220
  }
216
221
  }
217
222
  exports.PolicyHelper = PolicyHelper;
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQUtoRCwyRUFBc0U7QUFJdEUsTUFBYSxZQUFZO0lBc0JyQixZQUFZLFVBQXNCO1FBbEJ4Qiw4QkFBeUIsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztRQUUxRSwrQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFFaEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFckIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUVuRCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQVFwQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUd0QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxxREFBeUIsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLCtCQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxJQUFJLENBQUMsaUJBQXlDLEVBQUUsZUFBd0I7UUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFM0U7O1dBRUc7UUFDSCxJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxz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
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQUtoRCwyRUFBc0U7QUFJdEUsTUFBYSxZQUFZO0lBc0JyQixZQUFZLFVBQXNCLEVBQUUsY0FBOEI7UUFsQnhELDhCQUF5QixHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO1FBRTFFLCtCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUVoQyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUVyQixpQkFBWSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBRW5ELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBUXBCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBR3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHFEQUF5QixFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztRQUNqQyxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLElBQUksQ0FBQyxpQkFBeUMsRUFBRSxlQUF3QjtRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFH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
@@ -0,0 +1,4 @@
1
+ export interface GetPostInvoke {
2
+ doGet(url: string, payloadData: any): any;
3
+ doPost(url: string, payloadData: any): any;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2V0UG9zdEludm9rZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2UvR2V0UG9zdEludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,17 @@
1
+ import { GetPostInvoke } from "../interface/GetPostInvoke";
2
+ export declare class OutsideApiService {
3
+ private getPostInvoke;
4
+ private apiAddressMap;
5
+ resourceCountOfUpdates(args: {
6
+ subject: any;
7
+ interval?: "PAST_MONTH";
8
+ startTime?: string;
9
+ limitTime?: string;
10
+ }): number;
11
+ setGetPostInvoke(getPostInvoke: GetPostInvoke): void;
12
+ setApiAddress(name: string, url: string): void;
13
+ setApiAddressMulti(tuples: {
14
+ name: string;
15
+ url: string;
16
+ }[]): void;
17
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OutsideApiService = void 0;
4
+ class OutsideApiService {
5
+ constructor() {
6
+ this.apiAddressMap = new Map();
7
+ }
8
+ resourceCountOfUpdates(args) {
9
+ return this.getPostInvoke.doPost(this.apiAddressMap.get("resourceCountOfUpdates"), args);
10
+ }
11
+ setGetPostInvoke(getPostInvoke) {
12
+ this.getPostInvoke = getPostInvoke;
13
+ }
14
+ setApiAddress(name, url) {
15
+ this.apiAddressMap.set(name, url);
16
+ }
17
+ setApiAddressMulti(tuples) {
18
+ for (let tuple of tuples) {
19
+ this.setApiAddress(tuple.name, tuple.url);
20
+ }
21
+ }
22
+ }
23
+ exports.OutsideApiService = OutsideApiService;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0c2lkZUFwaVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9PdXRzaWRlQXBpU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGlCQUFpQjtJQUE5QjtRQUlZLGtCQUFhLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO0lBd0IzRSxDQUFDO0lBdEJHLHNCQUFzQixDQUFDLElBS3RCO1FBQ0csT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxhQUE0QjtRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBdUM7UUFDdEQsS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUE1QkQsOENBNEJDIn0=
package/index.js CHANGED
@@ -15,6 +15,8 @@ const {ExpHelper} = require("./dist/helper/ExpHelper");
15
15
  const {DefaultContractDeclarationExecutor} = require("./dist/contract-declaration-executor/DefaultContractDeclarationExecutor");
16
16
  const {DefaultFunctionExecutor} = require("./dist/function-executor/DefaultFunctionExecutor");
17
17
  const {CollectionPolicyCustomDataVisitor} = require("./CollectionPolicyCustomDataVisitor");
18
+ const {OutsideApiService} = require("./dist/service/OutsideApiService");
19
+ const {GetPostHelper} = require("./dist/helper/GetPostHelper");
18
20
 
19
21
  exports.PolicyHelper = PolicyHelper;
20
22
  exports.FunctionHelper = FunctionHelper
@@ -25,6 +27,9 @@ exports.VarContextCapable = VarContextCapable;
25
27
  exports.DefaultContractDeclarationExecutor = DefaultContractDeclarationExecutor;
26
28
  exports.DefaultFunctionExecutor = DefaultFunctionExecutor;
27
29
 
30
+ exports.OutsideApiService = OutsideApiService;
31
+ exports.GetPostHelper = GetPostHelper;
32
+
28
33
  exports.compile = async function (serviceName, policyText) {
29
34
  let chars = new antlr4.InputStream(policyText);
30
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@freelog/freelog-cg-collection",
3
- "version": "1.0.23",
3
+ "version": "1.1.1",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "antlr4": "4.8.0",
@@ -33,11 +33,62 @@
33
33
  "variableChainList": []
34
34
  },
35
35
  "varValueType": "number"
36
+ },
37
+ {
38
+ "type": "varGlobal",
39
+ "content": "c=Query.ResourceService.CountOfUpdates({\"subject\":policy.subject,\"startTime\":\"2025-01-01 00:00:00\",\"limitTime\":\"2025-05-01 00:00:00\"})",
40
+ "varName": "c",
41
+ "varValue": "Query.ResourceService.CountOfUpdates({\"subject\":policy.subject,\"startTime\":\"2025-01-01 00:00:00\",\"limitTime\":\"2025-05-01 00:00:00\"})",
42
+ "varValueObj": {
43
+ "funcName": "CountOfUpdates",
44
+ "variableChainList": [
45
+ "policy.subject"
46
+ ],
47
+ "paramList": [
48
+ {
49
+ "paramValue": "{\"subject\":policy.subject,\"startTime\":\"2025-01-01 00:00:00\",\"limitTime\":\"2025-05-01 00:00:00\"}",
50
+ "paramValueObj": {
51
+ "expType": "expArgsGroup",
52
+ "paramList": [
53
+ {
54
+ "paramName": "subject",
55
+ "paramValue": "policy.subject",
56
+ "paramValueObj": {
57
+ "expType": "variableChain",
58
+ "varType": "normal",
59
+ "content": "policy.subject"
60
+ }
61
+ },
62
+ {
63
+ "paramName": "startTime",
64
+ "paramValue": "\"2025-01-01 00:00:00\"",
65
+ "paramValueObj": {
66
+ "expType": "string",
67
+ "value": "2025-01-01 00:00:00"
68
+ }
69
+ },
70
+ {
71
+ "paramName": "limitTime",
72
+ "paramValue": "\"2025-05-01 00:00:00\"",
73
+ "paramValueObj": {
74
+ "expType": "string",
75
+ "value": "2025-05-01 00:00:00"
76
+ }
77
+ }
78
+ ]
79
+ },
80
+ "content": "{\"subject\":policy.subject,\"startTime\":\"2025-01-01 00:00:00\",\"limitTime\":\"2025-05-01 00:00:00\"}"
81
+ }
82
+ ],
83
+ "expType": "functionCall",
84
+ "varChain": "Query.ResourceService"
85
+ },
86
+ "varValueType": "number"
36
87
  }
37
88
  ],
38
89
  "stateMachine": [
39
90
  {
40
- "stateName": "Initial2",
91
+ "stateName": "Initial",
41
92
  "assignments": [
42
93
  {
43
94
  "type": "varInitial",
@@ -4,6 +4,8 @@ subject = Presentable.<连载小说>
4
4
 
5
5
  lockupDays = 10
6
6
 
7
+ c = Query.ResourceService.CountOfUpdates({"subject":policy.subject, "startTime":"2025-01-01 00:00:00", "limitTime":"2025-05-01 00:00:00"})
8
+
7
9
  Initial:
8
10
  let startTime = Time.Now()
9
11
  Event.Void() -> Auth[startTime:startTime]
@@ -9,7 +9,7 @@ export class ExpArgsGroupCalculator implements Calculator,ExpHelperAware {
9
9
 
10
10
  private expHelper: ExpHelper;
11
11
 
12
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any {
12
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
13
13
  if (varObj.expType == "expArgsGroup") {
14
14
  return this.generateExpArgsGroupValue(varObj as any, varContextCapable);
15
15
  }
@@ -11,10 +11,10 @@ export class ExpBooleanCalculator implements Calculator, ExpHelperAware {
11
11
 
12
12
  private expHelper: ExpHelper;
13
13
 
14
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): boolean {
14
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<boolean> {
15
15
  if (varObj.expType == "expBooleanOpLogic") {
16
16
  return this.calculateExpBooleanOpLogic(varObj as any, varContextCapable);
17
- }
17
+ }2
18
18
  if (varObj.expType == "expBooleanOpCollection") {
19
19
  return this.calculateExpBooleanOpCollection(varObj as any, varContextCapable);
20
20
  }
@@ -31,7 +31,7 @@ export class ExpBooleanCalculator implements Calculator, ExpHelperAware {
31
31
  throw new Error("getExpValue fail [ExpBooleanCalculator]...");
32
32
  }
33
33
 
34
- private calculateExpBooleanOpLogic(expBooleanOpLogic: ExpBooleanOpLogic, varContextCapable: VarContextCapable<any>): boolean {
34
+ private async calculateExpBooleanOpLogic(expBooleanOpLogic: ExpBooleanOpLogic, varContextCapable: VarContextCapable<any>): Promise<boolean> {
35
35
  let var1 = this.expHelper.getExpValue(expBooleanOpLogic.var1, varContextCapable);
36
36
  if (expBooleanOpLogic.op == "not") {
37
37
  return !var1;
@@ -48,9 +48,9 @@ export class ExpBooleanCalculator implements Calculator, ExpHelperAware {
48
48
  return false;
49
49
  }
50
50
 
51
- private calculateExpBooleanOpCollection(expBooleanOpCollection: ExpBooleanOpCollection, varContextCapable: VarContextCapable<any>): boolean {
52
- let var1 = this.expHelper.getExpValue(expBooleanOpCollection.var1, varContextCapable);
53
- let var2 = this.expHelper.getExpValue(expBooleanOpCollection.var2, varContextCapable);
51
+ private async calculateExpBooleanOpCollection(expBooleanOpCollection: ExpBooleanOpCollection, varContextCapable: VarContextCapable<any>): Promise<boolean> {
52
+ let var1 = await this.expHelper.getExpValue(expBooleanOpCollection.var1, varContextCapable);
53
+ let var2 = await this.expHelper.getExpValue(expBooleanOpCollection.var2, varContextCapable);
54
54
  if (expBooleanOpCollection.op == "in") {
55
55
  return var2.indexOf(var1) != -1;
56
56
  }
@@ -14,7 +14,7 @@ export class ExpCalculator implements Calculator, FunctionHelperAware, ExpHelper
14
14
 
15
15
  private expHelper: ExpHelper;
16
16
 
17
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any {
17
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
18
18
  if (varObj.expType == "expOp") {
19
19
  return this.calculateExpOp(varObj as any, varContextCapable);
20
20
  }
@@ -51,7 +51,7 @@ export class ExpCalculator implements Calculator, FunctionHelperAware, ExpHelper
51
51
  return eval(expStr);
52
52
  }
53
53
 
54
- private calculateExpSigned(expSigned: ExpSigned, varContextCapable: VarContextCapable<any>): number {
54
+ private async calculateExpSigned(expSigned: ExpSigned, varContextCapable: VarContextCapable<any>): Promise<number> {
55
55
  let var1 = this.expHelper.getExpValue(expSigned.var1, varContextCapable);
56
56
  if (expSigned.symbol == "-") {
57
57
  return -var1;
@@ -9,7 +9,7 @@ export class ExpConditionCalculator implements Calculator, ExpHelperAware {
9
9
 
10
10
  private expHelper: ExpHelper;
11
11
 
12
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any {
12
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
13
13
  if (varObj.expType == "expCondition") {
14
14
  return this.generateExpConditionValue(varObj as any, varContextCapable);
15
15
  }
@@ -1,8 +1,15 @@
1
1
  import {FunctionInvoke} from "../interface/FunctionInvoke";
2
+ import {OutsideApiService} from "../service/OutsideApiService";
2
3
 
3
4
  export abstract class DefaultFunctionExecutor implements FunctionInvoke {
4
5
 
5
- invoke(functionName: string, args: any[]): any {
6
+ protected outsideApiService: OutsideApiService;
7
+
8
+ setOutsideApiService(outsideApiService: OutsideApiService) {
9
+ this.outsideApiService = outsideApiService;
10
+ }
11
+
12
+ async invoke(functionName: string, args: any[]): Promise<any> {
6
13
  throw new Error("这是个空实现,不能被调用!");
7
14
  }
8
15
 
@@ -9,23 +9,25 @@ export class DynamicFunctionExecutor extends DefaultFunctionExecutor {
9
9
  return this.executorsMap.has(functionName) || this.getFunctionCodeMap().has(functionName);
10
10
  }
11
11
 
12
- invoke(functionName: string, args: any[]): any {
12
+ async invoke(functionName: string, args: any[]): Promise<any> {
13
13
  if (this.executorsMap.has(functionName)) {
14
14
  return this.executorsMap.get(functionName).invoke(functionName, args);
15
15
  }
16
16
  if (this.getFunctionCodeMap().has(functionName)) {
17
17
  let functionCode = this.getFunctionCodeMap().get(functionName);
18
- let argsStr = "";
19
- for (let i = 0; i < args.length; i++) {
20
- if (i == 0) {
21
- argsStr = JSON.stringify(args[i]);
22
- } else {
23
- argsStr = argsStr + "," + JSON.stringify(args[i]);
24
- }
25
- }
26
- let expStr = `this.${functionCode}(${argsStr})`;
27
-
28
- return eval(expStr);
18
+ // let argsStr = "";
19
+ // for (let i = 0; i < args.length; i++) {
20
+ // if (i == 0) {
21
+ // argsStr = JSON.stringify(args[i]);
22
+ // } else {
23
+ // argsStr = argsStr + "," + JSON.stringify(args[i]);
24
+ // }
25
+ // }
26
+ // let expStr = `this.${functionCode}(${argsStr})`;
27
+
28
+ return Reflect.apply(this[functionCode], this, args);
29
+
30
+ // return eval(expStr);
29
31
  }
30
32
 
31
33
  throw new Error("该函数未实现");
@@ -7,7 +7,8 @@ export class KitFunctionExecutor extends DynamicFunctionExecutor {
7
7
  ["Kit.Max", "F_001"],
8
8
  ["Kit.IsNull", "F_002"],
9
9
  ["Kit.Array.Size", "F_003"],
10
- ["Kit.Echo.IncludeLabel", "F_004"]
10
+ ["Kit.Echo.IncludeLabel", "F_004"],
11
+ ["Kit.Min", "F_005"],
11
12
  ]);
12
13
  }
13
14
 
@@ -26,4 +27,8 @@ export class KitFunctionExecutor extends DynamicFunctionExecutor {
26
27
  F_004(labels: any[], labelName: string): number {
27
28
  throw new Error("该函数未实现【Kit.Echo.IncludeLabel】");
28
29
  }
30
+
31
+ F_005(va1: any, var2: any): any {
32
+ return va1 <= var2 ? va1 : var2;
33
+ }
29
34
  }
@@ -13,8 +13,9 @@ export class QueryFunctionExecutor extends DynamicFunctionExecutor {
13
13
  ]);
14
14
  }
15
15
 
16
- F_001(args: { subject: any, interval?: "PAST_MONTH", startTime?: string, limitTime?: string }): number {
17
- throw new Error("该函数未实现【Query.ResourceService.CountOfUpdates】");
16
+ async F_001(args: { subject: any, interval?: "PAST_MONTH", startTime?: string, limitTime?: string }): Promise<number> {
17
+ return this.outsideApiService.resourceCountOfUpdates(args);
18
+ // throw new Error("该函数未实现【Query.ResourceService.CountOfUpdates】");
18
19
  }
19
20
 
20
21
  F_002(subject: any, licensee: any): string[] {
@@ -7,6 +7,8 @@ export class TimeFunctionExecutor extends DynamicFunctionExecutor {
7
7
  return new Map<string, string>([
8
8
  ["Time.NextMonth", "F_001"],
9
9
  ["Time.AddTime", "F_002"],
10
+ ["Time.Now", "F_003"],
11
+ ["Time.GetTime", "F_004"]
10
12
  ]);
11
13
  }
12
14
 
@@ -22,4 +24,31 @@ export class TimeFunctionExecutor extends DynamicFunctionExecutor {
22
24
 
23
25
  return moment(dateTime).add(elapsed, timeUnit).format("YYYY-MM-DD HH:mm:ss");
24
26
  }
27
+
28
+ F_003(): string {
29
+ return moment(Date.now()).format("YYYY-MM-DD HH:mm:ss");
30
+ }
31
+
32
+ F_004(dateTime: string, timeUnit: "year" | "month" | "day" | "hour" | "minute"): string {
33
+ let formatStr = null;
34
+ switch (timeUnit) {
35
+ case "year":
36
+ formatStr = "YYYY";
37
+ break;
38
+ case "month":
39
+ formatStr = "YYYY-MM";
40
+ break;
41
+ case "day":
42
+ formatStr = "YYYY-MM-DD";
43
+ break;
44
+ case "hour":
45
+ formatStr = "YYYY-MM-DD HH";
46
+ break;
47
+ case "minute":
48
+ formatStr = "YYYY-MM-DD HH:mm";
49
+ break;
50
+ }
51
+
52
+ return moment(moment(Date.now()).format(formatStr)).format("YYYY-MM-DD HH:mm:ss");
53
+ }
25
54
  }
@@ -21,7 +21,7 @@ export class ExpHelper implements Calculator, FunctionHelperAware {
21
21
  this.calculatorFactory = factoryBuilder.build();
22
22
  }
23
23
 
24
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any {
24
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
25
25
  console.debug(`getExpValue 【ExpHelper】${JSON.stringify(varObj)}`);
26
26
 
27
27
  let calculator = this.calculatorFactory.getCalculatorByExpType(varObj.expType);
@@ -10,6 +10,7 @@ import {ApiFunctionExecutor} from "../function-executor/ApiFunctionExecutor";
10
10
  import {DynamicFunctionExecutor} from "../function-executor/DynamicFunctionExecutor";
11
11
  import {ExpHelperAware} from "../interface/ExpHelperAware";
12
12
  import {AssignmentClauseInfo} from "../model/AssignmentClauseInfo";
13
+ import {OutsideApiService} from "../service/OutsideApiService";
13
14
 
14
15
  const function_configs = require("../../resources/context_config/function_configs.json");
15
16
 
@@ -21,6 +22,8 @@ export class FunctionHelper implements FunctionInvoke, ExpHelperAware {
21
22
 
22
23
  private expHelper: ExpHelper;
23
24
 
25
+ private outsideApiService: OutsideApiService;
26
+
24
27
  constructor() {
25
28
  this.funcExecutors.set("Query", new QueryFunctionExecutor());
26
29
  this.funcExecutors.set("Kit", new KitFunctionExecutor());
@@ -40,7 +43,7 @@ export class FunctionHelper implements FunctionInvoke, ExpHelperAware {
40
43
  });
41
44
  }
42
45
 
43
- getFunctionValue(funcInfo: FunctionCallInfo, varContextCapable: VarContextCapable<any>): any {
46
+ async getFunctionValue(funcInfo: FunctionCallInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
44
47
  let args = funcInfo.paramList.map(paramElem => {
45
48
  return this.expHelper.getExpValue(paramElem.paramValueObj, varContextCapable);
46
49
  });
@@ -56,7 +59,7 @@ export class FunctionHelper implements FunctionInvoke, ExpHelperAware {
56
59
  throw new Error("这是个空实现,不能被调用!");
57
60
  }
58
61
 
59
- invoke(functionName: string, args: any[]): any {
62
+ async invoke(functionName: string, args: any[]): Promise<any> {
60
63
  console.debug(`invoke 【FunctionHelper】functionName = ${functionName} args = ${args}`);
61
64
 
62
65
  let expCustom = this.getExpCustom(functionName);
@@ -72,18 +75,14 @@ export class FunctionHelper implements FunctionInvoke, ExpHelperAware {
72
75
  });
73
76
  }
74
77
 
75
- let funcExecutorsIterator = this.funcExecutors.values();
76
- let funcExecutor = null;
77
- while ((funcExecutor = funcExecutorsIterator.next().value) != null) {
78
- if (funcExecutor.invokeEnable(functionName)) {
79
- return funcExecutor.invoke(functionName, args);
78
+ let executorsIterator = this.funcExecutors.values();
79
+ let executor = null;
80
+ while ((executor = executorsIterator.next().value) != null) {
81
+ if (executor.invokeEnable(functionName)) {
82
+ return executor.invoke(functionName, args);
80
83
  }
81
84
  }
82
85
 
83
- // if (this.funcHandle.invokeEnable(functionName)) {
84
- // return this.funcHandle.invoke(functionName, args);
85
- // }
86
-
87
86
  throw new Error("invoke fail [FunctionHelper]...");
88
87
  }
89
88
 
@@ -95,6 +94,15 @@ export class FunctionHelper implements FunctionInvoke, ExpHelperAware {
95
94
  this.expHelper = expHelper;
96
95
  }
97
96
 
97
+ setOutsideApiService(outsideApiService: OutsideApiService): void {
98
+ this.outsideApiService = outsideApiService;
99
+ let executorsIterator = this.funcExecutors.values();
100
+ let executor = null;
101
+ while ((executor = executorsIterator.next().value) != null) {
102
+ executor.setOutsideApiService(this.outsideApiService);
103
+ }
104
+ }
105
+
98
106
  /*
99
107
  * 参数校验
100
108
  */
@@ -0,0 +1,12 @@
1
+ import {GetPostInvoke} from "../interface/GetPostInvoke";
2
+
3
+ export abstract class GetPostHelper implements GetPostInvoke {
4
+
5
+ doGet(url: string, payloadData: any): any {
6
+ throw new Error(`这是个空实现,不能被调用!| url = ${url}, payloadData = ${payloadData}`);
7
+ }
8
+
9
+ doPost(url: string, payloadData: any): any {
10
+ throw new Error(`这是个空实现,不能被调用!| url = ${url}, payloadData = ${payloadData}`);
11
+ }
12
+ }
@@ -32,17 +32,21 @@ export class PolicyHelper implements VarContextCapable<any>, Calculator, Functio
32
32
 
33
33
  private audienceInfo = {};
34
34
 
35
- constructor(policyInfo: PolicyInfo) {
35
+ constructor(policyInfo: PolicyInfo, functionHelper: FunctionHelper) {
36
36
  this.policyInfo = policyInfo;
37
37
  this.contractDeclarationHelper = new ContractDeclarationHelper();
38
38
  this.expHelper = new ExpHelper();
39
- this.functionHelper = new FunctionHelper();
39
+ if (functionHelper != null) {
40
+ this.functionHelper = functionHelper;
41
+ } else {
42
+ this.functionHelper = new FunctionHelper();
43
+ }
40
44
  this.expHelper.setFunctionHelper(this.functionHelper);
41
45
  this.functionHelper.setExpHelper(this.expHelper);
42
46
  }
43
47
 
44
48
  // 在合约签约的时候,可签约条件和全局申明的变量是已经计算完毕的,在这里做这件事
45
- init(varContextCapable: VarContextCapable<any>, checkConditions: boolean) {
49
+ async init(varContextCapable: VarContextCapable<any>, checkConditions: boolean) {
46
50
  this.audienceInfo["audiences"] = this.policyInfo.audienceSection.audiences;
47
51
 
48
52
  /*
@@ -108,7 +112,7 @@ export class PolicyHelper implements VarContextCapable<any>, Calculator, Functio
108
112
  if (this.audienceInfo["condition"]["echoSubject"] != null && this.audienceInfo["condition"]["labels"] != null) {
109
113
  let echoSubject = this.audienceInfo["condition"]["echoSubject"];
110
114
  let contractLicensee = this.getVarContext("contract.licensee");
111
- let labels = this.invoke("Query.EchoService.Labels", [echoSubject, contractLicensee]);
115
+ let labels = await this.invoke("Query.EchoService.Labels", [echoSubject, contractLicensee]);
112
116
  if (labels.filter(label => this.audienceInfo["condition"]["labels"].indexOf(label) != -1).length != this.audienceInfo["condition"]["labels"].length) {
113
117
  throw new Error(`【echoSubject】【labels】验证失败!`);
114
118
  }
@@ -130,7 +134,7 @@ export class PolicyHelper implements VarContextCapable<any>, Calculator, Functio
130
134
  for (let varDeclaration of varDeclarationList) {
131
135
  if (varDeclaration.type == "varGlobal") {
132
136
  if (this.getVarGlobal(varDeclaration.varName) == null) {
133
- let value = this.getExpValue(varDeclaration.varValueObj, varContextCapable);
137
+ let value = await this.getExpValue(varDeclaration.varValueObj, varContextCapable);
134
138
  this.setVarGlobal(varDeclaration.varName, value);
135
139
  }
136
140
  }
@@ -240,7 +244,7 @@ export class PolicyHelper implements VarContextCapable<any>, Calculator, Functio
240
244
  return this.contractDeclarationHelper.execute(varObj["keyword"], varObj);
241
245
  }
242
246
 
243
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any {
247
+ async getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any> {
244
248
  return this.expHelper.getExpValue(varObj, varContextCapable);
245
249
  }
246
250
 
@@ -248,7 +252,7 @@ export class PolicyHelper implements VarContextCapable<any>, Calculator, Functio
248
252
  throw new Error("这是个空实现,不能被调用!");
249
253
  }
250
254
 
251
- invoke(functionName: string, args: any[]): any {
255
+ async invoke(functionName: string, args: any[]): Promise<any> {
252
256
  return this.functionHelper.invoke(functionName, args);
253
257
  }
254
258
 
@@ -2,5 +2,5 @@ import {AssignmentClauseInfo} from "../model/AssignmentClauseInfo";
2
2
  import {VarContextCapable} from "./VarContextCapable";
3
3
 
4
4
  export interface Calculator {
5
- getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
5
+ getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): Promise<any>;
6
6
  }
@@ -2,5 +2,5 @@ export interface FunctionInvoke {
2
2
 
3
3
  invokeEnable(functionName: string): boolean;
4
4
 
5
- invoke(functionName: string, args: any[]): any;
5
+ invoke(functionName: string, args: any[]): Promise<any>;
6
6
  }
@@ -0,0 +1,6 @@
1
+ export interface GetPostInvoke {
2
+
3
+ doGet(url: string, payloadData: any): Promise<any>;
4
+
5
+ doPost(url: string, payloadData: any): Promise<any>;
6
+ }
@@ -0,0 +1,31 @@
1
+ import {GetPostInvoke} from "../interface/GetPostInvoke";
2
+
3
+ export class OutsideApiService {
4
+
5
+ private getPostInvoke: GetPostInvoke;
6
+
7
+ private apiAddressMap: Map<string, string> = new Map<string, string>();
8
+
9
+ async resourceCountOfUpdates(args: {
10
+ subject: any,
11
+ interval?: "PAST_MONTH",
12
+ startTime?: string,
13
+ limitTime?: string
14
+ }): Promise<number> {
15
+ return this.getPostInvoke.doPost(this.apiAddressMap.get("resourceCountOfUpdates"), args);
16
+ }
17
+
18
+ setGetPostInvoke(getPostInvoke: GetPostInvoke) {
19
+ this.getPostInvoke = getPostInvoke;
20
+ }
21
+
22
+ setApiAddress(name: string, url: string) {
23
+ this.apiAddressMap.set(name, url);
24
+ }
25
+
26
+ setApiAddressMulti(tuples: { name: string, url: string }[]) {
27
+ for (let tuple of tuples) {
28
+ this.setApiAddress(tuple.name, tuple.url);
29
+ }
30
+ }
31
+ }
@@ -1,5 +1,5 @@
1
1
  import {FunFunctionExecutor} from "../../src/function-executor/FunFunctionExecutor";
2
- import {FunAddElements} from "./FunAddElements";
2
+ import {FunAddElements} from "./fun/FunAddElements";
3
3
 
4
4
  describe("test/function/FunctionFunExecutorTest.test.ts", () => {
5
5
  it("invoke", async () => {
@@ -1,8 +1,8 @@
1
- import {DefaultFunctionExecutor} from "../../src/function-executor/DefaultFunctionExecutor";
1
+ import {DefaultFunctionExecutor} from "../../../src/function-executor/DefaultFunctionExecutor";
2
2
 
3
3
  export class ApiContractQuerySignCount extends DefaultFunctionExecutor {
4
4
 
5
- invoke(functionName: string, args: any[]): number {
5
+ async invoke(functionName: string, args: any[]): Promise<number> {
6
6
  console.debug(`invoke 【ApiContractQuerySignCount】functionName = ${functionName} args = ${args}`);
7
7
 
8
8
  return -1;
@@ -1,8 +1,8 @@
1
- import {DefaultFunctionExecutor} from "../../src/function-executor/DefaultFunctionExecutor";
1
+ import {DefaultFunctionExecutor} from "../../../src/function-executor/DefaultFunctionExecutor";
2
2
 
3
3
  export class FunAddElements extends DefaultFunctionExecutor {
4
4
 
5
- invoke(functionName: string, args: any[]): any {
5
+ async invoke(functionName: string, args: any[]): Promise<any> {
6
6
  console.debug(`invoke 【FunAddElements】functionName = ${functionName} args = ${args}`);
7
7
 
8
8
  args[0].push(...args[1]);
@@ -1,8 +1,8 @@
1
- import {DefaultFunctionExecutor} from "../../src/function-executor/DefaultFunctionExecutor";
1
+ import {DefaultFunctionExecutor} from "../../../src/function-executor/DefaultFunctionExecutor";
2
2
 
3
3
  export class QueryEchoServiceLabels extends DefaultFunctionExecutor {
4
4
 
5
- invoke(functionName: string, args: any[]): string[] {
5
+ async invoke(functionName: string, args: any[]): Promise<string[]> {
6
6
  console.debug(`invoke 【QueryEchoServiceLabels】functionName = ${functionName} args = ${args}`);
7
7
 
8
8
  return ["vip1"];
@@ -0,0 +1,8 @@
1
+ import {GetPostHelper} from "../../src/helper/GetPostHelper";
2
+
3
+ export class CustomGetPostHelper extends GetPostHelper {
4
+
5
+ doPost(url: string, payloadData: any): any {
6
+ return -1;
7
+ }
8
+ }
@@ -1,15 +1,22 @@
1
1
  import * as fs from "fs";
2
2
  import {PolicyHelper} from "../../src/helper/PolicyHelper";
3
- import {ApiContractQuerySignCount} from "../function/ApiContractQuerySignCount";
4
- import {QueryEchoServiceLabels} from "../function/QueryEchoServiceLabels";
3
+ import {ApiContractQuerySignCount} from "../function/api/ApiContractQuerySignCount";
4
+ import {QueryEchoServiceLabels} from "../function/query/QueryEchoServiceLabels";
5
5
  import {USEContractDeclaration} from "../contract-declaration/USEContractDeclaration";
6
+ import {FunctionHelper} from "../../src/helper/FunctionHelper";
7
+ import {OutsideApiService} from "../../src/service/OutsideApiService";
8
+ import {CustomGetPostHelper} from "./CustomGetPostHelper";
6
9
 
7
10
  describe("test/helper/PolicyHelperTest.test.ts", () => {
8
11
  it("init", async () => {
9
12
 
10
13
  let source = JSON.parse(fs.readFileSync("./resources/zhaojn.json", "utf-8"))
11
14
 
12
- let policyHelper = new PolicyHelper(source);
15
+ let outsideApiService = new OutsideApiService();
16
+ outsideApiService.setGetPostInvoke(new CustomGetPostHelper());
17
+ let functionHelper = new FunctionHelper();
18
+ functionHelper.setOutsideApiService(outsideApiService);
19
+ let policyHelper = new PolicyHelper(source, functionHelper);
13
20
  policyHelper.addContractDeclarationExecutor("DEMAND", new USEContractDeclaration());
14
21
  policyHelper.addContractDeclarationExecutor("USE", new USEContractDeclaration());
15
22
  policyHelper.addExecutor("api", "api.contract.querySignCount", new ApiContractQuerySignCount());