@mirascript/wasm 0.1.9 → 0.1.11

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/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import * as wasm from '../lib/wasm.js';
1
+ import type { Config as WasmConfig, CompileResult as WasmCompileResult } from '../lib/wasm.js';
2
2
  import type { Config, ScriptInput } from './types.js';
3
- export * from './types.js';
4
- export { wasm };
5
- export declare const ready: Promise<wasm.InitOutput>;
3
+ export type { WasmCompileResult, WasmConfig };
4
+ export declare let wasm: typeof import('../lib/wasm.js');
5
+ export declare const ready: Promise<void>;
6
6
  /** 创建可重用的配置 */
7
- export declare function createConfig(config?: Config | wasm.Config): wasm.Config;
7
+ export declare function createConfig(config?: Config | WasmConfig): WasmConfig;
8
8
  /** 编译结果 */
9
9
  export interface CompileResult {
10
10
  /** 编译诊断 */
@@ -13,5 +13,9 @@ export interface CompileResult {
13
13
  readonly chunk?: Uint8Array;
14
14
  }
15
15
  /** 编译 MiraScript 代码 */
16
- export declare function compileSync(script: ScriptInput, config: Config | wasm.Config): CompileResult;
16
+ export declare function compileSync(script: ScriptInput, config: Config | WasmConfig): CompileResult;
17
+ /** 获取诊断消息 */
18
+ export declare function getDiagnosticMessage(code: number): string | null;
19
+ /** 获取关键字列表 */
20
+ export declare function keywords(): string[];
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAyC,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,eAAO,MAAM,KAAK,0BAIjB,CAAC;AAEF,eAAe;AACf,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAqBvE;AAED,WAAW;AACX,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,eAAe;IACf,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC/B;AAuBD,uBAAuB;AACvB,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,aAAa,CAI5F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,KAAK,EAAE,MAAM,EAAyC,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAE9C,eAAO,IAAI,IAAI,EAAE,cAAc,gBAAgB,CAAC,CAAC;AACjD,eAAO,MAAM,KAAK,eAOjB,CAAC;AAEF,eAAe;AACf,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAmBrE;AAED,WAAW;AACX,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,eAAe;IACf,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC/B;AAuBD,uBAAuB;AACvB,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAI3F;AAED,aAAa;AACb,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED,cAAc;AACd,wBAAgB,QAAQ,IAAI,MAAM,EAAE,CAEnC"}
package/dist/index.js CHANGED
@@ -1,9 +1,10 @@
1
- import * as wasm from '../lib/wasm.js';
2
- export * from './types.js';
3
- export { wasm };
4
- export const ready = import('@mirascript/wasm/loader').then(async ({ module }) => wasm.default({
5
- module_or_path: await module,
6
- }));
1
+ export let wasm;
2
+ export const ready = Promise.all([import('../lib/wasm.js'), import('@mirascript/wasm/loader')]).then(async ([_wasm, { module }]) => {
3
+ wasm = _wasm;
4
+ await wasm.default({
5
+ module_or_path: await module,
6
+ });
7
+ });
7
8
  /** 创建可重用的配置 */
8
9
  export function createConfig(config) {
9
10
  if (!config)
@@ -54,4 +55,12 @@ export function compileSync(script, config) {
54
55
  ? compileImpl(wasm.compile, script, config)
55
56
  : compileImpl(wasm.compile_buffer, script, config);
56
57
  }
58
+ /** 获取诊断消息 */
59
+ export function getDiagnosticMessage(code) {
60
+ return wasm.get_diagnostic_message(code) || null;
61
+ }
62
+ /** 获取关键字列表 */
63
+ export function keywords() {
64
+ return wasm.keywords();
65
+ }
57
66
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAGvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7E,IAAI,CAAC,OAAO,CAAC;IACT,cAAc,EAAE,MAAM,MAAM;CAC/B,CAAC,CACL,CAAC;AAEF,eAAe;AACf,MAAM,UAAU,YAAY,CAAC,MAA6B;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,MAAM;YAAE,SAAS,CAAC,aAAa;QAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;YAAE,SAAS;QAC1C,IAAI,KAAK,GAAG,MAAM,CAAC,GAAmB,CAAU,CAAC;QACjD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACvB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAkB,CAAmC,CAAC;QACjF,CAAC;QACD,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;YACzC,KAAK,GAAG,IAAI,CAAC,0BAA0B,CACnC,KAAmC,CACa,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,SAAS;QAC5B,GAAG,CAAC,GAAmB,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAUD,SAAS;AACT,SAAS,WAAW,CAChB,QAAgE,EAChE,MAAS,EACT,MAA4B;IAE5B,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;YAAS,CAAC;QACP,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,oBAAoB;QACpB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,MAA4B;IACzE,OAAO,OAAO,MAAM,IAAI,QAAQ;QAC5B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;QAC3C,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/wasm.d.ts CHANGED
@@ -42,7 +42,7 @@ export enum DiagnosticCode {
42
42
  MissingCloseParen = 1029,
43
43
  MissingSemicolon = 1030,
44
44
  MissingBindOperator = 1031,
45
- InvalidConstName = 1032,
45
+ InvalidConstantName = 1032,
46
46
  MissingFunctionName = 1033,
47
47
  MissingOpenParenAfterExtension = 1034,
48
48
  MissingOpenParenAfterType = 1035,
@@ -54,31 +54,32 @@ export enum DiagnosticCode {
54
54
  UnmatchedCloseBracket = 1041,
55
55
  UnmatchedCloseParen = 1042,
56
56
  UnknownPattern = 1043,
57
- UnknownStatement = 1044,
58
- ExpressionExpected = 1045,
59
- PatternExpected = 1046,
60
- ExclamationInLiteralPattern = 1047,
61
- UnexpectedOperatorInLiteralPattern = 1048,
62
- MutInRebindPattern = 1049,
63
- ConstantInBindPattern = 1050,
64
- MutInDiscardPattern = 1051,
65
- DiscardInSpreadPattern = 1052,
66
- SpreadDiscardInRecordPattern = 1053,
67
- MispositionedSpreadInRecordPattern = 1054,
68
- InterpolatedNameRecordPattern = 1055,
69
- BadOmitKeyRecordPattern = 1056,
70
- AmbiguousRangePattern = 1057,
71
- DuplicateSpreadPattern = 1058,
72
- MispositionedRestParameter = 1059,
73
- UndefinedVariableAssignment = 1060,
74
- ImmutableVariableAssignment = 1061,
75
- UninitializedVariable = 1062,
76
- DuplicateVariableDeclaration = 1063,
77
- UnexpectedBreak = 1064,
78
- UnexpectedContinue = 1065,
79
- MisuseOfGlobalKeyword = 1066,
80
- BadOmitKeyRecordExpression = 1067,
81
- UnassignableExpression = 1068,
57
+ InvalidConstantLiteral = 1044,
58
+ UnknownStatement = 1045,
59
+ ExpressionExpected = 1046,
60
+ PatternExpected = 1047,
61
+ ExclamationInLiteralPattern = 1048,
62
+ UnexpectedOperatorInLiteralPattern = 1049,
63
+ MutInRebindPattern = 1050,
64
+ ConstantInBindPattern = 1051,
65
+ MutInDiscardPattern = 1052,
66
+ DiscardInSpreadPattern = 1053,
67
+ SpreadDiscardInRecordPattern = 1054,
68
+ MispositionedSpreadInRecordPattern = 1055,
69
+ InterpolatedNameRecordPattern = 1056,
70
+ BadOmitKeyRecordPattern = 1057,
71
+ AmbiguousRangePattern = 1058,
72
+ DuplicateSpreadPattern = 1059,
73
+ MispositionedRestParameter = 1060,
74
+ UndefinedVariableAssignment = 1061,
75
+ ImmutableVariableAssignment = 1062,
76
+ UninitializedVariable = 1063,
77
+ DuplicateVariableDeclaration = 1064,
78
+ UnexpectedBreak = 1065,
79
+ UnexpectedContinue = 1066,
80
+ MisuseOfGlobalKeyword = 1067,
81
+ BadOmitKeyRecordExpression = 1068,
82
+ UnassignableExpression = 1069,
82
83
  ErrorEnd = 1999,
83
84
  WarningStart = 2000,
84
85
  UnnecessaryParentheses = 2001,
package/lib/wasm.js CHANGED
@@ -299,7 +299,7 @@ export function reserved_keywords() {
299
299
  }
300
300
 
301
301
  /**
302
- * @enum {1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2999 | 3000 | 3999 | 4000 | 4001 | 4002 | 4999 | 5000 | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5999 | 10000 | 10001 | 10002 | 10003 | 10004 | 10005 | 10006 | 10007 | 10008 | 10009 | 10010 | 10011 | 10012 | 10013 | 10014 | 10015 | 10016 | 10017 | 10018 | 10019 | 10020 | 10021 | 10022 | 10023 | 10024 | 10025 | 10026 | 10027 | 10028 | 10029 | 10030 | 10031 | 10032 | 10033 | 10034 | 10035 | 10036 | 10037 | 10038 | 10039 | 10040 | 10041 | 10042 | 10999 | 11000 | 11001 | 11002 | 11003 | 11004 | 11005 | 11006 | 11007 | 11008 | 11009 | 11010 | 11011 | 11012 | 11013 | 11014 | 11015 | 11016 | 11017 | 11018 | 11019 | 11020 | 11021 | 11022 | 11023 | 11999 | 12000}
302
+ * @enum {1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2999 | 3000 | 3999 | 4000 | 4001 | 4002 | 4999 | 5000 | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5999 | 10000 | 10001 | 10002 | 10003 | 10004 | 10005 | 10006 | 10007 | 10008 | 10009 | 10010 | 10011 | 10012 | 10013 | 10014 | 10015 | 10016 | 10017 | 10018 | 10019 | 10020 | 10021 | 10022 | 10023 | 10024 | 10025 | 10026 | 10027 | 10028 | 10029 | 10030 | 10031 | 10032 | 10033 | 10034 | 10035 | 10036 | 10037 | 10038 | 10039 | 10040 | 10041 | 10042 | 10999 | 11000 | 11001 | 11002 | 11003 | 11004 | 11005 | 11006 | 11007 | 11008 | 11009 | 11010 | 11011 | 11012 | 11013 | 11014 | 11015 | 11016 | 11017 | 11018 | 11019 | 11020 | 11021 | 11022 | 11023 | 11999 | 12000}
303
303
  */
304
304
  export const DiagnosticCode = Object.freeze({
305
305
  ErrorStart: 1000, "1000": "ErrorStart",
@@ -334,7 +334,7 @@ export const DiagnosticCode = Object.freeze({
334
334
  MissingCloseParen: 1029, "1029": "MissingCloseParen",
335
335
  MissingSemicolon: 1030, "1030": "MissingSemicolon",
336
336
  MissingBindOperator: 1031, "1031": "MissingBindOperator",
337
- InvalidConstName: 1032, "1032": "InvalidConstName",
337
+ InvalidConstantName: 1032, "1032": "InvalidConstantName",
338
338
  MissingFunctionName: 1033, "1033": "MissingFunctionName",
339
339
  MissingOpenParenAfterExtension: 1034, "1034": "MissingOpenParenAfterExtension",
340
340
  MissingOpenParenAfterType: 1035, "1035": "MissingOpenParenAfterType",
@@ -346,31 +346,32 @@ export const DiagnosticCode = Object.freeze({
346
346
  UnmatchedCloseBracket: 1041, "1041": "UnmatchedCloseBracket",
347
347
  UnmatchedCloseParen: 1042, "1042": "UnmatchedCloseParen",
348
348
  UnknownPattern: 1043, "1043": "UnknownPattern",
349
- UnknownStatement: 1044, "1044": "UnknownStatement",
350
- ExpressionExpected: 1045, "1045": "ExpressionExpected",
351
- PatternExpected: 1046, "1046": "PatternExpected",
352
- ExclamationInLiteralPattern: 1047, "1047": "ExclamationInLiteralPattern",
353
- UnexpectedOperatorInLiteralPattern: 1048, "1048": "UnexpectedOperatorInLiteralPattern",
354
- MutInRebindPattern: 1049, "1049": "MutInRebindPattern",
355
- ConstantInBindPattern: 1050, "1050": "ConstantInBindPattern",
356
- MutInDiscardPattern: 1051, "1051": "MutInDiscardPattern",
357
- DiscardInSpreadPattern: 1052, "1052": "DiscardInSpreadPattern",
358
- SpreadDiscardInRecordPattern: 1053, "1053": "SpreadDiscardInRecordPattern",
359
- MispositionedSpreadInRecordPattern: 1054, "1054": "MispositionedSpreadInRecordPattern",
360
- InterpolatedNameRecordPattern: 1055, "1055": "InterpolatedNameRecordPattern",
361
- BadOmitKeyRecordPattern: 1056, "1056": "BadOmitKeyRecordPattern",
362
- AmbiguousRangePattern: 1057, "1057": "AmbiguousRangePattern",
363
- DuplicateSpreadPattern: 1058, "1058": "DuplicateSpreadPattern",
364
- MispositionedRestParameter: 1059, "1059": "MispositionedRestParameter",
365
- UndefinedVariableAssignment: 1060, "1060": "UndefinedVariableAssignment",
366
- ImmutableVariableAssignment: 1061, "1061": "ImmutableVariableAssignment",
367
- UninitializedVariable: 1062, "1062": "UninitializedVariable",
368
- DuplicateVariableDeclaration: 1063, "1063": "DuplicateVariableDeclaration",
369
- UnexpectedBreak: 1064, "1064": "UnexpectedBreak",
370
- UnexpectedContinue: 1065, "1065": "UnexpectedContinue",
371
- MisuseOfGlobalKeyword: 1066, "1066": "MisuseOfGlobalKeyword",
372
- BadOmitKeyRecordExpression: 1067, "1067": "BadOmitKeyRecordExpression",
373
- UnassignableExpression: 1068, "1068": "UnassignableExpression",
349
+ InvalidConstantLiteral: 1044, "1044": "InvalidConstantLiteral",
350
+ UnknownStatement: 1045, "1045": "UnknownStatement",
351
+ ExpressionExpected: 1046, "1046": "ExpressionExpected",
352
+ PatternExpected: 1047, "1047": "PatternExpected",
353
+ ExclamationInLiteralPattern: 1048, "1048": "ExclamationInLiteralPattern",
354
+ UnexpectedOperatorInLiteralPattern: 1049, "1049": "UnexpectedOperatorInLiteralPattern",
355
+ MutInRebindPattern: 1050, "1050": "MutInRebindPattern",
356
+ ConstantInBindPattern: 1051, "1051": "ConstantInBindPattern",
357
+ MutInDiscardPattern: 1052, "1052": "MutInDiscardPattern",
358
+ DiscardInSpreadPattern: 1053, "1053": "DiscardInSpreadPattern",
359
+ SpreadDiscardInRecordPattern: 1054, "1054": "SpreadDiscardInRecordPattern",
360
+ MispositionedSpreadInRecordPattern: 1055, "1055": "MispositionedSpreadInRecordPattern",
361
+ InterpolatedNameRecordPattern: 1056, "1056": "InterpolatedNameRecordPattern",
362
+ BadOmitKeyRecordPattern: 1057, "1057": "BadOmitKeyRecordPattern",
363
+ AmbiguousRangePattern: 1058, "1058": "AmbiguousRangePattern",
364
+ DuplicateSpreadPattern: 1059, "1059": "DuplicateSpreadPattern",
365
+ MispositionedRestParameter: 1060, "1060": "MispositionedRestParameter",
366
+ UndefinedVariableAssignment: 1061, "1061": "UndefinedVariableAssignment",
367
+ ImmutableVariableAssignment: 1062, "1062": "ImmutableVariableAssignment",
368
+ UninitializedVariable: 1063, "1063": "UninitializedVariable",
369
+ DuplicateVariableDeclaration: 1064, "1064": "DuplicateVariableDeclaration",
370
+ UnexpectedBreak: 1065, "1065": "UnexpectedBreak",
371
+ UnexpectedContinue: 1066, "1066": "UnexpectedContinue",
372
+ MisuseOfGlobalKeyword: 1067, "1067": "MisuseOfGlobalKeyword",
373
+ BadOmitKeyRecordExpression: 1068, "1068": "BadOmitKeyRecordExpression",
374
+ UnassignableExpression: 1069, "1069": "UnassignableExpression",
374
375
  ErrorEnd: 1999, "1999": "ErrorEnd",
375
376
  WarningStart: 2000, "2000": "WarningStart",
376
377
  UnnecessaryParentheses: 2001, "2001": "UnnecessaryParentheses",
package/lib/wasm_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/wasm",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "MiraScript compiler for WebAssembly",
@@ -16,8 +16,8 @@
16
16
  }
17
17
  },
18
18
  "devDependencies": {
19
- "@types/node": "^24.10.0",
20
- "nodemon": "^3.1.10"
19
+ "@types/node": "^24.10.1",
20
+ "nodemon": "^3.1.11"
21
21
  },
22
22
  "scripts": {
23
23
  "wasm": "wasm-pack build --target web --out-dir ../../packages/wasm/lib --no-pack ../../crates/wasm",
package/src/index.ts CHANGED
@@ -1,17 +1,20 @@
1
- import * as wasm from '../lib/wasm.js';
1
+ import type { Config as WasmConfig, CompileResult as WasmCompileResult } from '../lib/wasm.js';
2
2
  import type { Config, InputMode, DiagnosticPositionEncoding, ScriptInput } from './types.js';
3
3
 
4
- export * from './types.js';
5
- export { wasm };
4
+ export type { WasmCompileResult, WasmConfig };
6
5
 
7
- export const ready = import('@mirascript/wasm/loader').then(async ({ module }) =>
8
- wasm.default({
9
- module_or_path: await module,
10
- }),
6
+ export let wasm: typeof import('../lib/wasm.js');
7
+ export const ready = Promise.all([import('../lib/wasm.js'), import('@mirascript/wasm/loader')]).then(
8
+ async ([_wasm, { module }]) => {
9
+ wasm = _wasm;
10
+ await wasm.default({
11
+ module_or_path: await module,
12
+ });
13
+ },
11
14
  );
12
15
 
13
16
  /** 创建可重用的配置 */
14
- export function createConfig(config?: Config | wasm.Config): wasm.Config {
17
+ export function createConfig(config?: Config | WasmConfig): WasmConfig {
15
18
  if (!config) return new wasm.Config();
16
19
  if (config instanceof wasm.Config) return config;
17
20
  const cfg = new wasm.Config();
@@ -20,12 +23,10 @@ export function createConfig(config?: Config | wasm.Config): wasm.Config {
20
23
  if (!Object.hasOwn(config, key)) continue;
21
24
  let value = config[key as keyof Config] as never;
22
25
  if (key === 'input_mode') {
23
- value = wasm.InputMode[value as InputMode] satisfies wasm.InputMode as never;
26
+ value = wasm.InputMode[value as InputMode] as never;
24
27
  }
25
28
  if (key === 'diagnostic_position_encoding') {
26
- value = wasm.DiagnosticPositionEncoding[
27
- value as DiagnosticPositionEncoding
28
- ] satisfies wasm.DiagnosticPositionEncoding as never;
29
+ value = wasm.DiagnosticPositionEncoding[value as DiagnosticPositionEncoding] as never;
29
30
  }
30
31
  if (value === undefined) continue;
31
32
  if (!(key in cfg)) continue;
@@ -44,9 +45,9 @@ export interface CompileResult {
44
45
 
45
46
  /** 编译 */
46
47
  function compileImpl<T>(
47
- compiler: (script: T, config: wasm.Config) => wasm.CompileResult,
48
+ compiler: (script: T, config: WasmConfig) => WasmCompileResult,
48
49
  script: T,
49
- config: Config | wasm.Config,
50
+ config: Config | WasmConfig,
50
51
  ): CompileResult {
51
52
  const cfg = createConfig(config);
52
53
  const result = compiler(script, cfg);
@@ -64,8 +65,18 @@ function compileImpl<T>(
64
65
  }
65
66
 
66
67
  /** 编译 MiraScript 代码 */
67
- export function compileSync(script: ScriptInput, config: Config | wasm.Config): CompileResult {
68
+ export function compileSync(script: ScriptInput, config: Config | WasmConfig): CompileResult {
68
69
  return typeof script == 'string'
69
70
  ? compileImpl(wasm.compile, script, config)
70
71
  : compileImpl(wasm.compile_buffer, script, config);
71
72
  }
73
+
74
+ /** 获取诊断消息 */
75
+ export function getDiagnosticMessage(code: number): string | null {
76
+ return wasm.get_diagnostic_message(code) || null;
77
+ }
78
+
79
+ /** 获取关键字列表 */
80
+ export function keywords(): string[] {
81
+ return wasm.keywords();
82
+ }