From cae2df6bdc3c3590df32bf7431a617177be30429 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 12 Mar 2021 10:22:17 +0100 Subject: Stricter email options typings --- shared/models/server/emailer.model.ts | 53 +++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 8 deletions(-) (limited to 'shared/models/server') diff --git a/shared/models/server/emailer.model.ts b/shared/models/server/emailer.model.ts index 069ef0bab..39512d306 100644 --- a/shared/models/server/emailer.model.ts +++ b/shared/models/server/emailer.model.ts @@ -1,12 +1,49 @@ -export type SendEmailOptions = { - to: string[] +type From = string | { name?: string, address: string } - template?: string +interface Base extends Partial { + 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 & { + 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 -- cgit v1.2.3