1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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>;
- }
|