UNPKG

fractal-core

Version:

A minimalist and well crafted app, content or component is our conviction

49 lines (48 loc) 1.61 kB
import { HandlerObject, ModuleAPI, ModuleDef, Module } from '../core'; export interface WorkerAPI { postMessage(value: any): void; onmessage?(ev: WorkerEvent): void; } export interface WorkerEvent { data: any; } export interface SyncQueue { queue: Waiter[]; addWaiter(Waiter: any): void; next(data: any): void; } export interface Waiter { (data: any): boolean; } export declare function makeSyncQueue(): SyncQueue; export declare const workerHandler: (type: "interface" | "task" | "group", name: string, syncQueue: SyncQueue, workerAPI?: WorkerAPI) => (mod: ModuleAPI) => { state: any; handle: (id: any, value: any) => Promise<any>; destroy: () => void; }; export declare const workerLog: (type: "error" | "warn", workerAPI?: WorkerAPI) => (source: string, description: string) => void; export declare const createWorkerListener: (syncQueue: SyncQueue, workerAPI?: WorkerAPI) => any; export interface WorkerModuleDef extends ModuleDef { worker: any; Root: any; } export interface WorkerModule { worker: WorkerAPI; moduleAPI: ModuleAPI; groupObjects: { [name: string]: HandlerObject; }; taskObjects: { [name: string]: HandlerObject; }; interfaceObjects: { [name: string]: HandlerObject; }; } export declare function runWorker(def: WorkerModuleDef): Promise<WorkerModule>; export interface ExceptionsObject { interfaces: string[]; tasks: string[]; groups: string[]; } export declare const runInWorker: (moduleDef: ModuleDef, exceptions?: ExceptionsObject, workerAPI?: WorkerAPI) => Promise<Module>;