@mirascript/wasm 0.1.51 → 0.1.53
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 +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -10
- package/dist/index.js.map +1 -1
- package/dist/loader/web.d.ts +1 -1
- package/dist/loader/web.d.ts.map +1 -1
- package/dist/loader/web.js +4 -11
- package/dist/loader/web.js.map +1 -1
- package/lib/wasm_bg.wasm +0 -0
- package/package.json +3 -3
- package/src/index.ts +11 -18
- package/src/loader/web.ts +7 -16
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Config as WasmConfig, CompileResult as WasmCompileResult } from '../lib/wasm.js';
|
|
2
1
|
import type { Config, ScriptInput } from '@mirascript/constants';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
2
|
+
import * as wasm from '../lib/wasm.js';
|
|
3
|
+
export { wasm };
|
|
4
|
+
/** 初始化模块 */
|
|
5
|
+
export declare function init(): Promise<void>;
|
|
6
6
|
/** 创建可重用的配置 */
|
|
7
|
-
export declare function createConfig(config?: Config |
|
|
7
|
+
export declare function createConfig(config?: Config | wasm.Config): wasm.Config;
|
|
8
8
|
/** 编译结果 */
|
|
9
9
|
export interface CompileResult {
|
|
10
10
|
/** 编译诊断 */
|
|
@@ -13,5 +13,5 @@ export interface CompileResult {
|
|
|
13
13
|
readonly chunk?: Uint8Array;
|
|
14
14
|
}
|
|
15
15
|
/** 编译 MiraScript 代码 */
|
|
16
|
-
export declare function compileSync(script: ScriptInput, config: Config |
|
|
16
|
+
export declare function compileSync(script: ScriptInput, config: Config | wasm.Config): CompileResult;
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAyC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,YAAY;AACZ,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1C;AAED,eAAe;AACf,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAmBvE;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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
wasm
|
|
7
|
-
}
|
|
8
|
-
export const ready = module.then(async () => {
|
|
9
|
-
await new Promise((resolve) => setTimeout(resolve, 1));
|
|
10
|
-
});
|
|
1
|
+
import * as wasm from '../lib/wasm.js';
|
|
2
|
+
export { wasm };
|
|
3
|
+
/** 初始化模块 */
|
|
4
|
+
export async function init() {
|
|
5
|
+
const { module } = await import('@mirascript/wasm/loader');
|
|
6
|
+
await wasm.default({ module_or_path: module });
|
|
7
|
+
}
|
|
11
8
|
/** 创建可重用的配置 */
|
|
12
9
|
export function createConfig(config) {
|
|
13
10
|
if (!config)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,YAAY;AACZ,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,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,CAAU,CAAC;QACxD,CAAC;QACD,IAAI,GAAG,KAAK,8BAA8B,EAAE,CAAC;YACzC,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAmC,CAAU,CAAC;QAC1F,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"}
|
package/dist/loader/web.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const module: Promise<BufferSource>;
|
|
1
|
+
export declare const module: Promise<Response | BufferSource>;
|
|
2
2
|
//# sourceMappingURL=web.d.ts.map
|
package/dist/loader/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/loader/web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/loader/web.ts"],"names":[],"mappings":"AAmEA,eAAO,MAAM,MAAM,EAAE,OAAO,CAAC,QAAQ,GAAG,YAAY,CAYhD,CAAC"}
|
package/dist/loader/web.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/** 从 Document 推断 URL */
|
|
2
|
-
async function loadDocument() {
|
|
3
|
-
const fallbackUrl = (document?.currentScript instanceof HTMLScriptElement
|
|
4
|
-
? document.currentScript.src
|
|
5
|
-
: (document.currentScript?.href?.baseVal ?? '')) || document.location.href;
|
|
6
|
-
return await body(fetch(new URL('../../lib/wasm_bg.wasm', fallbackUrl)));
|
|
7
|
-
}
|
|
8
1
|
/** 从 import.meta.url 推断 URL */
|
|
9
2
|
async function loadUrl() {
|
|
10
3
|
return await body(fetch(new URL('../../lib/wasm_bg.wasm', import.meta.url)));
|
|
@@ -19,8 +12,8 @@ async function loadEsm() {
|
|
|
19
12
|
/** 由 esm.sh 加载模块 */
|
|
20
13
|
async function loadEsmSh() {
|
|
21
14
|
const url = new URL(import.meta.url);
|
|
22
|
-
const { pathname } = url;
|
|
23
|
-
if (!pathname.includes('/@mirascript/wasm')) {
|
|
15
|
+
const { pathname, protocol } = url;
|
|
16
|
+
if (!pathname.includes('/@mirascript/wasm') || !(protocol === 'https:' || protocol === 'http:')) {
|
|
24
17
|
throw new Error('Not loaded from esm.sh');
|
|
25
18
|
}
|
|
26
19
|
const segments = pathname.split('/');
|
|
@@ -60,14 +53,14 @@ async function mod(m) {
|
|
|
60
53
|
async function body(response) {
|
|
61
54
|
const resp = await response;
|
|
62
55
|
if (resp.ok) {
|
|
63
|
-
return
|
|
56
|
+
return resp;
|
|
64
57
|
}
|
|
65
58
|
else {
|
|
66
59
|
throw new Error(`Failed to fetch wasm module: ${resp.status} ${resp.statusText}`);
|
|
67
60
|
}
|
|
68
61
|
}
|
|
69
62
|
export const module = /* @__PURE__ */ (async () => {
|
|
70
|
-
const candidates = [loadEsmSh, loadEsm, loadUrl
|
|
63
|
+
const candidates = [loadEsmSh, loadEsm, loadUrl];
|
|
71
64
|
for (const candidate of candidates) {
|
|
72
65
|
try {
|
|
73
66
|
const mod = await candidate();
|
package/dist/loader/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/loader/web.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/loader/web.ts"],"names":[],"mappings":"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"}
|
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.
|
|
3
|
+
"version": "0.1.53",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "MiraScript compiler for WebAssembly",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@types/node": "^25.
|
|
19
|
+
"@types/node": "^25.4.0",
|
|
20
20
|
"nodemon": "^3.1.14",
|
|
21
|
-
"@mirascript/constants": "~0.1.
|
|
21
|
+
"@mirascript/constants": "~0.1.53"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"wasm": "wasm-pack build --target web --out-dir ../../packages/wasm/lib --no-pack ../../crates/wasm",
|
package/src/index.ts
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
|
-
import type { Config as WasmConfig, CompileResult as WasmCompileResult } from '../lib/wasm.js';
|
|
2
1
|
import type { Config, InputMode, DiagnosticPositionEncoding, ScriptInput } from '@mirascript/constants';
|
|
2
|
+
import * as wasm from '../lib/wasm.js';
|
|
3
3
|
|
|
4
|
-
export
|
|
4
|
+
export { wasm };
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const module = import('@mirascript/wasm/loader')
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
void import('../lib/wasm.js').then(async (mod) => {
|
|
12
|
-
mod.initSync({ module: await module });
|
|
13
|
-
wasm = mod;
|
|
14
|
-
});
|
|
15
|
-
export const ready = module.then(async () => {
|
|
16
|
-
await new Promise<void>((resolve) => setTimeout(resolve, 1));
|
|
17
|
-
});
|
|
6
|
+
/** 初始化模块 */
|
|
7
|
+
export async function init(): Promise<void> {
|
|
8
|
+
const { module } = await import('@mirascript/wasm/loader');
|
|
9
|
+
await wasm.default({ module_or_path: module });
|
|
10
|
+
}
|
|
18
11
|
|
|
19
12
|
/** 创建可重用的配置 */
|
|
20
|
-
export function createConfig(config?: Config |
|
|
13
|
+
export function createConfig(config?: Config | wasm.Config): wasm.Config {
|
|
21
14
|
if (!config) return new wasm.Config();
|
|
22
15
|
if (config instanceof wasm.Config) return config;
|
|
23
16
|
const cfg = new wasm.Config();
|
|
@@ -48,9 +41,9 @@ export interface CompileResult {
|
|
|
48
41
|
|
|
49
42
|
/** 编译 */
|
|
50
43
|
function compileImpl<T>(
|
|
51
|
-
compiler: (script: T, config:
|
|
44
|
+
compiler: (script: T, config: wasm.Config) => wasm.CompileResult,
|
|
52
45
|
script: T,
|
|
53
|
-
config: Config |
|
|
46
|
+
config: Config | wasm.Config,
|
|
54
47
|
): CompileResult {
|
|
55
48
|
const cfg = createConfig(config);
|
|
56
49
|
const result = compiler(script, cfg);
|
|
@@ -68,7 +61,7 @@ function compileImpl<T>(
|
|
|
68
61
|
}
|
|
69
62
|
|
|
70
63
|
/** 编译 MiraScript 代码 */
|
|
71
|
-
export function compileSync(script: ScriptInput, config: Config |
|
|
64
|
+
export function compileSync(script: ScriptInput, config: Config | wasm.Config): CompileResult {
|
|
72
65
|
return typeof script == 'string'
|
|
73
66
|
? compileImpl(wasm.compile, script, config)
|
|
74
67
|
: compileImpl(wasm.compile_buffer, script, config);
|
package/src/loader/web.ts
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/** 从 Document 推断 URL */
|
|
2
|
-
async function loadDocument() {
|
|
3
|
-
const fallbackUrl =
|
|
4
|
-
(document?.currentScript instanceof HTMLScriptElement
|
|
5
|
-
? document.currentScript.src
|
|
6
|
-
: (document.currentScript?.href?.baseVal ?? '')) || document.location.href;
|
|
7
|
-
return await body(fetch(new URL('../../lib/wasm_bg.wasm', fallbackUrl)));
|
|
8
|
-
}
|
|
9
|
-
|
|
10
1
|
/** 从 import.meta.url 推断 URL */
|
|
11
2
|
async function loadUrl() {
|
|
12
3
|
return await body(fetch(new URL('../../lib/wasm_bg.wasm', import.meta.url)));
|
|
@@ -23,8 +14,8 @@ async function loadEsm() {
|
|
|
23
14
|
/** 由 esm.sh 加载模块 */
|
|
24
15
|
async function loadEsmSh() {
|
|
25
16
|
const url = new URL(import.meta.url);
|
|
26
|
-
const { pathname } = url;
|
|
27
|
-
if (!pathname.includes('/@mirascript/wasm')) {
|
|
17
|
+
const { pathname, protocol } = url;
|
|
18
|
+
if (!pathname.includes('/@mirascript/wasm') || !(protocol === 'https:' || protocol === 'http:')) {
|
|
28
19
|
throw new Error('Not loaded from esm.sh');
|
|
29
20
|
}
|
|
30
21
|
const segments = pathname.split('/');
|
|
@@ -41,7 +32,7 @@ async function loadEsmSh() {
|
|
|
41
32
|
}
|
|
42
33
|
|
|
43
34
|
/** 加载模块 */
|
|
44
|
-
async function mod(m: unknown): Promise<BufferSource> {
|
|
35
|
+
async function mod(m: unknown): Promise<BufferSource | Response> {
|
|
45
36
|
if (m && typeof m == 'object' && 'default' in m) {
|
|
46
37
|
return mod(m.default);
|
|
47
38
|
}
|
|
@@ -65,17 +56,17 @@ async function mod(m: unknown): Promise<BufferSource> {
|
|
|
65
56
|
}
|
|
66
57
|
|
|
67
58
|
/** 获取模块的响应体 */
|
|
68
|
-
async function body(response: Response | Promise<Response>): Promise<
|
|
59
|
+
async function body(response: Response | Promise<Response>): Promise<Response> {
|
|
69
60
|
const resp = await response;
|
|
70
61
|
if (resp.ok) {
|
|
71
|
-
return
|
|
62
|
+
return resp;
|
|
72
63
|
} else {
|
|
73
64
|
throw new Error(`Failed to fetch wasm module: ${resp.status} ${resp.statusText}`);
|
|
74
65
|
}
|
|
75
66
|
}
|
|
76
67
|
|
|
77
|
-
export const module: Promise<BufferSource> = /* @__PURE__ */ (async () => {
|
|
78
|
-
const candidates = [loadEsmSh, loadEsm, loadUrl
|
|
68
|
+
export const module: Promise<Response | BufferSource> = /* @__PURE__ */ (async () => {
|
|
69
|
+
const candidates = [loadEsmSh, loadEsm, loadUrl];
|
|
79
70
|
for (const candidate of candidates) {
|
|
80
71
|
try {
|
|
81
72
|
const mod = await candidate();
|