X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futility-types.ts;h=f13cce6a70d9f60ed7417b9d2a45675c5179fb72;hb=HEAD;hp=10d9183ca6f262cd25d475737d0e86613a55d247;hpb=54aa8d5a576b22bfdbebea90021502035a5e1c8c;p=poolifier.git diff --git a/src/utility-types.ts b/src/utility-types.ts index 10d9183c..b29f8012 100644 --- a/src/utility-types.ts +++ b/src/utility-types.ts @@ -7,7 +7,6 @@ import type { KillBehavior } from './worker/worker-options.js' /** * Worker error. - * * @typeParam Data - Type of data sent to the worker triggering an error. This can only be structured-cloneable data. */ export interface WorkerError { @@ -27,7 +26,6 @@ export interface WorkerError { /** * Task performance. - * * @internal */ export interface TaskPerformance { @@ -51,7 +49,6 @@ export interface TaskPerformance { /** * Worker task performance statistics computation settings. - * * @internal */ export interface WorkerStatistics { @@ -67,27 +64,24 @@ export interface WorkerStatistics { /** * Task function properties. - * - * @internal */ export interface TaskFunctionProperties { /** * Task function name. */ - name: string + readonly name: string /** * Task function priority. Lower values have higher priority. */ - priority?: number + readonly priority?: number /** * Task function worker choice strategy. */ - strategy?: WorkerChoiceStrategy + readonly strategy?: WorkerChoiceStrategy } /** * Message object that is passed as a task between main worker and worker. - * * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data. * @internal */ @@ -100,6 +94,15 @@ export interface Task { * Task input data that will be passed to the worker. */ readonly data?: Data + /** + * Task priority. Lower values have higher priority. + * @defaultValue 0 + */ + readonly priority?: number + /** + * Task worker choice strategy. + */ + readonly strategy?: WorkerChoiceStrategy /** * Array of transferable objects. */ @@ -111,12 +114,11 @@ export interface Task { /** * Task UUID. */ - readonly taskId?: string + readonly taskId?: `${string}-${string}-${string}-${string}-${string}` } /** * Message object that is passed between main worker and worker. - * * @typeParam Data - Type of data sent to the worker or execution response. This can only be structured-cloneable data. * @typeParam ErrorData - Type of data sent to the worker triggering an error. This can only be structured-cloneable data. * @internal @@ -182,7 +184,6 @@ export interface MessageValue /** * An object holding the task execution response promise resolve/reject callbacks. - * * @typeParam Response - Type of execution response. This can only be structured-cloneable data. * @internal */ @@ -205,4 +206,9 @@ export interface PromiseResponseWrapper { readonly asyncResource?: AsyncResource } +/** + * Remove readonly modifier from all properties of T. + * @typeParam T - Type to remove readonly modifier. + * @internal + */ export type Writable = { -readonly [P in keyof T]: T[P] }