@bytecodealliance/jco
Version:
JavaScript tooling for working with WebAssembly Components
53 lines (52 loc) • 1.59 kB
TypeScript
/** @module Interface local:wasm-tools/tools **/
export function parse(wat: string): Uint8Array;
export function print(binary: Uint8Array): string;
export function componentNew(binary: Uint8Array, adapters: Array<[string, Uint8Array]> | undefined): Uint8Array;
export function componentWit(binary: Uint8Array): string;
export function componentEmbed(embedOpts: EmbedOpts): Uint8Array;
export function metadataShow(binary: Uint8Array): Array<ModuleMetadata>;
export function metadataAdd(binary: Uint8Array, metadata: ProducersFields): Uint8Array;
/**
* # Variants
*
* ## `"utf8"`
*
* ## `"utf16"`
*
* ## `"compact-utf16"`
*/
export type StringEncoding = 'utf8' | 'utf16' | 'compact-utf16';
export type ProducersFields = Array<[string, Array<[string, string]>]>;
export type EnabledFeatureSet = EnabledFeatureSetList | EnabledFeatureSetAll;
export interface EnabledFeatureSetList {
tag: 'list',
val: Array<string>,
}
export interface EnabledFeatureSetAll {
tag: 'all',
}
export interface EmbedOpts {
binary?: Uint8Array,
witSource?: string,
witPath?: string,
stringEncoding?: StringEncoding,
dummy?: boolean,
world?: string,
metadata?: ProducersFields,
features?: EnabledFeatureSet,
}
export type ModuleMetaType = ModuleMetaTypeModule | ModuleMetaTypeComponent;
export interface ModuleMetaTypeModule {
tag: 'module',
}
export interface ModuleMetaTypeComponent {
tag: 'component',
val: number,
}
export interface ModuleMetadata {
parentIndex?: number,
name?: string,
metaType: ModuleMetaType,
range: [number, number],
producers: ProducersFields,
}