UNPKG

@letanure/resend-cli

Version:

A command-line interface for Resend email API

40 lines 1.6 kB
import { z } from 'zod'; import { htmlOrTextMessage, htmlOrTextRefine } from '../../../utils/shared-schemas.js'; import { validatescheduledAt } from '../../../utils/validations.js'; import { createEmailRecipientsSchema, createEmailSenderSchema, createTextFieldSchema, removeEmptyFields, } from '../../../utils/zodTransforms.js'; export const CreateEmailOptionsSchema = z .object({ to: createEmailRecipientsSchema(50, true), from: createEmailSenderSchema(true), subject: createTextFieldSchema(true), bcc: createEmailRecipientsSchema(50, false), cc: createEmailRecipientsSchema(50, false), scheduledAt: z.string().optional().superRefine(validatescheduledAt), replyTo: createEmailRecipientsSchema(50, false), html: createTextFieldSchema(false), text: createTextFieldSchema(false), // react: headers: z.record(z.string(), z.string()).optional(), attachments: z .array(z.object({ content: z.string(), filename: z.string(), path: z.string().optional(), content_type: z.string().optional(), })) .optional(), tags: z .array(z.object({ name: z.string(), value: z.string(), })) .optional(), }) .refine(htmlOrTextRefine, { message: htmlOrTextMessage, }) .transform(removeEmptyFields); // Alternatively, use satisfies for stricter checking (similar to your main schema approach) // Uncomment the line below if you want even stricter type checking: // const _validateSchema: CreateEmailOptions = {} as CreateEmailOptionsType; //# sourceMappingURL=schema.js.map