import type { SetInfo, WorkerData, WorkerOptions } from './WorkerTypes.js'
-export abstract class WorkerAbstract<T extends WorkerData> {
+export abstract class WorkerAbstract<D extends WorkerData, R extends WorkerData> {
protected readonly workerScript: string
protected readonly workerOptions: WorkerOptions
public abstract readonly info: PoolInfo | SetInfo
* @param workerScript -
* @param workerOptions -
*/
- constructor (workerScript: string, workerOptions: WorkerOptions) {
+ constructor (workerScript: string | undefined, workerOptions: WorkerOptions) {
if (workerScript == null) {
throw new TypeError('Worker script is not defined')
}
/**
* Starts the worker pool/set.
*/
- public abstract start (): Promise<void>
+ public abstract start (): void | Promise<void>
/**
* Stops the worker pool/set.
*/
*
* @param elementData -
*/
- public abstract addElement (elementData: T): Promise<void>
+ public abstract addElement (elementData: D): Promise<R>
}