repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: fix fastify-worker_threads example
[poolifier.git]
/
src
/
worker
/
abstract-worker.ts
diff --git
a/src/worker/abstract-worker.ts
b/src/worker/abstract-worker.ts
index 6bf84b875622ebaece3d8b4b8dae3c637593ed68..3718964a1b1de8d14abc2bfd8c09769eefd663f8 100644
(file)
--- a/
src/worker/abstract-worker.ts
+++ b/
src/worker/abstract-worker.ts
@@
-137,6
+137,11
@@
export abstract class AbstractWorker<
'A taskFunctions parameter object key is not a string'
)
}
'A taskFunctions parameter object key is not a string'
)
}
+ if (typeof name === 'string' && name.trim().length === 0) {
+ throw new TypeError(
+ 'A taskFunctions parameter object key an empty string'
+ )
+ }
if (typeof fn !== 'function') {
throw new TypeError(
'A taskFunctions parameter object value is not a function'
if (typeof fn !== 'function') {
throw new TypeError(
'A taskFunctions parameter object value is not a function'
@@
-170,6
+175,9
@@
export abstract class AbstractWorker<
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
+ if (typeof name === 'string' && name.trim().length === 0) {
+ throw new TypeError('name parameter is an empty string')
+ }
return this.taskFunctions.has(name)
}
return this.taskFunctions.has(name)
}
@@
-191,6
+199,9
@@
export abstract class AbstractWorker<
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
+ if (typeof name === 'string' && name.trim().length === 0) {
+ throw new TypeError('name parameter is an empty string')
+ }
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot add a task function with the default reserved name'
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot add a task function with the default reserved name'
@@
-208,6
+219,7
@@
export abstract class AbstractWorker<
this.taskFunctions.set(DEFAULT_TASK_NAME, boundFn)
}
this.taskFunctions.set(name, boundFn)
this.taskFunctions.set(DEFAULT_TASK_NAME, boundFn)
}
this.taskFunctions.set(name, boundFn)
+ this.sendTaskFunctionsListToMainWorker()
return true
} catch {
return false
return true
} catch {
return false
@@
-227,6
+239,9
@@
export abstract class AbstractWorker<
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
+ if (typeof name === 'string' && name.trim().length === 0) {
+ throw new TypeError('name parameter is an empty string')
+ }
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot remove the task function with the default reserved name'
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot remove the task function with the default reserved name'
@@
-239,7
+254,9
@@
export abstract class AbstractWorker<
'Cannot remove the task function used as the default task function'
)
}
'Cannot remove the task function used as the default task function'
)
}
- return this.taskFunctions.delete(name)
+ const deleteStatus = this.taskFunctions.delete(name)
+ this.sendTaskFunctionsListToMainWorker()
+ return deleteStatus
}
/**
}
/**
@@
-264,6
+281,9
@@
export abstract class AbstractWorker<
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
if (typeof name !== 'string') {
throw new TypeError('name parameter is not a string')
}
+ if (typeof name === 'string' && name.trim().length === 0) {
+ throw new TypeError('name parameter is an empty string')
+ }
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot set the default task function reserved name as the default task function'
if (name === DEFAULT_TASK_NAME) {
throw new Error(
'Cannot set the default task function reserved name as the default task function'
@@
-408,6
+428,16
@@
export abstract class AbstractWorker<
message: MessageValue<Response, Data>
): void
message: MessageValue<Response, Data>
): void
+ /**
+ * Sends the list of task function names to the main worker.
+ */
+ protected sendTaskFunctionsListToMainWorker (): void {
+ this.sendToMainWorker({
+ taskFunctions: this.listTaskFunctions(),
+ workerId: this.id
+ })
+ }
+
/**
* Handles an error and convert it to a string so it can be sent back to the main worker.
*
/**
* Handles an error and convert it to a string so it can be sent back to the main worker.
*