@mirascript/bindings 0.1.62-alpha.7 → 0.1.62-alpha.8

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.
@@ -0,0 +1,11 @@
1
+ import * as bundle from '#bundle';
2
+ import * as wasm from './wasm.js';
3
+ /** 字节码模块 */
4
+ export type { BcModule } from '#bundle';
5
+ /** 字节码模块 */
6
+ export type BcModuleType = wasm.BcModuleType | bundle.BcModuleType;
7
+ /** 加载模块 */
8
+ export declare const loadModule: () => Promise<BcModuleType>;
9
+ /** 获取已加载的模块 */
10
+ export declare const getModule: () => BcModuleType;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,YAAY;AACZ,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY;AACZ,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAoBnE,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAe,CAAC;AACnE,eAAe;AACf,eAAO,MAAM,SAAS,EAAE,MAAM,YAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ import * as bundle from '#bundle';
2
+ import * as wasm from './wasm.js';
3
+ import { ModuleLoader } from './loader.js';
4
+ const loader = new ModuleLoader(async () => {
5
+ try {
6
+ return await bundle.loadModule();
7
+ /* c8 ignore next 5 */
8
+ }
9
+ catch (ex) {
10
+ if (typeof process === 'undefined' || !process?.getBuiltinModule) {
11
+ // eslint-disable-next-line no-console
12
+ console.warn('Failed to load compiler bundle, falling back to @mirascript/wasm');
13
+ }
14
+ else {
15
+ process.getBuiltinModule('node:util').debuglog('mirascript')('Failed to load compiler bundle, falling back to @mirascript/wasm. Error:', ex);
16
+ }
17
+ return await wasm.loadModule();
18
+ }
19
+ });
20
+ /** 加载模块 */
21
+ export const loadModule = loader.load;
22
+ /** 获取已加载的模块 */
23
+ export const getModule = loader.get;
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAe,KAAK,IAAI,EAAE;IACrD,IAAI,CAAC;QACD,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,sBAAsB;IAC1B,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC/D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CACxD,0EAA0E,EAC1E,EAAE,CACL,CAAC;QACN,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,WAAW;AACX,MAAM,CAAC,MAAM,UAAU,GAAgC,MAAM,CAAC,IAAI,CAAC;AACnE,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAuB,MAAM,CAAC,GAAG,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** 模块加载器 */
2
+ export declare class ModuleLoader<T> {
3
+ private readonly loader;
4
+ constructor(loader: () => Promise<T>);
5
+ private module;
6
+ private loading;
7
+ /** 加载模块 */
8
+ readonly load: () => Promise<T>;
9
+ /**
10
+ * 获取已加载的模块
11
+ * @throws {Error} 模块尚未加载
12
+ */
13
+ readonly get: () => T;
14
+ }
15
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,qBAAa,YAAY,CAAC,CAAC;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAyB;IAExC,WAAW;IACX,QAAQ,CAAC,IAAI,QAAa,OAAO,CAAC,CAAC,CAAC,CA0BlC;IACF;;;OAGG;IACH,QAAQ,CAAC,GAAG,QAAO,CAAC,CAMlB;CACL"}
package/dist/loader.js ADDED
@@ -0,0 +1,44 @@
1
+ /** 模块加载器 */
2
+ export class ModuleLoader {
3
+ constructor(loader) {
4
+ this.loader = loader;
5
+ /** 加载模块 */
6
+ this.load = async () => {
7
+ const { module, loading, loader } = this;
8
+ if (module != null)
9
+ return module;
10
+ if (loading != null)
11
+ return loading;
12
+ const l = (async () => {
13
+ const mod = await loader();
14
+ this.module = mod;
15
+ return mod;
16
+ })();
17
+ // Use .then() rather than .finally() to make Node.js happy
18
+ // Avoid Unhandled rejection
19
+ void l.then(() => {
20
+ if (this.loading === l) {
21
+ this.loading = undefined;
22
+ }
23
+ }, () => {
24
+ if (this.loading === l) {
25
+ this.loading = undefined;
26
+ }
27
+ });
28
+ this.loading = l;
29
+ return l;
30
+ };
31
+ /**
32
+ * 获取已加载的模块
33
+ * @throws {Error} 模块尚未加载
34
+ */
35
+ this.get = () => {
36
+ const { module } = this;
37
+ if (module == null) {
38
+ throw new Error('MiraScript compiler module is not loaded.');
39
+ }
40
+ return module;
41
+ };
42
+ }
43
+ }
44
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,MAAM,OAAO,YAAY;IACrB,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAIrD,WAAW;QACF,SAAI,GAAG,KAAK,IAAgB,EAAE;YACnC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC;YAClC,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,OAAO,CAAC;YAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBAClB,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBAClB,OAAO,GAAG,CAAC;YACf,CAAC,CAAC,EAAE,CAAC;YACL,2DAA2D;YAC3D,4BAA4B;YAC5B,KAAK,CAAC,CAAC,IAAI,CACP,GAAG,EAAE;gBACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC7B,CAAC;YACL,CAAC,EACD,GAAG,EAAE;gBACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC7B,CAAC;YACL,CAAC,CACJ,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;QACb,CAAC,CAAC;QACF;;;WAGG;QACM,QAAG,GAAG,GAAM,EAAE;YACnB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACxB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IA1CsD,CAAC;CA2C5D"}
package/dist/napi.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import type * as BcModule from '@mirascript/napi';
2
+ /** 字节码模块 */
3
+ export type { BcModule };
4
+ /** 字节码模块 */
5
+ export type BcModuleType = typeof BcModule;
6
+ /** 加载模块 */
7
+ export declare const loadModule: () => Promise<BcModuleType>;
8
+ /** 获取已加载的模块 */
9
+ export declare const getModule: () => BcModuleType;
10
+ //# sourceMappingURL=napi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"napi.d.ts","sourceRoot":"","sources":["../src/napi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAElD,YAAY;AACZ,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,YAAY;AACZ,MAAM,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC;AAI3C,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAe,CAAC;AACnE,eAAe;AACf,eAAO,MAAM,SAAS,EAAE,MAAM,YAAyB,CAAC"}
package/dist/napi.js ADDED
@@ -0,0 +1,7 @@
1
+ import { ModuleLoader } from './loader.js';
2
+ const loader = new ModuleLoader(async () => await import('@mirascript/napi'));
3
+ /** 加载模块 */
4
+ export const loadModule = loader.load;
5
+ /** 获取已加载的模块 */
6
+ export const getModule = loader.get;
7
+ //# sourceMappingURL=napi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"napi.js","sourceRoot":"","sources":["../src/napi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAe,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE5F,WAAW;AACX,MAAM,CAAC,MAAM,UAAU,GAAgC,MAAM,CAAC,IAAI,CAAC;AACnE,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAuB,MAAM,CAAC,GAAG,CAAC"}
package/dist/wasm.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import type * as BcModule from '@mirascript/wasm';
2
+ /** 字节码模块 */
3
+ export type { BcModule };
4
+ /** 字节码模块 */
5
+ export type BcModuleType = typeof BcModule;
6
+ /** 加载模块 */
7
+ export declare const loadModule: () => Promise<BcModuleType>;
8
+ /** 获取已加载的模块 */
9
+ export declare const getModule: () => BcModuleType;
10
+ //# sourceMappingURL=wasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAElD,YAAY;AACZ,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,YAAY;AACZ,MAAM,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC;AAQ3C,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAe,CAAC;AACnE,eAAe;AACf,eAAO,MAAM,SAAS,EAAE,MAAM,YAAyB,CAAC"}
package/dist/wasm.js ADDED
@@ -0,0 +1,11 @@
1
+ import { ModuleLoader } from './loader.js';
2
+ const loader = new ModuleLoader(async () => {
3
+ const wasm = await import('@mirascript/wasm');
4
+ await wasm.init();
5
+ return wasm;
6
+ });
7
+ /** 加载模块 */
8
+ export const loadModule = loader.load;
9
+ /** 获取已加载的模块 */
10
+ export const getModule = loader.get;
11
+ //# sourceMappingURL=wasm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAe,KAAK,IAAI,EAAE;IACrD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,WAAW;AACX,MAAM,CAAC,MAAM,UAAU,GAAgC,MAAM,CAAC,IAAI,CAAC;AACnE,eAAe;AACf,MAAM,CAAC,MAAM,SAAS,GAAuB,MAAM,CAAC,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/bindings",
3
- "version": "0.1.62-alpha.7",
3
+ "version": "0.1.62-alpha.8",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "MiraScript compiler bindings",
@@ -19,8 +19,8 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@mirascript/wasm": "~0.1.62-alpha.7",
23
- "@mirascript/napi": "~0.1.62-alpha.7"
22
+ "@mirascript/napi": "~0.1.62-alpha.8",
23
+ "@mirascript/wasm": "~0.1.62-alpha.8"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^25.6.0"