UNPKG

@bytecodealliance/jco

Version:

JavaScript tooling for working with WebAssembly Components

53 lines (52 loc) 1.59 kB
/** @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, }