andywer/threads.js

View on GitHub
src/types/worker.ts

Summary

Maintainability
A
0 mins
Test Coverage
type UnsubscribeFn = () => void

export interface AbstractedWorkerAPI {
  isWorkerRuntime(): boolean
  postMessageToMaster(message: any, transferList?: Transferable[]): void
  subscribeToMasterMessages(onMessage: (data: any) => void): UnsubscribeFn
}

export type WorkerFunction = ((...args: any[]) => any) | (() => any)

export type WorkerModule<Keys extends string> = {
  [key in Keys]: WorkerFunction
}