bun + hono

This commit is contained in:
2024-11-20 14:45:39 +01:00
parent e7ad878fb9
commit f8d97ed19e
71 changed files with 535 additions and 14038 deletions

43
src/services/email.ts Normal file
View File

@@ -0,0 +1,43 @@
import { emailQueue } from '../queues/email.queue'
import { config } from '../config/env'
interface EmailOptions {
to: string
subject: string
html: string
text: string
}
export class EmailService {
async sendEmail(options: EmailOptions): Promise<void> {
const email = {
from: config.email.from,
...options
}
// Add to queue instead of sending directly
await emailQueue.add('send-email', email, {
removeOnComplete: true,
removeOnFail: 1000
})
// Log for development
await Bun.write('emails.log', JSON.stringify(email) + '\n', { append: true })
}
async getQueueStatus() {
const [waiting, active, completed, failed] = await Promise.all([
emailQueue.getWaitingCount(),
emailQueue.getActiveCount(),
emailQueue.getCompletedCount(),
emailQueue.getFailedCount()
])
return {
waiting,
active,
completed,
failed
}
}
}