fix: node-worker-threads-pool needs inline imports in code block
[poolifier.git] / src / worker / abstract-worker.ts
index b0da7b3e8526d2271bc18204c8b4ba6fc961ed21..1e1d3088fb7cce28ad22f1961899786e6edd5fdd 100644 (file)
@@ -45,7 +45,7 @@ export abstract class AbstractWorker<
    */
   protected lastTaskTimestamp!: number
   /**
-   * Performance statistics computation.
+   * Performance statistics computation requirements.
    */
   protected statistics!: WorkerStatistics
   /**
@@ -298,6 +298,7 @@ export abstract class AbstractWorker<
   }
 
   private beginTaskPerformance (): TaskPerformance {
+    this.checkStatistics()
     return {
       timestamp: performance.now(),
       ...(this.statistics.elu && { elu: performance.eventLoopUtilization() })
@@ -307,6 +308,7 @@ export abstract class AbstractWorker<
   private endTaskPerformance (
     taskPerformance: TaskPerformance
   ): TaskPerformance {
+    this.checkStatistics()
     return {
       ...taskPerformance,
       ...(this.statistics.runTime && {
@@ -317,4 +319,10 @@ export abstract class AbstractWorker<
       })
     }
   }
+
+  private checkStatistics (): void {
+    if (this.statistics == null) {
+      throw new Error('Performance statistics computation requirements not set')
+    }
+  }
 }