mirror of
https://github.com/xtr-dev/payload-mailing.git
synced 2025-12-10 08:13:23 +00:00
Refactor immediate processing to use configurable job polling
Extract complex polling mechanism from sendEmail.ts into dedicated utility function (jobPolling.ts) and make polling parameters configurable via plugin options. This improves code maintainability and allows users to customize polling behavior through the jobPolling config option. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -68,6 +68,13 @@ export interface BeforeSendMailOptions {
|
||||
|
||||
export type BeforeSendHook = (options: BeforeSendMailOptions, email: BaseEmailDocument) => BeforeSendMailOptions | Promise<BeforeSendMailOptions>
|
||||
|
||||
export interface JobPollingConfig {
|
||||
maxAttempts?: number // Maximum number of polling attempts (default: 5)
|
||||
initialDelay?: number // Initial delay in milliseconds (default: 25)
|
||||
maxTotalTime?: number // Maximum total polling time in milliseconds (default: 3000)
|
||||
maxBackoffDelay?: number // Maximum delay between attempts in milliseconds (default: 400)
|
||||
}
|
||||
|
||||
export interface MailingPluginConfig {
|
||||
collections?: {
|
||||
templates?: string | Partial<CollectionConfig>
|
||||
@@ -83,6 +90,7 @@ export interface MailingPluginConfig {
|
||||
richTextEditor?: RichTextField['editor']
|
||||
beforeSend?: BeforeSendHook
|
||||
initOrder?: 'before' | 'after'
|
||||
jobPolling?: JobPollingConfig
|
||||
}
|
||||
|
||||
export interface QueuedEmail {
|
||||
|
||||
Reference in New Issue
Block a user