Merge pull request #31 from xtr-dev/dev

Fix variables field type to support all JSON-compatible values
This commit is contained in:
Bas
2025-09-13 23:41:43 +02:00
committed by GitHub
3 changed files with 10 additions and 4 deletions

View File

@@ -53,6 +53,9 @@ Your Payload configuration determines which types are used. The plugin automatic
The base interfaces provided by the plugin:
```typescript
// JSON value type that matches Payload's JSON field type
type JSONValue = string | number | boolean | { [k: string]: unknown } | unknown[] | null | undefined
interface BaseEmailDocument {
id: string | number
template?: any
@@ -64,7 +67,7 @@ interface BaseEmailDocument {
subject: string
html: string
text?: string | null
variables?: Record<string, any> | null
variables?: JSONValue // Supports any JSON-compatible value
scheduledAt?: string | null
sentAt?: string | null
status?: 'pending' | 'processing' | 'sent' | 'failed' | null

View File

@@ -1,6 +1,6 @@
{
"name": "@xtr-dev/payload-mailing",
"version": "0.1.14",
"version": "0.1.15",
"description": "Template-based email system with scheduling and job processing for PayloadCMS",
"type": "module",
"main": "dist/index.js",

View File

@@ -2,6 +2,9 @@ import { Payload } from 'payload'
import type { CollectionConfig, RichTextField } from 'payload'
import { Transporter } from 'nodemailer'
// JSON value type that matches Payload's JSON field type
export type JSONValue = string | number | boolean | { [k: string]: unknown } | unknown[] | null | undefined
// Generic base interfaces that work with any ID type and null values
export interface BaseEmailDocument {
id: string | number
@@ -14,7 +17,7 @@ export interface BaseEmailDocument {
subject: string
html: string
text?: string | null
variables?: Record<string, any> | null
variables?: JSONValue
scheduledAt?: string | null
sentAt?: string | null
status?: 'pending' | 'processing' | 'sent' | 'failed' | null
@@ -84,7 +87,7 @@ export interface QueuedEmail {
subject: string
html: string
text?: string | null
variables?: Record<string, any> | null
variables?: JSONValue
scheduledAt?: string | null
sentAt?: string | null
status: 'pending' | 'processing' | 'sent' | 'failed'