@montferret/ferret-wasm
Version:
Ferret compiler and runtime ported to WASM
21 lines (20 loc) • 838 B
TypeScript
export interface Version {
self: string;
ferret: string;
}
export declare type RuntimeFunction = (...args: any[]) => any;
export interface CompilerResult<T = any> {
ok: boolean;
data?: T;
error?: string;
}
export declare type CompilerCallback<T> = (err?: string, data?: T) => void;
export interface Compiler {
version(): CompilerResult<Version>;
compile(query: string): CompilerResult<string>;
destroy(id: string): CompilerResult<void>;
run<T>(id: string, args: object, cb: CompilerCallback<T>): CompilerResult<void>;
exec<T>(query: string, args: object, cb: CompilerCallback<T>): CompilerResult<void>;
register(name: string, fn: RuntimeFunction): CompilerResult<void>;
}
export declare function createCallback<T>(resolve: (data: T) => void, reject: (err: Error) => void): CompilerCallback<T>;