UNPKG

wasmoon

Version:

A real lua VM with JS bindings made with webassembly

51 lines (50 loc) 2.04 kB
import { LuaResumeResult, LuaReturn, LuaState, LuaThreadRunOptions, LuaType } from './types'; import { Pointer } from './pointer'; import LuaTypeExtension from './type-extension'; import MultiReturn from './multireturn'; import type LuaWasm from './luawasm'; export interface OrderedExtension { priority: number; extension: LuaTypeExtension<unknown>; } export default class Thread { readonly address: LuaState; readonly lua: LuaWasm; protected readonly typeExtensions: OrderedExtension[]; private closed; private hookFunctionPointer; private timeout?; private readonly parent?; constructor(lua: LuaWasm, typeExtensions: OrderedExtension[], address: number, parent?: Thread); newThread(): Thread; resetThread(): void; loadString(luaCode: string, name?: string): void; loadFile(filename: string): void; resume(argCount?: number): LuaResumeResult; getTop(): number; setTop(index: number): void; remove(index: number): void; setField(index: number, name: string, value: unknown): void; run(argCount?: number, options?: Partial<LuaThreadRunOptions>): Promise<MultiReturn>; runSync(argCount?: number): MultiReturn; pop(count?: number): void; call(name: string, ...args: any[]): MultiReturn; getStackValues(start?: number): MultiReturn; stateToThread(L: LuaState): Thread; pushValue(rawValue: unknown, userdata?: unknown): void; setMetatable(index: number, metatable: Record<any, any>): void; getMetatableName(index: number): string | undefined; getValue(index: number, inputType?: LuaType, userdata?: unknown): any; close(): void; setTimeout(timeout: number | undefined): void; getTimeout(): number | undefined; getPointer(index: number): Pointer; isClosed(): boolean; indexToString(index: number): string; dumpStack(log?: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }): void; assertOk(result: LuaReturn): void; private getValueDecorations; }