UNPKG

@bytecodealliance/jco

Version:

JavaScript tooling for working with WebAssembly Components

78 lines (76 loc) 2.69 kB
export { optimizeComponent as opt } from "./cmd/opt.js"; export { transpileComponent as transpile, typesComponent as types } 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); }