feat: add node-fetch multithreaded example
[poolifier.git] / examples / typescript / http-client / node-fetch / src / worker.ts
CommitLineData
11856b30
JB
1import { ThreadWorker } from 'poolifier'
2import fetch from 'node-fetch'
3import { type WorkerData, type WorkerResponse } from './types.js'
4
5class 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
20const fetchWorker = new FetchWorker()
21
22export { fetchWorker }