Add types for email package

This commit is contained in:
Piotr Pośpiech
2022-09-05 18:27:05 +02:00
parent d6403ac544
commit 7422d41866
3 changed files with 47 additions and 0 deletions

43
packages/email/email.d.ts vendored Normal file
View File

@@ -0,0 +1,43 @@
export namespace Email {
interface EmailOptions {
from?: string | undefined;
to?: string | string[] | undefined;
cc?: string | string[] | undefined;
bcc?: string | string[] | undefined;
replyTo?: string | string[] | undefined;
subject?: string | undefined;
text?: string | undefined;
html?: string | undefined;
headers?: Object | undefined;
attachments?: Object[] | undefined;
mailComposer?: MailComposer | undefined;
}
interface CustomEmailOptions extends EmailOptions {
packageSettings?: unknown;
}
function send(options: EmailOptions): void;
function hookSend(fn: (options: EmailOptions) => boolean): void;
function customTransport(fn: (options: CustomEmailOptions) => void): void;
}
export interface MailComposerOptions {
escapeSMTP: boolean;
encoding: string;
charset: string;
keepBcc: boolean;
forceEmbeddedImages: boolean;
}
export var MailComposer: MailComposerStatic;
export interface MailComposerStatic {
new (options: MailComposerOptions): MailComposer;
}
export interface MailComposer {
addHeader(name: string, value: string): void;
setMessageOption(from: string, to: string, body: string, html: string): void;
streamMessage(): void;
pipe(stream: any /** fs.WriteStream **/): void;
}

View File

@@ -0,0 +1,3 @@
{
"typesEntry": "email.d.ts"
}

View File

@@ -10,6 +10,7 @@ Npm.depends({
Package.onUse(function(api) {
api.use(['ecmascript', 'logging', 'callback-hook'], 'server');
api.addAssets('email.d.ts', ['client', 'server']);
api.mainModule('email.js', 'server');
api.export(['Email', 'EmailInternals'], 'server');
api.export('EmailTest', 'server', { testOnly: true });