refactor: use named export in benchmarking code
[poolifier.git] / src / worker / worker-functions.ts
CommitLineData
b6b32453
JB
1/**
2 * Worker synchronous function that can be executed.
3 *
4 * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
5 * @typeParam Response - Type of execution response. This can only be serializable data.
6 */
7export type WorkerSyncFunction<Data = unknown, Response = unknown> = (
8 data?: Data
9) => Response
10
11/**
12 * Worker asynchronous function that can be executed.
13 * This function must return a promise.
14 *
15 * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
16 * @typeParam Response - Type of execution response. This can only be serializable data.
17 */
18export type WorkerAsyncFunction<Data = unknown, Response = unknown> = (
19 data?: Data
20) => Promise<Response>
21
22/**
23 * Worker function that can be executed.
24 * This function can be synchronous or asynchronous.
25 *
26 * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
27 * @typeParam Response - Type of execution response. This can only be serializable data.
28 */
29export type WorkerFunction<Data = unknown, Response = unknown> =
30 | WorkerSyncFunction<Data, Response>
31 | WorkerAsyncFunction<Data, Response>
32
33/**
34 * Worker functions that can be executed.
35 * This object can contain synchronous or asynchronous functions.
36 * The key is the name of the function.
37 * The value is the function itself.
38 *
39 * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
40 * @typeParam Response - Type of execution response. This can only be serializable data.
41 */
42export type TaskFunctions<Data = unknown, Response = unknown> = Record<
43string,
44WorkerFunction<Data, Response>
45>