e2667b326f08fc718f93e9b9f43d881c1878a1ed
[poolifier.git] / examples / typescript / smtp-client-pool / src / worker.ts
1 import { createTransport } from 'nodemailer'
2 import type SMTPTransport from 'nodemailer/lib/smtp-transport/index.js'
3 import { ThreadWorker } from 'poolifier'
4
5 import type { WorkerData } from './types.js'
6
7 class SmtpClientWorker extends ThreadWorker<
8 WorkerData,
9 SMTPTransport.SentMessageInfo
10 > {
11 public constructor () {
12 super({
13 nodemailer: async (workerData?: WorkerData) => {
14 return await createTransport(workerData?.smtpTransport).sendMail(
15 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
16 workerData!.mail
17 )
18 },
19 })
20 }
21 }
22
23 export const smtpClientWorker = new SmtpClientWorker()