fractal-core
Version:
A minimalist and well crafted app, content or component is our conviction
49 lines (48 loc) • 1.61 kB
TypeScript
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>;