mirror of
https://github.com/xtr-dev/payload-mailing.git
synced 2025-12-10 08:13:23 +00:00
🚀 BREAKING: Simplify API to use Payload collections directly
- Remove complex sendEmail/scheduleEmail methods and SendEmailOptions types - Add simple renderTemplate() helper for template rendering - Users now create emails using payload.create() with full type safety - Leverage Payload's existing collection system instead of duplicating functionality - Provide comprehensive migration guide and usage examples BREAKING CHANGES: - sendEmail() and scheduleEmail() methods removed - SendEmailOptions type removed - Use payload.create() with email collection instead - Use renderTemplate() helper for template rendering Benefits: ✅ Full TypeScript support with generated Payload types ✅ Use any custom fields in your email collection ✅ Leverage Payload's validation, hooks, and access control ✅ Simpler, more consistent API ✅ Less code to maintain 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Payload } from 'payload'
|
||||
import { SendEmailOptions } from '../types/index.js'
|
||||
import { TemplateVariables } from '../types/index.js'
|
||||
|
||||
export const getMailing = (payload: Payload) => {
|
||||
const mailing = (payload as any).mailing
|
||||
@@ -9,14 +9,9 @@ export const getMailing = (payload: Payload) => {
|
||||
return mailing
|
||||
}
|
||||
|
||||
export const sendEmail = async (payload: Payload, options: SendEmailOptions): Promise<string> => {
|
||||
export const renderTemplate = async (payload: Payload, templateSlug: string, variables: TemplateVariables): Promise<{ html: string; text: string; subject: string }> => {
|
||||
const mailing = getMailing(payload)
|
||||
return mailing.service.sendEmail(options)
|
||||
}
|
||||
|
||||
export const scheduleEmail = async (payload: Payload, options: SendEmailOptions): Promise<string> => {
|
||||
const mailing = getMailing(payload)
|
||||
return mailing.service.scheduleEmail(options)
|
||||
return mailing.service.renderTemplate(templateSlug, variables)
|
||||
}
|
||||
|
||||
export const processEmails = async (payload: Payload): Promise<void> => {
|
||||
|
||||
Reference in New Issue
Block a user