forked from bytecodealliance/jco
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.js
69 lines (68 loc) · 2.55 KB
/
api.js
1
2
3
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
export { optimizeComponent as opt } from './cmd/opt.js';
export { transpileComponent as transpile } from './cmd/transpile.js';
import { $init, tools } from "../obj/wasm-tools.js";
const { print: printFn, parse: parseFn, componentWit: componentWitFn, componentNew: componentNewFn, componentEmbed: componentEmbedFn, metadataAdd: metadataAddFn, metadataShow: metadataShowFn } = tools;
/**
* @param {Parameters<import('../obj/wasm-tools.js').print>[0]} binary
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').print>>}
*/
export async function print (binary) {
await $init;
return printFn(binary);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').parse>[0]} wat
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').parse>>}
*/
export async function parse (wat) {
await $init;
return parseFn(wat);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').componentWit>[0]} binary
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').componentWit>>}
*/
export async function componentWit (binary) {
await $init;
return componentWitFn(binary);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').componentNew>[0]} binary
* @param {Parameters<import('../obj/wasm-tools.js').componentNew>[1]} adapters
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').componentNew>>}
*/
export async function componentNew (binary, adapters) {
await $init;
return componentNewFn(binary, adapters);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').componentEmbed>[0]} embedOpts
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').componentEmbed>>}
*/
export async function componentEmbed (embedOpts) {
await $init;
return componentEmbedFn(embedOpts);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').metadataAdd>[0]} binary
* @param {Parameters<import('../obj/wasm-tools.js').metadataAdd>[1]} metadata
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').metadataAdd>>}
*/
export async function metadataAdd (binary, metadata) {
await $init;
return metadataAddFn(binary, metadata);
}
/**
* @param {Parameters<import('../obj/wasm-tools.js').metadataShow>[0]} binary
* @return {Promise<ReturnType<import('../obj/wasm-tools.js').metadataShow>>}
*/
export async function metadataShow (binary) {
await $init;
return metadataShowFn(binary);
}
export function preview1AdapterCommandPath () {
return new URL('../lib/wasi_snapshot_preview1.command.wasm', import.meta.url);
}
export function preview1AdapterReactorPath () {
return new URL('../lib/wasi_snapshot_preview1.reactor.wasm', import.meta.url);
}