1 import { dirname
, extname
, join
} from
'node:path'
2 import { fileURLToPath
} from
'node:url'
4 import type SMTPTransport from
'nodemailer/lib/smtp-transport/index.js'
5 import { availableParallelism
, DynamicThreadPool
} from
'poolifier'
7 import type { WorkerData
} from
'./types.js'
9 const workerFile
= join(
10 dirname(fileURLToPath(import.meta
.url
)),
11 `worker${extname(fileURLToPath(import.meta.url))}`
14 export const smtpClientPool
= new DynamicThreadPool
<
16 SMTPTransport
.SentMessageInfo
17 >(0, availableParallelism(), workerFile
, {
18 enableTasksQueue
: true,
22 errorHandler
: (e
: Error) => {
23 console
.error('Thread worker error:', e
)