/**
* Make all properties in T non-readonly.
+ *
+ * @typeParam T - Type in which properties will be non-readonly.
*/
export type Draft<T> = { -readonly [P in keyof T]?: T[P] }
*
* @typeParam Data - Type of data sent to the worker. This can only be serializable data.
* @typeParam MainWorker - Type of main worker.
+ * @internal
*/
export interface MessageValue<
Data = unknown,
readonly runTime?: number
/**
* Reference to main worker.
- *
- * Only for internal use.
- * @internal
*/
readonly parent?: MainWorker
}
+/**
+ * Worker function that can be executed types.
+ */
+export type WorkerSyncFunction<Data = unknown, Response = unknown> = (
+ data?: Data
+) => Response
+export type WorkerAsyncFunction<Data = unknown, Response = unknown> = (
+ data?: Data
+) => Promise<Response>
+export type WorkerFunction<Data = unknown, Response = unknown> =
+ | WorkerSyncFunction<Data, Response>
+ | WorkerAsyncFunction<Data, Response>
+
/**
* An object holding the execution response promise resolve/reject callbacks.
*