feat: add node-fetch multithreaded example
[poolifier.git] / examples / typescript / http-client / node-fetch / src / worker.ts
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 }