Only allow primitive JSON for transfer between worker and main worker (#128)
[poolifier.git] / src / utility-types.ts
1 export type Draft<T> = { -readonly [P in keyof T]?: T[P] }
2
3 export type JSONPrimitive = number | boolean | string | null
4 // eslint-disable-next-line no-use-before-define
5 export type JSONValue = JSONPrimitive | JSONArray | JSONObject
6 export type JSONObject = { [k: string]: JSONValue }
7 export type JSONArray = Array<JSONValue>
8
9 export interface MessageValue<Data = unknown> {
10 readonly data?: Data
11 readonly id?: number
12 readonly kill?: number
13 readonly error?: string
14 readonly parent?: MessagePort
15 }