Spaces:
Sleeping
Sleeping
| import { QuickJSAsyncContext } from "./context-asyncify"; | |
| import { QuickJSAsyncEmscriptenModule } from "./emscripten-types"; | |
| import { QuickJSAsyncFFI } from "./variants"; | |
| import { ModuleEvalOptions, QuickJSWASMModule } from "./module"; | |
| import { QuickJSAsyncRuntime } from "./runtime-asyncify"; | |
| import { AsyncRuntimeOptions, ContextOptions } from "./types"; | |
| /** | |
| * Asyncified version of [[QuickJSWASMModule]]. | |
| * | |
| * Due to limitations of Emscripten's ASYNCIFY process, only a single async | |
| * function call can happen at a time across the entire WebAssembly module. | |
| * | |
| * That means that all runtimes, contexts, functions, etc created inside this | |
| * WebAssembly are limited to a single concurrent async action. | |
| * **Multiple concurrent async actions is an error.** | |
| * | |
| * To allow for multiple concurrent async actions, you must create multiple WebAssembly | |
| * modules. | |
| */ | |
| export declare class QuickJSAsyncWASMModule extends QuickJSWASMModule { | |
| /** @private */ | |
| protected ffi: QuickJSAsyncFFI; | |
| /** @private */ | |
| protected module: QuickJSAsyncEmscriptenModule; | |
| /** @private */ | |
| constructor(module: QuickJSAsyncEmscriptenModule, ffi: QuickJSAsyncFFI); | |
| /** | |
| * Create a new async runtime inside this WebAssembly module. All runtimes inside a | |
| * module are limited to a single async call at a time. For multiple | |
| * concurrent async actions, create multiple WebAssembly modules. | |
| */ | |
| newRuntime(options?: AsyncRuntimeOptions): QuickJSAsyncRuntime; | |
| /** | |
| * A simplified API to create a new [[QuickJSRuntime]] and a | |
| * [[QuickJSContext]] inside that runtime at the same time. The runtime will | |
| * be disposed when the context is disposed. | |
| */ | |
| newContext(options?: ContextOptions): QuickJSAsyncContext; | |
| /** Synchronous evalCode is not supported. */ | |
| evalCode(): never; | |
| /** | |
| * One-off evaluate code without needing to create a [[QuickJSRuntimeAsync]] or | |
| * [[QuickJSContextSync]] explicitly. | |
| * | |
| * This version allows for asynchronous Ecmascript module loading. | |
| * | |
| * Note that only a single async action can occur at a time inside the entire WebAssembly module. | |
| * **Multiple concurrent async actions is an error.** | |
| * | |
| * See the documentation for [[QuickJSWASMModule.evalCode]] for more details. | |
| */ | |
| evalCodeAsync(code: string, options: ModuleEvalOptions): Promise<unknown>; | |
| } | |