@cloudpss/expression 0.6.0-alpha.9 → 0.6.0-beta.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 (157) hide show
  1. package/dist/analyze.d.ts +6 -3
  2. package/dist/analyze.d.ts.map +1 -1
  3. package/dist/analyze.js +13 -33
  4. package/dist/analyze.js.map +1 -1
  5. package/dist/definitions/argument.d.ts +3 -11
  6. package/dist/definitions/argument.d.ts.map +1 -1
  7. package/dist/definitions/constraint.d.ts +2 -2
  8. package/dist/definitions/constraint.d.ts.map +1 -1
  9. package/dist/definitions/constraint.js +1 -1
  10. package/dist/definitions/constraint.js.map +1 -1
  11. package/dist/definitions/parameter-group.js +4 -4
  12. package/dist/definitions/parameter-group.js.map +1 -1
  13. package/dist/definitions/parameter.d.ts +22 -14
  14. package/dist/definitions/parameter.d.ts.map +1 -1
  15. package/dist/definitions/parameter.js +10 -1
  16. package/dist/definitions/parameter.js.map +1 -1
  17. package/dist/definitions/utils.d.ts +28 -0
  18. package/dist/definitions/utils.d.ts.map +1 -0
  19. package/dist/definitions/utils.js +272 -0
  20. package/dist/definitions/utils.js.map +1 -0
  21. package/dist/definitions/variable.js +1 -1
  22. package/dist/definitions/variable.js.map +1 -1
  23. package/dist/definitions.d.ts +1 -2
  24. package/dist/definitions.d.ts.map +1 -1
  25. package/dist/definitions.js +1 -1
  26. package/dist/definitions.js.map +1 -1
  27. package/dist/eval.d.ts +3 -5
  28. package/dist/eval.d.ts.map +1 -1
  29. package/dist/eval.js +12 -20
  30. package/dist/eval.js.map +1 -1
  31. package/dist/expression.d.ts +10 -4
  32. package/dist/expression.d.ts.map +1 -1
  33. package/dist/expression.js +6 -6
  34. package/dist/expression.js.map +1 -1
  35. package/dist/index.d.ts +3 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +1 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/interface.d.ts +30 -0
  40. package/dist/interface.d.ts.map +1 -0
  41. package/dist/interface.js +6 -0
  42. package/dist/interface.js.map +1 -0
  43. package/dist/main.d.ts +41 -28
  44. package/dist/main.d.ts.map +1 -1
  45. package/dist/main.js +165 -149
  46. package/dist/main.js.map +1 -1
  47. package/dist/migrate.d.ts +1 -1
  48. package/dist/migrate.d.ts.map +1 -1
  49. package/dist/migrate.js +25 -4
  50. package/dist/migrate.js.map +1 -1
  51. package/dist/migrator/access.d.ts.map +1 -1
  52. package/dist/migrator/access.js +64 -29
  53. package/dist/migrator/access.js.map +1 -1
  54. package/dist/migrator/call.d.ts.map +1 -1
  55. package/dist/migrator/call.js +298 -201
  56. package/dist/migrator/call.js.map +1 -1
  57. package/dist/migrator/concat.d.ts.map +1 -1
  58. package/dist/migrator/concat.js +15 -2
  59. package/dist/migrator/concat.js.map +1 -1
  60. package/dist/migrator/function.d.ts +6 -0
  61. package/dist/migrator/function.d.ts.map +1 -0
  62. package/dist/migrator/function.js +25 -0
  63. package/dist/migrator/function.js.map +1 -0
  64. package/dist/migrator/interface.d.ts +3 -1
  65. package/dist/migrator/interface.d.ts.map +1 -1
  66. package/dist/migrator/interface.js.map +1 -1
  67. package/dist/migrator/node.d.ts.map +1 -1
  68. package/dist/migrator/node.js +55 -7
  69. package/dist/migrator/node.js.map +1 -1
  70. package/dist/migrator/operator.d.ts.map +1 -1
  71. package/dist/migrator/operator.js +107 -60
  72. package/dist/migrator/operator.js.map +1 -1
  73. package/dist/migrator/serialize.d.ts +4 -0
  74. package/dist/migrator/serialize.d.ts.map +1 -0
  75. package/dist/migrator/serialize.js +21 -0
  76. package/dist/migrator/serialize.js.map +1 -0
  77. package/dist/migrator/special.d.ts.map +1 -1
  78. package/dist/migrator/special.js +31 -0
  79. package/dist/migrator/special.js.map +1 -1
  80. package/dist/migrator/state.d.ts +4 -4
  81. package/dist/migrator/state.d.ts.map +1 -1
  82. package/dist/migrator/state.js +29 -31
  83. package/dist/migrator/state.js.map +1 -1
  84. package/dist/migrator/symbol.d.ts.map +1 -1
  85. package/dist/migrator/symbol.js +34 -12
  86. package/dist/migrator/symbol.js.map +1 -1
  87. package/dist/migrator/to-type.d.ts.map +1 -1
  88. package/dist/migrator/to-type.js +21 -4
  89. package/dist/migrator/to-type.js.map +1 -1
  90. package/dist/migrator/utils.d.ts +6 -0
  91. package/dist/migrator/utils.d.ts.map +1 -1
  92. package/dist/migrator/utils.js +49 -1
  93. package/dist/migrator/utils.js.map +1 -1
  94. package/dist/parser.d.ts +2 -2
  95. package/dist/parser.d.ts.map +1 -1
  96. package/dist/parser.js +27 -8
  97. package/dist/parser.js.map +1 -1
  98. package/dist/re-exports.d.ts +4 -0
  99. package/dist/re-exports.d.ts.map +1 -0
  100. package/dist/re-exports.js +3 -0
  101. package/dist/re-exports.js.map +1 -0
  102. package/dist/scope.d.ts +16 -17
  103. package/dist/scope.d.ts.map +1 -1
  104. package/dist/scope.js +84 -53
  105. package/dist/scope.js.map +1 -1
  106. package/dist/type.d.ts +22 -10
  107. package/dist/type.d.ts.map +1 -1
  108. package/dist/type.js +21 -24
  109. package/dist/type.js.map +1 -1
  110. package/package.json +8 -5
  111. package/src/analyze.ts +20 -39
  112. package/src/definitions/argument.ts +3 -13
  113. package/src/definitions/constraint.ts +3 -3
  114. package/src/definitions/parameter-group.ts +4 -4
  115. package/src/definitions/parameter.ts +47 -24
  116. package/src/definitions/utils.ts +288 -0
  117. package/src/definitions/variable.ts +1 -1
  118. package/src/definitions.ts +1 -28
  119. package/src/eval.ts +16 -25
  120. package/src/expression.ts +16 -8
  121. package/src/index.ts +3 -1
  122. package/src/interface.ts +35 -0
  123. package/src/main.ts +232 -200
  124. package/src/migrate.ts +27 -4
  125. package/src/migrator/access.ts +67 -37
  126. package/src/migrator/call.ts +287 -190
  127. package/src/migrator/concat.ts +15 -2
  128. package/src/migrator/function.ts +27 -0
  129. package/src/migrator/interface.ts +3 -1
  130. package/src/migrator/node.ts +56 -6
  131. package/src/migrator/operator.ts +110 -64
  132. package/src/migrator/serialize.ts +21 -0
  133. package/src/migrator/special.ts +31 -0
  134. package/src/migrator/state.ts +31 -34
  135. package/src/migrator/symbol.ts +33 -12
  136. package/src/migrator/to-type.ts +23 -4
  137. package/src/migrator/utils.ts +49 -1
  138. package/src/parser.ts +33 -8
  139. package/src/re-exports.ts +47 -0
  140. package/src/scope.ts +98 -62
  141. package/src/type.ts +40 -25
  142. package/tests/analyze.ts +45 -6
  143. package/tests/compile.ts +65 -0
  144. package/tests/condition.ts +33 -17
  145. package/tests/definition.ts +237 -18
  146. package/tests/eval-complex.ts +19 -11
  147. package/tests/eval.ts +59 -12
  148. package/tests/import.ts +21 -7
  149. package/tests/main.ts +58 -0
  150. package/tests/migrate.ts +317 -0
  151. package/tests/scope.ts +3 -3
  152. package/tests/template.ts +36 -0
  153. package/dist/context.d.ts +0 -41
  154. package/dist/context.d.ts.map +0 -1
  155. package/dist/context.js +0 -18
  156. package/dist/context.js.map +0 -1
  157. package/src/context.ts +0 -54
package/dist/main.d.ts CHANGED
@@ -1,49 +1,62 @@
1
- import type { SetFieldType } from 'type-fest';
2
1
  import { type VmValue } from '@mirascript/mirascript';
3
- import { type Options } from './context.js';
4
- import { type CompiledExpression, Expression, type ExpressionOrValue } from './expression.js';
2
+ import { type Logger, type Options } from './interface.js';
3
+ import { type GlobalReferenceChain } from './analyze.js';
4
+ import { type CompiledExpression, type Expression, type ExpressionFunction, type ExpressionOrValue, type ExpressionSource } from './expression.js';
5
5
  import { Scope } from './scope.js';
6
- import type { ArgumentMap, ArgumentValue, Choice, ChoiceArgumentValue, ConditionExpression, Parameter, ParameterFunction, ParameterGroup } from './definitions.js';
6
+ import { type ArgumentMap, type ArgumentValue, type ChoiceParameterType, type ConditionExpression, type Parameter, type ParameterGroup, type ParameterMap } from './definitions.js';
7
+ /** 选项类型 */
8
+ export type EvaluatedChoices<T extends ChoiceParameterType> = {
9
+ [K in T]: ParameterMap[K] extends {
10
+ choices?: infer C;
11
+ } ? (C extends readonly unknown[] ? C : never) : never;
12
+ }[T];
7
13
  /**
8
14
  * 表达式求值
9
15
  */
10
16
  export declare class Evaluator {
11
- constructor(options?: Partial<Options>);
17
+ constructor(options?: Partial<Options> | null);
18
+ /** Logger */
19
+ get logger(): Logger;
12
20
  /** 选项 */
13
- get options(): Options;
14
- /** 上下文 */
15
- private readonly context;
21
+ readonly options: Readonly<Partial<Options>>;
16
22
  /** 默认执行环境 */
17
23
  private readonly scope;
18
- /** 导入到执行环境 */
19
- import(values: Record<string, unknown>): void;
24
+ private readonly __imported;
25
+ /** 执行环境 */
26
+ get imported(): ReadonlyMap<string, VmValue>;
20
27
  /**
21
- * 编译表达式
28
+ * 导入到执行环境
29
+ *
30
+ * 使用 `undefined` 删除已导入的变量
22
31
  */
32
+ import(values: Record<string, unknown>): void;
33
+ /** 编译表达式 */
23
34
  compile<T extends VmValue>(expression: Expression<T>, throws?: boolean): CompiledExpression<T>;
24
- /**
25
- * 求值
26
- */
27
- evaluate<T extends VmValue>(expression: ExpressionOrValue<T> | undefined, scope?: Scope): T | undefined;
28
- /**
29
- * 求值
30
- */
31
- evaluate<T extends VmValue, D = T>(expression: ExpressionOrValue<T> | undefined, scope: Scope | undefined, defaults: D): T | D;
35
+ /** 执行 MiraScript 模板 */
36
+ template(template: string | null | undefined, scope: Scope | undefined): string;
37
+ /** 求值 */
38
+ evaluate<T extends VmValue>(expression: ExpressionOrValue<T> | ExpressionFunction<T> | null | undefined, scope?: Scope | null): T | null;
39
+ /** 求值 */
40
+ evaluate<T extends VmValue, const D = NonNullable<T>>(expression: ExpressionOrValue<T> | ExpressionFunction<T> | null | undefined, scope: Scope | null | undefined, defaults: D): NonNullable<T> | D;
41
+ /** 求值 */
42
+ evaluate<T>(expression: ExpressionFunction<T> | T | null | undefined, scope?: Scope | null): T | null;
43
+ /** 求值 */
44
+ evaluate<T, const D = NonNullable<T>>(expression: ExpressionFunction<T> | T | null | undefined, scope: Scope | null | undefined, defaults: D): NonNullable<T> | D;
45
+ /** 求值 */
46
+ evaluateSource<T extends VmValue>(expression: ExpressionSource<T> | T | null | undefined, scope: Scope | null | undefined): T | null;
47
+ /** 求值 */
48
+ evaluateSource<T extends VmValue, const D = NonNullable<T>>(expression: ExpressionSource<T> | T | null | undefined, scope: Scope | null | undefined, defaults: D): NonNullable<T> | D;
32
49
  /** 求条件 */
33
- evaluateCondition(condition: ConditionExpression | undefined, scope: Scope | undefined, defaults?: boolean): boolean;
50
+ evaluateCondition(condition: ConditionExpression | null | undefined, scope: Scope | null | undefined, defaults?: boolean): boolean;
34
51
  /** 求选项列表 */
35
- evaluateChoices<V extends ChoiceArgumentValue>(choices: ExpressionOrValue<Array<Choice<V>>> | ParameterFunction<ReadonlyArray<Choice<V>>> | undefined, scope: Scope | undefined): ReadonlyArray<SetFieldType<Choice<V>, 'key', V>>;
36
- /** 转换参数值的类型 */
37
- toArg<V extends ArgumentValue>(value: VmValue, definition: Parameter): V;
52
+ evaluateChoices<T extends ChoiceParameterType>(definition: Pick<ParameterMap[T], 'type' | 'choices' | 'value'>, scope: Scope | null | undefined): EvaluatedChoices<T>;
38
53
  /** 求参数值 */
39
- evaluateArg<V extends ArgumentValue>(expression: ExpressionOrValue<V> | undefined, scope: Scope | undefined, definition: Parameter): V;
54
+ evaluateArg<V extends ArgumentValue>(expression: ExpressionOrValue<V> | null | undefined, scope: Scope | null | undefined, definition: Parameter): V;
40
55
  /** 求参数表的所有参数值 */
41
- evaluateArgs<T extends Record<string, ArgumentValue>>(args: ArgumentMap<T> | undefined, scope: Scope | undefined, definition: ReadonlyArray<Pick<ParameterGroup, 'items'>>): T;
42
- /** 获取参数默认值,修复现有的参数,并填充缺失的参数 */
43
- defaultArgs<T extends Record<string, ArgumentValue>>(definition: ReadonlyArray<Pick<ParameterGroup, 'items'>> | undefined, args?: ArgumentMap<T>): ArgumentMap<T>;
56
+ evaluateArgs<T extends Record<string, ArgumentValue>>(args: ArgumentMap<T> | null | undefined, scope: Scope | null | undefined, definition: ReadonlyArray<Pick<ParameterGroup, 'items'>>): T;
44
57
  /** 解析表达式 */
45
58
  validate<T extends VmValue>(expression: Expression<T>): void;
46
59
  /** 分析表达式 */
47
- analyze<T extends VmValue>(expression: Expression<T>): string[][];
60
+ analyze<T extends VmValue>(expression: Expression<T>, scope?: Scope | null): readonly GlobalReferenceChain[];
48
61
  }
49
62
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EACH,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,iBAAiB,EAGzB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,cAAc,EAEjB,MAAM,kBAAkB,CAAC;AAI1B;;GAEG;AACH,qBAAa,SAAS;gBACN,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAGtC,SAAS;IACT,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,UAAU;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8C;IAEpE,cAAc;IACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAU7C;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,UAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAa3F;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS;IACvG;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,GAAG,CAAC,EAC7B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,EAC5C,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,QAAQ,EAAE,CAAC,GACZ,CAAC,GAAG,CAAC;IAmBR,UAAU;IACV,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,QAAQ,UAAO,GAAG,OAAO;IAoBjH,YAAY;IACZ,eAAe,CAAC,CAAC,SAAS,mBAAmB,EACzC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EACtG,KAAK,EAAE,KAAK,GAAG,SAAS,GACzB,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IA0BnD,eAAe;IACf,KAAK,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,GAAG,CAAC;IAgCxE,WAAW;IACX,WAAW,CAAC,CAAC,SAAS,aAAa,EAC/B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,EAC5C,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,UAAU,EAAE,SAAS,GACtB,CAAC;IAMJ,iBAAiB;IACjB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAChD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,EAChC,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,GACzD,CAAC;IAaJ,+BAA+B;IAC/B,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACpE,IAAI,GAAE,WAAW,CAAC,CAAC,CAAwB,GAC5C,WAAW,CAAC,CAAC,CAAC;IAqDjB,YAAY;IACZ,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAS5D,YAAY;IACZ,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;CAOpE"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -1,158 +1,221 @@
1
- import { isVmArray, wrapToVmValue } from '@mirascript/mirascript';
2
- import { lib } from '@mirascript/mirascript/subtle';
3
- import { klona } from 'klona';
4
- import { Context } from './context.js';
1
+ import { isVmFunction, wrapToVmValue } from '@mirascript/mirascript';
2
+ import { serialize } from '@mirascript/mirascript/subtle';
3
+ import { defaultOptions } from './interface.js';
5
4
  import { parse } from './parser.js';
6
5
  import { analyze } from './analyze.js';
7
- import { Expression, ExpressionTag, isExpression, } from './expression.js';
6
+ import { ExpressionTag, isExpression, } from './expression.js';
8
7
  import { evaluate } from './eval.js';
9
8
  import { TypeInfo } from './type.js';
10
9
  import { Scope } from './scope.js';
10
+ import { argumentConverter, choiceParameterType, fillArgumentMap, } from './definitions.js';
11
11
  const { isArray } = Array;
12
- const { to_number, to_string } = lib;
12
+ const { defineProperty } = Object;
13
13
  /**
14
14
  * 表达式求值
15
15
  */
16
16
  export class Evaluator {
17
17
  constructor(options) {
18
18
  /** 默认执行环境 */
19
- this.scope = new Scope(undefined, false, '<evaluator>');
20
- this.context = new Context(options);
19
+ this.scope = new Scope(null, true, '<evaluator>');
20
+ this.__imported = new Map();
21
+ this.options = options ?? defaultOptions;
21
22
  }
22
- /** 选项 */
23
- get options() {
24
- return this.context.options;
23
+ /** Logger */
24
+ get logger() {
25
+ return this.options.logger ?? console;
25
26
  }
26
- /** 导入到执行环境 */
27
+ /** 执行环境 */
28
+ get imported() {
29
+ return this.__imported;
30
+ }
31
+ /**
32
+ * 导入到执行环境
33
+ *
34
+ * 使用 `undefined` 删除已导入的变量
35
+ */
27
36
  import(values) {
28
37
  for (const [key, value] of Object.entries(values)) {
29
38
  if (value === undefined) {
30
- this.context.imported.delete(key);
39
+ this.__imported.delete(key);
31
40
  }
32
41
  else {
33
- this.context.imported.set(key, wrapToVmValue(value, null));
42
+ this.__imported.set(key, wrapToVmValue(value, null));
34
43
  }
35
44
  }
36
45
  }
37
- /**
38
- * 编译表达式
39
- */
46
+ /** 编译表达式 */
40
47
  compile(expression, throws = true) {
41
- const value = parse(this.context, expression.source, throws);
48
+ const value = parse(this, expression.source, throws, false);
42
49
  const tag = expression[ExpressionTag];
43
- const type = tag ? TypeInfo.parse(tag) : null;
44
- const compiled = ((scope, defaults) => {
45
- const ret = evaluate(this.context, value, type, scope, defaults);
46
- return ret;
47
- });
48
- Object.defineProperty(compiled, ExpressionTag, { value: type, enumerable: true });
49
- Object.defineProperty(compiled, 'source', { value: value.source, enumerable: true });
50
+ const type = tag ? TypeInfo.parse(tag) : '';
51
+ let compiled;
52
+ if (!type) {
53
+ compiled = (scope, evaluator) => evaluate(evaluator, value, scope);
54
+ }
55
+ else {
56
+ const to = TypeInfo.converter(type);
57
+ compiled = (scope, evaluator) => {
58
+ const ret = evaluate(evaluator, value, scope);
59
+ if (ret == null)
60
+ return null;
61
+ return to(ret);
62
+ };
63
+ }
64
+ defineProperty(compiled, ExpressionTag, { value: type, enumerable: true });
65
+ defineProperty(compiled, 'source', { value: value.source, enumerable: true });
50
66
  return compiled;
51
67
  }
52
- /**
53
- * 求值
54
- */
55
- evaluate(expression, scope, defaults) {
68
+ /** 执行 MiraScript 模板 */
69
+ template(template, scope) {
70
+ if (template == null)
71
+ return '';
72
+ const throws = scope?.throws ?? true;
73
+ const value = parse(this, template, throws, true);
74
+ const result = evaluate(this, value, scope ?? this.scope) ?? template;
75
+ if (typeof result == 'string')
76
+ return result;
77
+ return TypeInfo.toString(result);
78
+ }
79
+ /** 求值 */
80
+ evaluate(expression, scope, defaults = null) {
56
81
  if (expression == null)
57
82
  return defaults;
58
- if (!isExpression(expression))
83
+ if (typeof expression == 'function' && !isVmFunction(expression)) {
84
+ try {
85
+ const ret = expression(scope ?? this.scope, this);
86
+ if (ret == null)
87
+ return defaults;
88
+ return ret;
89
+ }
90
+ catch (ex) {
91
+ if (scope?.throws ?? true) {
92
+ throw ex;
93
+ }
94
+ return defaults;
95
+ }
96
+ }
97
+ if (!isExpression(expression)) {
59
98
  return expression;
60
- const throws = scope?.throws ?? true;
99
+ }
100
+ const result = this.evaluateSource(expression.source, scope);
101
+ if (result == null)
102
+ return defaults;
61
103
  const tag = expression[ExpressionTag];
62
- const type = tag ? TypeInfo.parse(tag) : null;
63
- const value = parse(this.context, expression.source, throws);
64
- const result = evaluate(this.context, value, type, scope ?? this.scope, defaults);
104
+ if (!tag)
105
+ return result;
106
+ return TypeInfo.to(result, tag);
107
+ }
108
+ /** 求值 */
109
+ evaluateSource(expression, scope, defaults = null) {
110
+ if (expression == null)
111
+ return defaults;
112
+ if (typeof expression != 'string')
113
+ return expression;
114
+ scope ??= this.scope;
115
+ const { throws } = scope;
116
+ const value = parse(this, expression, throws, false);
117
+ const result = evaluate(this, value, scope);
118
+ if (result == null)
119
+ return defaults;
65
120
  return result;
66
121
  }
67
122
  /** 求条件 */
68
123
  evaluateCondition(condition, scope, defaults = true) {
124
+ if (condition == null || condition === '')
125
+ return defaults;
69
126
  if (typeof condition == 'boolean')
70
127
  return condition;
71
- if (condition == null)
72
- return defaults;
73
- condition = (typeof condition == 'string' ? condition : lib.to_string(condition)).trim();
74
- if (condition === '')
75
- return defaults;
76
128
  if (condition === 'true')
77
129
  return true;
78
130
  if (condition === 'false')
79
131
  return false;
80
132
  try {
81
- return this.evaluate(Expression(condition, 'boolean'), scope, defaults);
133
+ const result = this.evaluateSource(condition, scope, defaults);
134
+ if (typeof result == 'boolean')
135
+ return result;
136
+ throw new Error(`Condition evaluates to \`${serialize(result)}\``);
82
137
  }
83
138
  catch (ex) {
84
139
  if (scope?.throws) {
85
140
  throw ex;
86
141
  }
87
- this.options.logger.warn(`Invalid condition`, ex);
142
+ this.logger.warn(`Invalid condition`, ex);
88
143
  return defaults;
89
144
  }
90
145
  }
91
146
  /** 求选项列表 */
92
- evaluateChoices(choices, scope) {
93
- if (choices == null)
94
- return [];
95
- const result = typeof choices == 'function' ? choices(scope ?? this.scope, this) : this.evaluate(choices, scope, []);
96
- if (!isArray(result)) {
97
- if (scope?.throws) {
98
- throw new Error(`Choices is not an array`);
147
+ evaluateChoices(definition, scope) {
148
+ const ret = [];
149
+ const { type, choices } = definition;
150
+ const isLogical = type === 'logical';
151
+ const choiceType = choiceParameterType(definition);
152
+ const fallbackKeys = !isLogical
153
+ ? []
154
+ : choiceType === 'boolean'
155
+ ? [false, true]
156
+ : choiceType === 'number'
157
+ ? [0, 1]
158
+ : ['0', '1'];
159
+ if (choices != null) {
160
+ const evaluatedChoices = this.evaluate(choices, scope);
161
+ if (evaluatedChoices == null) {
162
+ // do nothing
99
163
  }
100
- return [];
101
- }
102
- return result.map((item, index) => {
103
- if (item == null) {
104
- return { key: index, name: String(index), description: '' };
105
- }
106
- if (typeof item == 'string' || typeof item == 'number' || typeof item == 'boolean') {
107
- return { key: item, name: String(item), description: '' };
164
+ else if (!isArray(evaluatedChoices)) {
165
+ if (scope?.throws ?? true) {
166
+ throw new Error(`Choices is not an array`);
167
+ }
108
168
  }
109
- return {
110
- key: (item.key ?? index),
111
- name: item.name ?? String(item.key ?? index),
112
- description: item.description ?? '',
113
- condition: item.condition,
114
- };
115
- });
116
- }
117
- /** 转换参数值的类型 */
118
- toArg(value, definition) {
119
- switch (definition.type) {
120
- case 'real':
121
- case 'integer':
122
- return to_number(value);
123
- case 'file':
124
- case 'text':
125
- case 'code':
126
- case 'pinLike':
127
- case 'cssColor':
128
- case 'cssBackground':
129
- case 'resourceId':
130
- return to_string(value);
131
- case 'choice':
132
- case 'logical':
133
- return value;
134
- case 'multiSelect':
135
- case 'table': {
136
- if (isVmArray(value)) {
137
- return value;
169
+ else if (evaluatedChoices.length > 0) {
170
+ const to = TypeInfo.converter(choiceType);
171
+ let len = evaluatedChoices.length;
172
+ if (isLogical && len > 2)
173
+ len = 2;
174
+ for (let i = 0; i < len; i++) {
175
+ try {
176
+ const item = evaluatedChoices[i];
177
+ const key = to(item?.key ?? fallbackKeys[i] ?? i);
178
+ const name = item?.name ?? (isLogical ? '' : String(key));
179
+ const description = item?.description ?? '';
180
+ const condition = item?.condition || undefined;
181
+ ret[i] = { key, name, description, condition };
182
+ }
183
+ catch (ex) {
184
+ if (scope?.throws ?? true) {
185
+ throw new Error(`Invalid choice value: ${serialize(evaluatedChoices[i])}`, {
186
+ cause: ex,
187
+ });
188
+ }
189
+ ret[i] = { key: to(i, i), name: '', description: '', condition: undefined };
190
+ }
138
191
  }
139
- return (value != null ? [value] : []);
140
192
  }
141
- case 'grouped':
142
- case 'record':
143
- default:
144
- return value;
145
193
  }
194
+ if (isLogical) {
195
+ while (ret.length < 2) {
196
+ ret.push({
197
+ key: fallbackKeys[ret.length],
198
+ name: '',
199
+ description: '',
200
+ condition: undefined,
201
+ });
202
+ }
203
+ }
204
+ return ret;
146
205
  }
147
206
  /** 求参数值 */
148
207
  evaluateArg(expression, scope, definition) {
149
- const result = this.evaluate(expression ?? definition.value, scope) ??
150
- definition.value;
151
- return this.toArg(result, definition);
208
+ // 默认值有可能为表达式,因此需要先填充再求值
209
+ expression ??= definition.value;
210
+ // 求值失败时返回默认值
211
+ const result = this.evaluate(expression, scope, definition.value);
212
+ const converter = argumentConverter(definition);
213
+ // 转换失败时返回转换前的值
214
+ return converter(result, result);
152
215
  }
153
216
  /** 求参数表的所有参数值 */
154
217
  evaluateArgs(args, scope, definition) {
155
- const a = this.defaultArgs(definition, args);
218
+ const a = fillArgumentMap(definition, args);
156
219
  const ret = {};
157
220
  for (const group of definition) {
158
221
  for (const param of group.items) {
@@ -165,57 +228,6 @@ export class Evaluator {
165
228
  }
166
229
  return ret;
167
230
  }
168
- /** 获取参数默认值,修复现有的参数,并填充缺失的参数 */
169
- defaultArgs(definition, args = {}) {
170
- if (definition == null || !isArray(definition) || definition.length === 0) {
171
- return args;
172
- }
173
- const keys = new Set(Object.keys(args));
174
- // 根据定义填充或修复参数
175
- for (const group of definition) {
176
- for (const param of group.items) {
177
- const key = param.key;
178
- if (!key)
179
- continue;
180
- const currentValue = keys.has(key) ? args[key] : undefined;
181
- if (currentValue == null) {
182
- // 使用默认值填充
183
- const defaultValue = param.value;
184
- if (isExpression(defaultValue)) {
185
- args[key] = { [ExpressionTag]: '', source: defaultValue.source };
186
- }
187
- else {
188
- const value = defaultValue != null && typeof defaultValue == 'object'
189
- ? klona(defaultValue)
190
- : defaultValue;
191
- args[key] = this.toArg(value, param);
192
- }
193
- }
194
- else {
195
- // 已存在的参数值
196
- if (isExpression(currentValue)) {
197
- // 保留表达式
198
- }
199
- else {
200
- // 修复现有的参数值
201
- const castedValue = this.toArg(currentValue, param);
202
- if (castedValue != null && castedValue !== currentValue) {
203
- args[key] = castedValue;
204
- }
205
- }
206
- }
207
- keys.delete(key);
208
- }
209
- }
210
- // 删除多余的参数
211
- for (const key of keys) {
212
- // 保留特殊参数和私有字段
213
- if (key.startsWith('_') || key.startsWith('$') || key.startsWith('@'))
214
- continue;
215
- delete args[key];
216
- }
217
- return args;
218
- }
219
231
  /** 解析表达式 */
220
232
  validate(expression) {
221
233
  if (!isExpression(expression) || !expression.source) {
@@ -224,15 +236,19 @@ export class Evaluator {
224
236
  const tag = expression[ExpressionTag];
225
237
  if (tag)
226
238
  TypeInfo.parse(tag);
227
- parse(this.context, expression.source, true);
239
+ parse(this, expression.source, true, false);
228
240
  }
229
241
  /** 分析表达式 */
230
- analyze(expression) {
242
+ analyze(expression, scope) {
231
243
  if (!isExpression(expression) || !expression.source) {
232
244
  throw new Error(`${expression.source || String(expression)} is not a valid expression`);
233
245
  }
234
- const exp = parse(this.context, expression.source, true);
235
- return analyze(this.context, exp);
246
+ scope ??= this.scope;
247
+ const exp = parse(this, expression.source, scope.throws, false);
248
+ // 如果 throws=true,则 parse 会抛出错误,此处有 error 一定是 throws=false 的情况
249
+ if (exp.error)
250
+ return [];
251
+ return analyze(exp, this, scope);
236
252
  }
237
253
  }
238
254
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/migrate.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { VmValue } from '@mirascript/mirascript';
2
+ import type { Scope } from './scope.js';
2
3
  import type { ExpressionSource } from './expression.js';
3
- import { Scope } from './scope.js';
4
4
  /** MathJs 表达式转为 MiraScript 表达式 */
5
5
  export declare function migrateMathJs<const T extends VmValue>(expr: ExpressionSource<T>, condition: boolean, context: Scope | undefined): ExpressionSource<T>;
6
6
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,EACjD,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,KAAK,GAAG,SAAS,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAerB"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,EACjD,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,KAAK,GAAG,SAAS,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAmCrB"}