NaturalCycles/nodejs-lib

View on GitHub
src/stream/transform/worker/baseWorkerClass.ts

Summary

Maintainability
A
0 mins
Test Coverage
F
50%
import { BaseWorkerData } from './transformMultiThreaded.model'

export interface WorkerClassInterface<
  IN,
  OUT,
  WORKER_DATA extends BaseWorkerData = BaseWorkerData,
> {
  WorkerClass: BaseWorkerClass<IN, OUT, WORKER_DATA>
}

/**
 * Class to be extended, to be used with `transformMultiThreaded`
 */
export abstract class BaseWorkerClass<
  IN,
  OUT,
  WORKER_DATA extends BaseWorkerData = BaseWorkerData,
> {
  constructor(public workerData: WORKER_DATA) {}

  abstract process(msg: IN, index: number): Promise<OUT>
}