Task,
TaskPerformance,
WorkerStatistics
-} from '../utility-types'
+} from '../utility-types.js'
import {
DEFAULT_TASK_NAME,
EMPTY_FUNCTION,
isAsyncFunction,
isPlainObject
-} from '../utils'
-import { KillBehaviors, type WorkerOptions } from './worker-options'
+} from '../utils.js'
+import { KillBehaviors, type WorkerOptions } from './worker-options.js'
import type {
TaskAsyncFunction,
TaskFunction,
TaskFunctionOperationResult,
TaskFunctions,
TaskSyncFunction
-} from './task-functions'
+} from './task-functions.js'
import {
checkTaskFunctionName,
checkValidTaskFunctionEntry,
checkValidWorkerOptions
-} from './utils'
+} from './utils.js'
const DEFAULT_MAX_INACTIVE_TIME = 60000
const DEFAULT_WORKER_OPTIONS: WorkerOptions = {
* Handler id of the `activeInterval` worker activity check.
*/
protected activeInterval?: NodeJS.Timeout
+
/**
* Constructs a new poolifier worker.
*
'Cannot set the default task function to a non-existing task function'
)
}
- this.taskFunctions.set(
- DEFAULT_TASK_NAME,
- this.taskFunctions.get(name) as TaskFunction<Data, Response>
- )
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ this.taskFunctions.set(DEFAULT_TASK_NAME, this.taskFunctions.get(name)!)
this.sendTaskFunctionNamesToMainWorker()
return { status: true }
} catch (error) {
switch (taskFunctionOperation) {
case 'add':
response = this.addTaskFunction(
- taskFunctionName as string,
- // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func
- new Function(`return ${taskFunction as string}`)() as TaskFunction<
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ taskFunctionName!,
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func, @typescript-eslint/no-non-null-assertion
+ new Function(`return ${taskFunction!}`)() as TaskFunction<
Data,
Response
>
)
break
case 'remove':
- response = this.removeTaskFunction(taskFunctionName as string)
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ response = this.removeTaskFunction(taskFunctionName!)
break
case 'default':
- response = this.setDefaultTaskFunction(taskFunctionName as string)
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ response = this.setDefaultTaskFunction(taskFunctionName!)
break
default:
response = { status: false, error: new Error('Unknown task operation') }
...(!response.status &&
response?.error != null && {
workerError: {
- name: taskFunctionName as string,
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ name: taskFunctionName!,
message: this.handleError(response.error as Error | string)
}
})
*
* @param task - The task to execute.
*/
- protected run (task: Task<Data>): void {
+ protected readonly run = (task: Task<Data>): void => {
const { name, taskId, data } = task
const taskFunctionName = name ?? DEFAULT_TASK_NAME
if (!this.taskFunctions.has(taskFunctionName)) {
this.sendToMainWorker({
workerError: {
- name: name as string,
- message: `Task function '${name as string}' not found`,
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ name: name!,
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ message: `Task function '${name!}' not found`,
data
},
taskId
* @param fn - Task function that will be executed.
* @param task - Input data for the task function.
*/
- protected runSync (
+ protected readonly runSync = (
fn: TaskSyncFunction<Data, Response>,
task: Task<Data>
- ): void {
+ ): void => {
const { name, taskId, data } = task
try {
let taskPerformance = this.beginTaskPerformance(name)
} catch (error) {
this.sendToMainWorker({
workerError: {
- name: name as string,
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ name: name!,
message: this.handleError(error as Error | string),
data
},
* @param fn - Task function that will be executed.
* @param task - Input data for the task function.
*/
- protected runAsync (
+ protected readonly runAsync = (
fn: TaskAsyncFunction<Data, Response>,
task: Task<Data>
- ): void {
+ ): void => {
const { name, taskId, data } = task
let taskPerformance = this.beginTaskPerformance(name)
fn(data)
.catch(error => {
this.sendToMainWorker({
workerError: {
- name: name as string,
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ name: name!,
message: this.handleError(error as Error | string),
data
},