feat: smtp client pool example
[poolifier.git] / examples / typescript / smtp-client-pool / src / worker.ts
1 import { ThreadWorker } from 'poolifier'
2 import { createTransport } from 'nodemailer'
3 import type Mail from 'nodemailer/lib/mailer/index.js'
4 import { type WorkerData } from './types.js'
5
6 class SmtpClientWorker extends ThreadWorker<WorkerData> {
7 public constructor () {
8 super({
9 nodemailer: async (workerData?: WorkerData) => {
10 await createTransport(workerData?.smtpTransport).sendMail(
11 workerData?.mail as Mail.Options
12 )
13 }
14 })
15 }
16 }
17
18 export const smtpClientWorker = new SmtpClientWorker()