@cloudpss/expression 0.6.0-alpha.1 → 0.6.0-alpha.10
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/analyze.d.ts +6 -3
- package/dist/analyze.d.ts.map +1 -1
- package/dist/analyze.js +67 -33
- package/dist/analyze.js.map +1 -1
- package/dist/definitions/argument.d.ts +2 -10
- package/dist/definitions/argument.d.ts.map +1 -1
- package/dist/definitions/constraint.d.ts +2 -2
- package/dist/definitions/constraint.d.ts.map +1 -1
- package/dist/definitions/constraint.js +1 -1
- package/dist/definitions/constraint.js.map +1 -1
- package/dist/definitions/parameter-decoration.d.ts +3 -3
- package/dist/definitions/parameter-decoration.d.ts.map +1 -1
- package/dist/definitions/parameter-decoration.js +0 -7
- package/dist/definitions/parameter-decoration.js.map +1 -1
- package/dist/definitions/parameter-group.d.ts +0 -4
- package/dist/definitions/parameter-group.d.ts.map +1 -1
- package/dist/definitions/parameter-group.js +5 -17
- package/dist/definitions/parameter-group.js.map +1 -1
- package/dist/definitions/parameter.d.ts +47 -40
- package/dist/definitions/parameter.d.ts.map +1 -1
- package/dist/definitions/parameter.js +9 -21
- package/dist/definitions/parameter.js.map +1 -1
- package/dist/definitions/utils.d.ts +19 -0
- package/dist/definitions/utils.d.ts.map +1 -0
- package/dist/definitions/utils.js +177 -0
- package/dist/definitions/utils.js.map +1 -0
- package/dist/definitions/variable.d.ts +0 -2
- package/dist/definitions/variable.d.ts.map +1 -1
- package/dist/definitions/variable.js +1 -5
- package/dist/definitions/variable.js.map +1 -1
- package/dist/definitions.d.ts +1 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +1 -0
- package/dist/definitions.js.map +1 -1
- package/dist/eval.d.ts +3 -5
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +12 -20
- package/dist/eval.js.map +1 -1
- package/dist/expression.d.ts +10 -4
- package/dist/expression.d.ts.map +1 -1
- package/dist/expression.js +4 -4
- package/dist/expression.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interface.d.ts +30 -0
- package/dist/interface.d.ts.map +1 -0
- package/dist/interface.js +6 -0
- package/dist/interface.js.map +1 -0
- package/dist/main.d.ts +41 -28
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +145 -141
- package/dist/main.js.map +1 -1
- package/dist/migrate.d.ts +3 -2
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +12 -3
- package/dist/migrate.js.map +1 -1
- package/dist/migrator/access.d.ts.map +1 -1
- package/dist/migrator/access.js +22 -24
- package/dist/migrator/access.js.map +1 -1
- package/dist/migrator/call.d.ts.map +1 -1
- package/dist/migrator/call.js +235 -209
- package/dist/migrator/call.js.map +1 -1
- package/dist/migrator/interface.d.ts +3 -1
- package/dist/migrator/interface.d.ts.map +1 -1
- package/dist/migrator/interface.js.map +1 -1
- package/dist/migrator/node.js +1 -1
- package/dist/migrator/node.js.map +1 -1
- package/dist/migrator/operator.d.ts.map +1 -1
- package/dist/migrator/operator.js +19 -5
- package/dist/migrator/operator.js.map +1 -1
- package/dist/migrator/state.d.ts +2 -2
- package/dist/migrator/state.d.ts.map +1 -1
- package/dist/migrator/state.js +1 -2
- package/dist/migrator/state.js.map +1 -1
- package/dist/migrator/symbol.d.ts.map +1 -1
- package/dist/migrator/symbol.js +13 -0
- package/dist/migrator/symbol.js.map +1 -1
- package/dist/migrator/to-type.d.ts.map +1 -1
- package/dist/migrator/to-type.js +16 -0
- package/dist/migrator/to-type.js.map +1 -1
- package/dist/migrator/utils.d.ts +2 -0
- package/dist/migrator/utils.d.ts.map +1 -1
- package/dist/migrator/utils.js +18 -0
- package/dist/migrator/utils.js.map +1 -1
- package/dist/parser.d.ts +2 -2
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +25 -8
- package/dist/parser.js.map +1 -1
- package/dist/re-exports.d.ts +4 -0
- package/dist/re-exports.d.ts.map +1 -0
- package/dist/re-exports.js +3 -0
- package/dist/re-exports.js.map +1 -0
- package/dist/scope.d.ts +13 -16
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +56 -49
- package/dist/scope.js.map +1 -1
- package/dist/type.d.ts +14 -5
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js +35 -11
- package/dist/type.js.map +1 -1
- package/package.json +4 -4
- package/src/analyze.ts +77 -37
- package/src/definitions/argument.ts +2 -12
- package/src/definitions/constraint.ts +3 -3
- package/src/definitions/parameter-decoration.ts +3 -9
- package/src/definitions/parameter-group.ts +4 -19
- package/src/definitions/parameter.ts +62 -61
- package/src/definitions/utils.ts +175 -0
- package/src/definitions/variable.ts +1 -6
- package/src/definitions.ts +1 -0
- package/src/eval.ts +13 -26
- package/src/expression.ts +14 -6
- package/src/index.ts +3 -1
- package/src/interface.ts +35 -0
- package/src/main.ts +213 -194
- package/src/migrate.ts +15 -6
- package/src/migrator/access.ts +21 -26
- package/src/migrator/call.ts +225 -194
- package/src/migrator/interface.ts +3 -1
- package/src/migrator/node.ts +1 -1
- package/src/migrator/operator.ts +19 -5
- package/src/migrator/state.ts +2 -2
- package/src/migrator/symbol.ts +13 -0
- package/src/migrator/to-type.ts +16 -0
- package/src/migrator/utils.ts +21 -0
- package/src/parser.ts +27 -8
- package/src/re-exports.ts +28 -0
- package/src/scope.ts +75 -61
- package/src/type.ts +32 -11
- package/tests/analyze.ts +40 -6
- package/tests/compile.ts +65 -0
- package/tests/condition.ts +13 -5
- package/tests/definition.ts +205 -18
- package/tests/eval-complex.ts +7 -10
- package/tests/eval.ts +59 -12
- package/tests/import.ts +18 -4
- package/tests/main.ts +9 -0
- package/tests/migrate.ts +77 -0
- package/tests/scope.ts +3 -3
- package/tests/template.ts +36 -0
- package/dist/context.d.ts +0 -41
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -18
- package/dist/context.js.map +0 -1
- package/jest.config.js +0 -3
- package/src/context.ts +0 -54
- package/tests/tsconfig.json +0 -3
- package/tsconfig.json +0 -3
package/dist/analyze.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { EvalExpressionCache } from './parser.js';
|
|
2
|
+
import type { Scope } from './scope.js';
|
|
3
|
+
import type { Evaluator } from './main.js';
|
|
4
|
+
/** 一个访问链,第一个元素为变量名称 */
|
|
5
|
+
export type AccessChain = readonly [string, ...ReadonlyArray<string | number>];
|
|
3
6
|
/**
|
|
4
7
|
* 分析依赖
|
|
5
8
|
*/
|
|
6
|
-
export declare function analyze(
|
|
9
|
+
export declare function analyze(expression: EvalExpressionCache, evaluator: Evaluator, scope: Scope): readonly AccessChain[];
|
|
7
10
|
//# sourceMappingURL=analyze.d.ts.map
|
package/dist/analyze.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AA0D/E;;GAEG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,WAAW,EAAE,CAUnH"}
|
package/dist/analyze.js
CHANGED
|
@@ -1,38 +1,72 @@
|
|
|
1
|
+
import { parseDiagnostics, generateBytecodeSync, DiagnosticCode, DefaultVmContext, } from '@mirascript/mirascript/subtle';
|
|
2
|
+
const config = Object.freeze({
|
|
3
|
+
input_mode: 'Script',
|
|
4
|
+
track_references: false,
|
|
5
|
+
diagnostic_position_encoding: 'Utf16',
|
|
6
|
+
diagnostic_error: false,
|
|
7
|
+
diagnostic_warning: false,
|
|
8
|
+
diagnostic_info: false,
|
|
9
|
+
diagnostic_hint: false,
|
|
10
|
+
diagnostic_other: true,
|
|
11
|
+
trivia: false,
|
|
12
|
+
});
|
|
1
13
|
/**
|
|
2
14
|
* 分析依赖
|
|
3
15
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
function analyzeImpl(expression) {
|
|
17
|
+
if (expression.trim() === '') {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const [code, diagnostics] = generateBytecodeSync(expression, config);
|
|
21
|
+
if (code == null || diagnostics.length === 0) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const parsedDiagnostics = parseDiagnostics(expression, diagnostics);
|
|
25
|
+
const globals = parsedDiagnostics.tags.filter((t) => t.code === DiagnosticCode.GlobalVariable);
|
|
26
|
+
if (globals.length === 0) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const lines = expression.split(/\r?\n/);
|
|
30
|
+
const result = new Set();
|
|
31
|
+
for (const global of globals) {
|
|
32
|
+
// 分析每个全局变量访问
|
|
33
|
+
const line = lines[global.range.startLineNumber - 1];
|
|
34
|
+
if (!line)
|
|
35
|
+
continue;
|
|
36
|
+
const access = line.slice(global.range.startColumn - 1);
|
|
37
|
+
const chain = /^((?:@+|\$+|[a-zA-Z_])[a-zA-Z0-9_]*)(?:\s*!?\.\s*(?:\d+|(?:@+|\$+|[a-zA-Z_])[a-zA-Z0-9_]*))*/.exec(access);
|
|
38
|
+
if (chain == null)
|
|
39
|
+
continue;
|
|
40
|
+
const globalName = chain[1];
|
|
41
|
+
if (globalName?.length !== global.range.endColumn - global.range.startColumn)
|
|
42
|
+
continue;
|
|
43
|
+
const chainStr = chain[0].split(/\s*!?\.\s*/).join('.');
|
|
44
|
+
result.add(chainStr);
|
|
45
|
+
}
|
|
46
|
+
const accessChains = [];
|
|
47
|
+
for (const chainStr of result) {
|
|
48
|
+
const parts = chainStr.split('.').map((part) => {
|
|
49
|
+
const num = Number.parseInt(part, 10);
|
|
50
|
+
return Number.isNaN(num) ? part : num;
|
|
51
|
+
});
|
|
52
|
+
accessChains.push(parts);
|
|
53
|
+
}
|
|
54
|
+
return accessChains;
|
|
55
|
+
}
|
|
56
|
+
const kAnalyze = Symbol('cloudpss.expression.analyzeCache');
|
|
57
|
+
/**
|
|
58
|
+
* 分析依赖
|
|
59
|
+
*/
|
|
60
|
+
export function analyze(expression, evaluator, scope) {
|
|
61
|
+
let result = expression[kAnalyze];
|
|
62
|
+
if (result == null) {
|
|
63
|
+
result = analyzeImpl(expression.source);
|
|
64
|
+
expression[kAnalyze] = result;
|
|
65
|
+
}
|
|
66
|
+
return result.filter(([global]) => {
|
|
67
|
+
if (scope.has(global))
|
|
68
|
+
return true;
|
|
69
|
+
return !(evaluator.imported.has(global) || DefaultVmContext.has(global));
|
|
70
|
+
});
|
|
37
71
|
}
|
|
38
72
|
//# sourceMappingURL=analyze.js.map
|
package/dist/analyze.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACnB,MAAM,+BAA+B,CAAC;AASvC,MAAM,MAAM,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,QAAQ;IACpB,gBAAgB,EAAE,KAAK;IACvB,4BAA4B,EAAE,OAAO;IACrC,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,WAAW,CAAC,UAAkB;IACnC,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,IAAI,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,aAAa;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,KAAK,GACP,8FAA8F,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChH,IAAI,KAAK,IAAI,IAAI;YAAE,SAAS;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW;YAAE,SAAS;QACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,KAA+B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,MAAM,QAAQ,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,UAA+B,EAAE,SAAoB,EAAE,KAAY;IACvF,IAAI,MAAM,GAAI,UAA4E,CAAC,QAAQ,CAAC,CAAC;IACrG,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,UAA4E,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IACrG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,25 +5,17 @@ import type { Evaluator } from '../main.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* 表示一个具有类似表达式功能的 JS 函数,与某个 {@link ArgumentValue} 相关联,在其之后求值
|
|
7
7
|
*/
|
|
8
|
-
export type
|
|
8
|
+
export type ArgumentFunction<out R, in V extends VmValue = ArgumentValue> = (
|
|
9
9
|
/** 相关联的参数值 */
|
|
10
10
|
value: V,
|
|
11
11
|
/** 当前作用域 */
|
|
12
12
|
scope: Scope,
|
|
13
13
|
/** 当前求值器 */
|
|
14
14
|
evaluator: Evaluator) => R;
|
|
15
|
-
/**
|
|
16
|
-
* 表示一个具有类似表达式功能的 JS 函数,与某个 {@link ArgumentValue} 相关联,在其之前求值
|
|
17
|
-
*/
|
|
18
|
-
export type ParameterFunction<R> = (
|
|
19
|
-
/** 当前作用域 */
|
|
20
|
-
scope: Scope,
|
|
21
|
-
/** 当前求值器 */
|
|
22
|
-
evaluator: Evaluator) => R;
|
|
23
15
|
/** 条件表达式 */
|
|
24
16
|
export type ConditionExpression = boolean | ExpressionSource<boolean>;
|
|
25
17
|
/** 条件函数 */
|
|
26
|
-
export type ConditionFunction<V extends VmValue = ArgumentValue> =
|
|
18
|
+
export type ConditionFunction<in V extends VmValue = ArgumentValue> = ArgumentFunction<boolean, V>;
|
|
27
19
|
/** 参数值 */
|
|
28
20
|
export type ArgumentValue = NonNullable<VmConst>;
|
|
29
21
|
/** 未求值的参数表 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../src/definitions/argument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../src/definitions/argument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI;AACxE,cAAc;AACd,KAAK,EAAE,CAAC;AACR,YAAY;AACZ,KAAK,EAAE,KAAK;AACZ,YAAY;AACZ,SAAS,EAAE,SAAS,KACnB,CAAC,CAAC;AAEP,YAAY;AACZ,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEtE,WAAW;AACX,MAAM,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAEnG,UAAU;AACV,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEjD,cAAc;AACd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI;KAC9F,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VmRecord, VmValue } from '@mirascript/mirascript';
|
|
2
|
-
import type { ArgumentValue, ConditionExpression, ConditionFunction,
|
|
2
|
+
import type { ArgumentValue, ConditionExpression, ConditionFunction, ArgumentFunction } from './argument.js';
|
|
3
3
|
import type { ExpressionSource } from '../expression.js';
|
|
4
4
|
export declare const ConstraintLevel: readonly ["info", "warning", "error"];
|
|
5
5
|
/** 约束条件的级别 */
|
|
@@ -21,7 +21,7 @@ export interface Constraint<V extends VmValue = ArgumentValue> {
|
|
|
21
21
|
/**
|
|
22
22
|
* 不满足条件的提示附加参数
|
|
23
23
|
*/
|
|
24
|
-
messageData?: ExpressionSource<VmRecord> | VmRecord |
|
|
24
|
+
messageData?: ExpressionSource<VmRecord> | VmRecord | ArgumentFunction<VmRecord, V>;
|
|
25
25
|
/**
|
|
26
26
|
* 约束条件
|
|
27
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,eAAe,uCAAuD,CAAC;AACpF,cAAc;AACd,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,qBAAqB;AACrB,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa;IACzD;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpF;;OAEG;IACH,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACzD;AAED,uBAAuB;AACvB,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAehE"}
|
|
@@ -3,7 +3,7 @@ export const ConstraintLevel = Object.freeze(['info', 'warning', 'error']);
|
|
|
3
3
|
export function isConstraint(value) {
|
|
4
4
|
if (value == null || typeof value !== 'object')
|
|
5
5
|
return false;
|
|
6
|
-
if ('key' in value || 'description' in value)
|
|
6
|
+
if ('key' in value || 'name' in value || 'description' in value || 'items' in value)
|
|
7
7
|
return false;
|
|
8
8
|
const v = value;
|
|
9
9
|
if (typeof v.message != 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC,CAAC;AA4BpF,uBAAuB;AACvB,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC,CAAC;AA4BpF,uBAAuB;AACvB,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAElG,MAAM,CAAC,GAAG,KAAmB,CAAC;IAC9B,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,UAAU,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrF,IACI,CAAC,CAAC,WAAW,IAAI,IAAI;QACrB,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,CAAC,CAAC,WAAW,IAAI,UAAU;QAElC,OAAO,KAAK,CAAC;IACjB,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -18,10 +18,10 @@ export interface ParameterDecorationMap {
|
|
|
18
18
|
/** 参数标签装饰 */
|
|
19
19
|
label: ParameterLabelDecoration;
|
|
20
20
|
}
|
|
21
|
+
/** 参数界面装饰 type */
|
|
22
|
+
export type ParameterDecorationType = keyof ParameterDecorationMap;
|
|
21
23
|
/** 参数界面装饰 */
|
|
22
|
-
export type ParameterDecoration = ParameterDecorationMap[
|
|
24
|
+
export type ParameterDecoration = ParameterDecorationMap[ParameterDecorationType];
|
|
23
25
|
/** 是否为参数界面装饰 */
|
|
24
26
|
export declare function isParameterDecoration(value: unknown): value is ParameterDecoration;
|
|
25
|
-
/** 创建参数界面装饰 */
|
|
26
|
-
export declare function ParameterDecoration(): ParameterLabelDecoration;
|
|
27
27
|
//# sourceMappingURL=parameter-decoration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoration.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter-decoration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,aAAa;AACb,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM;IACrD,aAAa;IACb,IAAI,EAAE,CAAC,CAAC;IACR,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,aAAa;AACb,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB,CAAC,OAAO,CAAC;IAC9E,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAe;AACf,MAAM,WAAW,sBAAsB;IACnC,aAAa;IACb,KAAK,EAAE,wBAAwB,CAAC;CACnC;AAED,
|
|
1
|
+
{"version":3,"file":"parameter-decoration.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter-decoration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,aAAa;AACb,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM;IACrD,aAAa;IACb,IAAI,EAAE,CAAC,CAAC;IACR,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,aAAa;AACb,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB,CAAC,OAAO,CAAC;IAC9E,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAe;AACf,MAAM,WAAW,sBAAsB;IACnC,aAAa;IACb,KAAK,EAAE,wBAAwB,CAAC;CACnC;AAED,kBAAkB;AAClB,MAAM,MAAM,uBAAuB,GAAG,MAAM,sBAAsB,CAAC;AACnE,aAAa;AACb,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AAElF,gBAAgB;AAChB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAKlF"}
|
|
@@ -7,11 +7,4 @@ export function isParameterDecoration(value) {
|
|
|
7
7
|
return false;
|
|
8
8
|
return typeof v.type == 'string' && v.type.length > 0;
|
|
9
9
|
}
|
|
10
|
-
/** 创建参数界面装饰 */
|
|
11
|
-
export function ParameterDecoration() {
|
|
12
|
-
return {
|
|
13
|
-
type: 'label',
|
|
14
|
-
label: '',
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
10
|
//# sourceMappingURL=parameter-decoration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoration.js","sourceRoot":"","sources":["../../src/definitions/parameter-decoration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parameter-decoration.js","sourceRoot":"","sources":["../../src/definitions/parameter-decoration.ts"],"names":[],"mappings":"AA6BA,gBAAgB;AAChB,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,KAA4B,CAAC;IACvC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -13,8 +13,6 @@ export interface ParameterDecorationGroup extends ParameterGroupBase {
|
|
|
13
13
|
/** 装饰列表 */
|
|
14
14
|
items: ParameterDecoration[];
|
|
15
15
|
}
|
|
16
|
-
/** 创建装饰分组 */
|
|
17
|
-
export declare function ParameterDecorationGroup(): ParameterDecorationGroup;
|
|
18
16
|
/** 判断是否为装饰分组 */
|
|
19
17
|
export declare function isParameterDecorationGroup(value: unknown): value is ParameterDecorationGroup;
|
|
20
18
|
/** 参数分组 */
|
|
@@ -30,8 +28,6 @@ export interface ParameterGroup extends ParameterGroupBase {
|
|
|
30
28
|
/** 装饰 */
|
|
31
29
|
after?: ParameterDecorationGroup;
|
|
32
30
|
}
|
|
33
|
-
/** 创建参数分组 */
|
|
34
|
-
export declare function ParameterGroup(): ParameterGroup;
|
|
35
31
|
/** 判断是否为参数分组 */
|
|
36
32
|
export declare function isParameterGroup(item: unknown): item is ParameterGroup;
|
|
37
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-group.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,gBAAgB;AAChB,UAAU,kBAAkB;IACxB,iBAAiB;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,WAAW;AACX,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAChE,WAAW;IACX,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,
|
|
1
|
+
{"version":3,"file":"parameter-group.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,gBAAgB;AAChB,UAAU,kBAAkB;IACxB,iBAAiB;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,WAAW;AACX,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAChE,WAAW;IACX,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,gBAAgB;AAChB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAK5F;AAED,WAAW;AACX,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACtD,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS;IACT,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,SAAS;IACT,KAAK,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CAKtE"}
|
|
@@ -1,31 +1,19 @@
|
|
|
1
|
-
/** 创建装饰分组 */
|
|
2
|
-
export function ParameterDecorationGroup() {
|
|
3
|
-
return {
|
|
4
|
-
items: [],
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
1
|
/** 判断是否为装饰分组 */
|
|
8
2
|
export function isParameterDecorationGroup(value) {
|
|
9
3
|
if (value == null || typeof value !== 'object')
|
|
10
4
|
return false;
|
|
11
5
|
const v = value;
|
|
12
|
-
if ('key' in v || 'name' in v || 'description' in v)
|
|
6
|
+
if ('key' in v || 'name' in v || 'description' in v || 'value' in v)
|
|
13
7
|
return false;
|
|
14
8
|
return Array.isArray(v.items);
|
|
15
9
|
}
|
|
16
|
-
/** 创建参数分组 */
|
|
17
|
-
export function ParameterGroup() {
|
|
18
|
-
return {
|
|
19
|
-
name: '',
|
|
20
|
-
description: '',
|
|
21
|
-
items: [],
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
10
|
/** 判断是否为参数分组 */
|
|
25
11
|
export function isParameterGroup(item) {
|
|
26
12
|
if (item == null || typeof item !== 'object')
|
|
27
13
|
return false;
|
|
28
|
-
const
|
|
29
|
-
|
|
14
|
+
const v = item;
|
|
15
|
+
if ('key' in v || 'value' in v)
|
|
16
|
+
return false;
|
|
17
|
+
return typeof v.name === 'string' && typeof v.description === 'string' && Array.isArray(v.items);
|
|
30
18
|
}
|
|
31
19
|
//# sourceMappingURL=parameter-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-group.js","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAkBA,
|
|
1
|
+
{"version":3,"file":"parameter-group.js","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAkBA,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAiC,CAAC;IAC5C,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAgBD,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,IAAsB,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { VmPrimitive, VmRecord } from '@mirascript/mirascript';
|
|
2
|
-
import type { ExpressionOrValue } from '../expression.js';
|
|
3
|
-
import type { ArgumentMap, ArgumentValue, ConditionExpression
|
|
2
|
+
import type { ExpressionFunction, ExpressionOrValue } from '../expression.js';
|
|
3
|
+
import type { ArgumentMap, ArgumentValue, ConditionExpression } from './argument.js';
|
|
4
4
|
import type { Constraint } from './constraint.js';
|
|
5
5
|
import type { ParameterDecoration } from './parameter-decoration.js';
|
|
6
6
|
import type { ParameterGroup } from './parameter-group.js';
|
|
@@ -58,12 +58,10 @@ export interface IntegerParameter extends NumericParameter<'integer'> {
|
|
|
58
58
|
}
|
|
59
59
|
/** 可用于选项的值 */
|
|
60
60
|
export type ChoiceArgumentValue = NonNullable<VmPrimitive>;
|
|
61
|
-
/** 表示一个选项 Key,当其值为数字时,默认值为其在数组中的索引 */
|
|
62
|
-
type ChoiceKey<V extends ChoiceArgumentValue> = V extends number ? number | null : V;
|
|
63
61
|
/** 表示一个选项 */
|
|
64
|
-
export type Choice<V extends ChoiceArgumentValue> = {
|
|
65
|
-
/**
|
|
66
|
-
key:
|
|
62
|
+
export type Choice<V extends ChoiceArgumentValue = ChoiceArgumentValue> = {
|
|
63
|
+
/** 选中该选项将存储的参数值,默认值为其在数组中的索引 */
|
|
64
|
+
key: V;
|
|
67
65
|
/** 选项名称 */
|
|
68
66
|
name: string;
|
|
69
67
|
/** 选项详细描述 */
|
|
@@ -72,46 +70,38 @@ export type Choice<V extends ChoiceArgumentValue> = {
|
|
|
72
70
|
condition?: ConditionExpression;
|
|
73
71
|
};
|
|
74
72
|
/** 是否为选项 */
|
|
75
|
-
export declare function isChoice<V extends
|
|
76
|
-
/** 创建数值选项 */
|
|
77
|
-
export declare function Choice(key?: ChoiceKey<number>): Choice<number>;
|
|
78
|
-
/** 创建布尔选项 */
|
|
79
|
-
export declare function Choice(key: ChoiceKey<boolean>): Choice<boolean>;
|
|
80
|
-
/** 创建字符串选项 */
|
|
81
|
-
export declare function Choice(key: ChoiceKey<string>): Choice<string>;
|
|
82
|
-
/** 创建选项 */
|
|
83
|
-
export declare function Choice<V extends NonNullable<VmPrimitive> = number>(key: ChoiceKey<V>): Choice<V>;
|
|
73
|
+
export declare function isChoice<V extends ChoiceArgumentValue = ChoiceArgumentValue>(value: unknown): value is Choice<V>;
|
|
84
74
|
/**
|
|
85
75
|
* 表示值为选择项的参数定义
|
|
86
76
|
*/
|
|
87
|
-
export interface ChoiceParameter<V extends ChoiceArgumentValue> extends ParameterBase<'choice', V> {
|
|
77
|
+
export interface ChoiceParameter<V extends ChoiceArgumentValue = ChoiceArgumentValue> extends ParameterBase<'choice', V> {
|
|
88
78
|
/**
|
|
89
79
|
* 可选取值及其对应的说明文本
|
|
90
80
|
*/
|
|
91
|
-
choices: ExpressionOrValue<Array<Choice<V>>> |
|
|
81
|
+
choices: ExpressionOrValue<Array<Choice<V>>> | ExpressionFunction<ReadonlyArray<Choice<V>>>;
|
|
92
82
|
}
|
|
93
83
|
/**
|
|
94
84
|
* 表示值为多选选择项的参数定义
|
|
95
85
|
*/
|
|
96
|
-
export interface MultiSelectParameter<V extends readonly ChoiceArgumentValue[]> extends ParameterBase<'multiSelect', V> {
|
|
86
|
+
export interface MultiSelectParameter<V extends readonly ChoiceArgumentValue[] = readonly ChoiceArgumentValue[]> extends ParameterBase<'multiSelect', V> {
|
|
97
87
|
/**
|
|
98
88
|
* 可选取值及其对应的说明文本
|
|
99
89
|
*/
|
|
100
|
-
choices: ExpressionOrValue<Array<Choice<V[number]>>> |
|
|
90
|
+
choices: ExpressionOrValue<Array<Choice<V[number]>>> | ExpressionFunction<ReadonlyArray<Choice<V[number]>>>;
|
|
101
91
|
}
|
|
102
92
|
/**
|
|
103
93
|
* 表示值为布尔量的参数定义
|
|
104
94
|
*/
|
|
105
|
-
export interface LogicalParameter<V extends ChoiceArgumentValue> extends ParameterBase<'logical', V> {
|
|
95
|
+
export interface LogicalParameter<V extends ChoiceArgumentValue = ChoiceArgumentValue> extends ParameterBase<'logical', V> {
|
|
106
96
|
/**
|
|
107
97
|
* 可选取值及其对应的说明文本
|
|
108
98
|
*/
|
|
109
|
-
choices?: ExpressionOrValue<[false: Choice<V>, true: Choice<V>]> |
|
|
99
|
+
choices?: ExpressionOrValue<[false: Choice<V>, true: Choice<V>]> | ExpressionFunction<readonly [false: Choice<V>, true: Choice<V>]>;
|
|
110
100
|
}
|
|
111
101
|
/**
|
|
112
102
|
* 表示值为表格的参数定义
|
|
113
103
|
*/
|
|
114
|
-
export interface TableParameter<V extends readonly ArgumentValue[]> extends ParameterBase<'table', V> {
|
|
104
|
+
export interface TableParameter<V extends readonly ArgumentValue[] = readonly ArgumentValue[]> extends ParameterBase<'table', V> {
|
|
115
105
|
/** 最小行数 */
|
|
116
106
|
minRowCount?: number;
|
|
117
107
|
/** 最大行数 */
|
|
@@ -125,8 +115,12 @@ export interface TableParameter<V extends readonly ArgumentValue[]> extends Para
|
|
|
125
115
|
*
|
|
126
116
|
* 否则,表格参数的值为记录类型数组,每个记录包含各列定义的键值
|
|
127
117
|
*/
|
|
128
|
-
columns: Parameter[] |
|
|
118
|
+
columns: Parameter[] | ExpressionFunction<readonly Parameter[]>;
|
|
119
|
+
/** 添加额外属性以跟踪表格行 */
|
|
120
|
+
trackTag?: string;
|
|
129
121
|
}
|
|
122
|
+
/** 生成用于跟踪的额外属性值 */
|
|
123
|
+
export declare function generateTrackId(): number;
|
|
130
124
|
/**
|
|
131
125
|
* 表示值为简单记录类型的定义
|
|
132
126
|
*
|
|
@@ -134,7 +128,7 @@ export interface TableParameter<V extends readonly ArgumentValue[]> extends Para
|
|
|
134
128
|
*
|
|
135
129
|
* 字段中可包含占位符,占位符在主轴上尺寸可自定义。
|
|
136
130
|
*/
|
|
137
|
-
export interface RecordParameter<V extends VmRecord> extends ParameterBase<'record', V> {
|
|
131
|
+
export interface RecordParameter<V extends VmRecord = VmRecord> extends ParameterBase<'record', V> {
|
|
138
132
|
/** 主轴的优先方向 */
|
|
139
133
|
direction?: 'row' | 'column';
|
|
140
134
|
/** 包含的元素 */
|
|
@@ -147,7 +141,7 @@ export interface RecordParameter<V extends VmRecord> extends ParameterBase<'reco
|
|
|
147
141
|
*
|
|
148
142
|
* 各分组沿主轴排列时占据位置由 span 定义。
|
|
149
143
|
*/
|
|
150
|
-
export interface GroupedParameter<V extends VmRecord> extends ParameterBase<'grouped', V> {
|
|
144
|
+
export interface GroupedParameter<V extends VmRecord = VmRecord> extends ParameterBase<'grouped', V> {
|
|
151
145
|
/** 主轴的优先方向 */
|
|
152
146
|
direction?: 'row' | 'column';
|
|
153
147
|
/** 包含的元素 */
|
|
@@ -186,29 +180,42 @@ export interface FileParameter extends ParameterBase<'file', string> {
|
|
|
186
180
|
/**
|
|
187
181
|
* 已定义的参数类型
|
|
188
182
|
*/
|
|
189
|
-
export
|
|
183
|
+
export interface ParameterMap {
|
|
184
|
+
/** 实数参数 */
|
|
190
185
|
real: RealParameter;
|
|
186
|
+
/** 整数参数 */
|
|
191
187
|
integer: IntegerParameter;
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
188
|
+
/** 选择参数 */
|
|
189
|
+
choice: ChoiceParameter;
|
|
190
|
+
/** 多选参数 */
|
|
191
|
+
multiSelect: MultiSelectParameter;
|
|
192
|
+
/** 布尔参数 */
|
|
193
|
+
logical: LogicalParameter;
|
|
194
|
+
/** 表格参数 */
|
|
195
|
+
table: TableParameter;
|
|
196
|
+
/** 文本参数 */
|
|
196
197
|
text: TextParameter;
|
|
198
|
+
/** 代码参数 */
|
|
197
199
|
code: CodeParameter;
|
|
200
|
+
/** 文件参数 */
|
|
198
201
|
file: FileParameter;
|
|
202
|
+
/** 记录参数 */
|
|
199
203
|
record: RecordParameter<VmRecord>;
|
|
204
|
+
/** 分组记录参数 */
|
|
200
205
|
grouped: GroupedParameter<VmRecord>;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
|
|
204
|
-
*/
|
|
205
|
-
export type Parameter = ParameterMap[
|
|
206
|
+
}
|
|
207
|
+
/** 已定义的参数类型 type */
|
|
208
|
+
export type ParameterType = keyof ParameterMap;
|
|
209
|
+
/** 已定义的参数类型 */
|
|
210
|
+
export type Parameter = ParameterMap[ParameterType];
|
|
211
|
+
/** 已定义的选择参数类型 */
|
|
212
|
+
export type ChoiceParameterType = {
|
|
213
|
+
[K in keyof ParameterMap]: ParameterMap[K] extends {
|
|
214
|
+
choices?: infer _;
|
|
215
|
+
} ? ParameterMap[K]['type'] : never;
|
|
216
|
+
}[keyof ParameterMap];
|
|
206
217
|
/**
|
|
207
218
|
* 是否为参数定义
|
|
208
219
|
*/
|
|
209
220
|
export declare function isParameter(value: unknown): value is Parameter;
|
|
210
|
-
/**
|
|
211
|
-
* 创建参数定义
|
|
212
|
-
*/
|
|
213
|
-
export declare function Parameter(): RealParameter;
|
|
214
221
|
//# sourceMappingURL=parameter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,16 @@ export function isChoice(value) {
|
|
|
4
4
|
if (value == null || typeof value != 'object')
|
|
5
5
|
return false;
|
|
6
6
|
const c = value;
|
|
7
|
-
return typeof c.name === 'string' &&
|
|
7
|
+
return (typeof c.name === 'string' &&
|
|
8
|
+
typeof c.description == 'string' &&
|
|
9
|
+
!('items' in c) &&
|
|
10
|
+
!('value' in c) &&
|
|
11
|
+
!('span' in c));
|
|
8
12
|
}
|
|
9
|
-
/**
|
|
10
|
-
export function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
name: '',
|
|
14
|
-
description: '',
|
|
15
|
-
};
|
|
13
|
+
/** 生成用于跟踪的额外属性值 */
|
|
14
|
+
export function generateTrackId() {
|
|
15
|
+
// 生成 1 ~ 2^31-1 之间的随机整数
|
|
16
|
+
return Math.trunc(1 + Math.random() * 0x7fff_ffff);
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* 是否为参数定义
|
|
@@ -28,17 +29,4 @@ export function isParameter(value) {
|
|
|
28
29
|
typeof v.description == 'string' &&
|
|
29
30
|
'value' in v);
|
|
30
31
|
}
|
|
31
|
-
/**
|
|
32
|
-
* 创建参数定义
|
|
33
|
-
*/
|
|
34
|
-
export function Parameter() {
|
|
35
|
-
return {
|
|
36
|
-
key: '',
|
|
37
|
-
name: '',
|
|
38
|
-
description: '',
|
|
39
|
-
condition: '',
|
|
40
|
-
type: 'real',
|
|
41
|
-
value: 0,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
32
|
//# sourceMappingURL=parameter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC,CAAC;AA+C9G,YAAY;AACZ,MAAM,UAAU,QAAQ,CAAsD,KAAc;IACxF,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,OAAO,CACH,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CACjB,CAAC;AACN,CAAC;AA0DD,mBAAmB;AACnB,MAAM,UAAU,eAAe;IAC3B,wBAAwB;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;AACvD,CAAC;AA8GD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACtC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,OAAO,CACH,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QACzB,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ;QACzB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,IAAI,CAAC,CACf,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type VmValue } from '@mirascript/mirascript';
|
|
2
|
+
import type { ChoiceParameterType, Parameter, ParameterMap } from './parameter.js';
|
|
3
|
+
import { TypeInfo } from '../type.js';
|
|
4
|
+
import type { ArgumentMap, ArgumentValue } from './argument.js';
|
|
5
|
+
import type { ParameterGroup } from './parameter-group.js';
|
|
6
|
+
/** 推测枚举类型 */
|
|
7
|
+
export declare function enumType(definition: Pick<ParameterMap[ChoiceParameterType], 'type' | 'choices'>): TypeInfo | null;
|
|
8
|
+
/**
|
|
9
|
+
* 转换参数值的类型,不回退到 {@link Parameter.value} 提供的默认值
|
|
10
|
+
*/
|
|
11
|
+
export declare function toArgumentValue<V extends ArgumentValue>(value: VmValue, definition: Parameter): V;
|
|
12
|
+
/** 参数定义数组 */
|
|
13
|
+
type ParameterDefinitions = ReadonlyArray<Pick<ParameterGroup, 'items'>>;
|
|
14
|
+
/** 查找指定参数 */
|
|
15
|
+
export declare function findParameter(definition: ParameterDefinitions | undefined, key: string): Parameter | undefined;
|
|
16
|
+
/** 获取参数默认值,修复现有的参数,填充缺失的参数,删除未定义的参数 */
|
|
17
|
+
export declare function fillArgumentMap<T extends Record<string, ArgumentValue>>(definition: ParameterDefinitions | undefined, args?: ArgumentMap<T> | null): ArgumentMap<T>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/definitions/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,aAAa;AACb,wBAAgB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,GAAG,IAAI,CA8BjH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,GAAG,CAAC,CA6CjG;AAED,aAAa;AACb,KAAK,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAgBzE,aAAa;AACb,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ9G;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACnE,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAC7B,WAAW,CAAC,CAAC,CAAC,CAkDhB"}
|