Commit | Line | Data |
---|---|---|
11856b30 JB |
1 | import { ThreadWorker } from 'poolifier' |
2 | import fetch from 'node-fetch' | |
3 | import { type WorkerData, type WorkerResponse } from './types.js' | |
4 | ||
5 | class FetchWorker extends ThreadWorker<WorkerData, WorkerResponse> { | |
6 | public constructor () { | |
7 | super(async (workerData?: WorkerData) => { | |
8 | const response = await fetch( | |
9 | (workerData as WorkerData).url, | |
10 | workerData?.init | |
11 | ) | |
12 | // The response is not structured-cloneable, so we return the response text body instead. | |
13 | return { | |
14 | text: await response.text() | |
15 | } | |
16 | }) | |
17 | } | |
18 | } | |
19 | ||
20 | const fetchWorker = new FetchWorker() | |
21 | ||
22 | export { fetchWorker } |