luau-web
Version:
Luau bindings with dynamic JavaScript interop for web browsers, Node.js, and TypeScript.
51 lines (42 loc) • 1.52 kB
TypeScript
export class CompileError extends Error {
constructor(message: string);
}
export interface LuauEnv {
[key: string]: any;
}
export interface LuauTable {
get(key: any): any;
set(key: any, value: any): any;
[key: string]: any;
}
export type LuauFunction = (...args: any) => any;
export function Mutable(object: object | Map<any, any>): Map<any, any>;
export class LuauState {
env: LuauEnv | undefined;
envIdx: number;
static createAsync(env?: LuauEnv): Promise<LuauState>;
constructor(env?: LuauEnv);
loadstring(source: string, chunkname: string, throwOnCompilationError: true): LuauFunction;
loadstring(source: string, chunkname?: string, throwOnCompilationError?: boolean): (LuauFunction) | string;
makeTransaction(value: any): number;
setEnvironment(env: LuauEnv): void;
getValue(idx: number): any;
destroy(): void;
}
export interface InternalLuauWasmModule {
ccall: (ident: any, returnType: any, argTypes: any, args: any, opts: any) => any;
cwrap: (ident: any, returnType: any, argTypes: any, opts: any) => any;
onRuntimeInitialized: (arg: any) => any;
LUA_VALUE: symbol;
JS_VALUE: symbol;
JS_MUTABLE: symbol;
FatalJSError: { new(message?: string): Error };
LuaError: { new(message?: string): Error };
GlueError: { new(message?: string): Error };
transactionData: object[];
environments: LuauEnv[];
fprint: (...args: any[]) => void;
fprintwarn: (...args: any[]) => void;
fprinterr: (...args: any[]) => void;
}
export declare const InternalLuauWasmModule: InternalLuauWasmModule;