-export type SendEmailOptions = {
- to: string[]
+type From = string | { name?: string, address: string }
- template?: string
+interface Base extends Partial<SendEmailDefaultMessageOptions> {
+ to: string[] | string
+}
+
+interface MailTemplate extends Base {
+ template: string
locals?: { [key: string]: any }
+ text?: undefined
+}
+
+interface MailText extends Base {
+ text: string
- // override defaults
- subject?: string
- text?: string
- from?: string | { name?: string, address: string }
- replyTo?: string
+ locals?: Partial<SendEmailDefaultLocalsOptions> & {
+ title?: string
+ action?: {
+ url: string
+ text: string
+ }
+ }
}
+
+interface SendEmailDefaultLocalsOptions {
+ instanceName: string
+ text: string
+ subject: string
+}
+
+interface SendEmailDefaultMessageOptions {
+ to: string[] | string
+ from: From
+ subject: string
+ replyTo: string
+}
+
+export type SendEmailDefaultOptions = {
+ template: 'common'
+
+ message: SendEmailDefaultMessageOptions
+
+ locals: SendEmailDefaultLocalsOptions & {
+ WEBSERVER: any
+ EMAIL: any
+ }
+}
+
+export type SendEmailOptions = MailTemplate | MailText