From a28bee687a784a4f7dcf47b03c2ed44f7e4ca6f9 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Wed, 24 Jun 2020 04:53:44 +1000 Subject: [PATCH] Add types for nodemailer-sendgrid (#44912) --- types/nodemailer-sendgrid/index.d.ts | 17 ++++++++++++++ .../nodemailer-sendgrid-tests.ts | 16 +++++++++++++ types/nodemailer-sendgrid/tsconfig.json | 23 +++++++++++++++++++ types/nodemailer-sendgrid/tslint.json | 1 + 4 files changed, 57 insertions(+) create mode 100644 types/nodemailer-sendgrid/index.d.ts create mode 100644 types/nodemailer-sendgrid/nodemailer-sendgrid-tests.ts create mode 100644 types/nodemailer-sendgrid/tsconfig.json create mode 100644 types/nodemailer-sendgrid/tslint.json diff --git a/types/nodemailer-sendgrid/index.d.ts b/types/nodemailer-sendgrid/index.d.ts new file mode 100644 index 0000000000..2bbbd69164 --- /dev/null +++ b/types/nodemailer-sendgrid/index.d.ts @@ -0,0 +1,17 @@ +// Type definitions for nodemailer-sendgrid 1.0 +// Project: https://github.com/nodemailer/nodemailer-sendgrid +// Definitions by: Luke Jones +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 3.3 + +import { Transport } from 'nodemailer'; + +declare namespace nodemailerSendgrid { + interface SendgridOptions { + apiKey: string; + } +} + +declare function nodemailerSendgrid(options: nodemailerSendgrid.SendgridOptions): Transport; + +export = nodemailerSendgrid; diff --git a/types/nodemailer-sendgrid/nodemailer-sendgrid-tests.ts b/types/nodemailer-sendgrid/nodemailer-sendgrid-tests.ts new file mode 100644 index 0000000000..3ead9bea3a --- /dev/null +++ b/types/nodemailer-sendgrid/nodemailer-sendgrid-tests.ts @@ -0,0 +1,16 @@ +import nodemailerSendgrid = require('nodemailer-sendgrid'); +import nodemailer = require('nodemailer'); + +const opts: nodemailerSendgrid.SendgridOptions = { apiKey: 'XXXXXXXXXXXXXXXX' }; +const transport: nodemailer.Transporter = nodemailer.createTransport(nodemailerSendgrid(opts)); +const mailOptions: nodemailer.SendMailOptions = { + from: 'Foo Bar ✔ ', + to: 'foo@baz.com, foo@baz.com', + subject: 'Hello world ✔', + text: 'Hello world ✔', + html: 'Hello world ✔', +}; + +transport.sendMail(mailOptions, (error: Error | null, info: nodemailer.SentMessageInfo): void => { + // nothing +}); diff --git a/types/nodemailer-sendgrid/tsconfig.json b/types/nodemailer-sendgrid/tsconfig.json new file mode 100644 index 0000000000..06d13cb316 --- /dev/null +++ b/types/nodemailer-sendgrid/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "nodemailer-sendgrid-tests.ts" + ] +} diff --git a/types/nodemailer-sendgrid/tslint.json b/types/nodemailer-sendgrid/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/nodemailer-sendgrid/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }