From 35bca8038a202d1676cd68ce5c05409a2ee151a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andi=20P=C3=A4tzold?= Date: Tue, 20 Nov 2018 22:06:08 +0100 Subject: [PATCH] feat(mailgun-js) specify validation options --- types/mailgun-js/index.d.ts | 19 +++++++++++++++---- types/mailgun-js/mailgun-js-tests.ts | 8 ++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/types/mailgun-js/index.d.ts b/types/mailgun-js/index.d.ts index eaa210e6e1..0c6ef0eef3 100644 --- a/types/mailgun-js/index.d.ts +++ b/types/mailgun-js/index.d.ts @@ -128,6 +128,15 @@ declare namespace Mailgun { type ValidationCallback = (error: Error, body: ValidateResponse) => void; + interface ValidationOptionsPublic { + api_key?: string; + mailbox_verification?: boolean | "true" | "false"; + } + + interface ValidationOptionsPrivate { + mailbox_verification?: boolean | "true" | "false"; + } + interface ValidateResponse { address: string; did_you_mean: string | null; @@ -156,13 +165,15 @@ declare namespace Mailgun { parse(addressList: string[], callback?: validation.ValidationCallback): Promise; validate(address: string, callback: validation.ValidationCallback): void; - validate(address: string, opts: { [key: string]: any }, callback: validation.ValidationCallback): void; + validate(address: string, opts: validation.ValidationOptionsPublic, callback: validation.ValidationCallback): void; // tslint:disable-next-line unified-signatures validate(address: string, isPrivate: boolean, callback: validation.ValidationCallback): void; - validate(address: string, isPrivate: boolean, opts: { [key: string]: any }, callback: validation.ValidationCallback): void; + validate(address: string, isPrivate: false, opts: validation.ValidationOptionsPublic, callback: validation.ValidationCallback): void; + validate(address: string, isPrivate: true, opts: validation.ValidationOptionsPrivate, callback: validation.ValidationCallback): void; - validate(address: string, isPrivate?: boolean, opts?: { [key: string]: any }): Promise; - validate(address: string, opts: { [key: string]: any }): Promise; + validate(address: string, opts?: validation.ValidationOptionsPublic): Promise; + validate(address: string, isPrivate: false, opts?: validation.ValidationOptionsPublic): Promise; + validate(address: string, isPrivate: true, opts?: validation.ValidationOptionsPrivate): Promise; } interface Lists { diff --git a/types/mailgun-js/mailgun-js-tests.ts b/types/mailgun-js/mailgun-js-tests.ts index 12bf18e437..e06e683248 100644 --- a/types/mailgun-js/mailgun-js-tests.ts +++ b/types/mailgun-js/mailgun-js-tests.ts @@ -33,12 +33,12 @@ mailgun.messages().send(exampleSendData, (err, body) => {}); let validationResultPromise: Promise; validationResultPromise = mailgun.validate("foo@mailgun.net"); validationResultPromise = mailgun.validate("foo@mailgun.net", true); -validationResultPromise = mailgun.validate("foo@mailgun.net", true, { option: "option" }); -validationResultPromise = mailgun.validate("foo@mailgun.net", { option: "option" }); +validationResultPromise = mailgun.validate("foo@mailgun.net", true, { mailbox_verification: true }); +validationResultPromise = mailgun.validate("foo@mailgun.net", { mailbox_verification: false, api_key: "..." }); mailgun.validate("foo@mailgun.net", (error, body) => {}); mailgun.validate("foo@mailgun.net", true, (error, body) => {}); -mailgun.validate("foo@mailgun.net", true, { option: "option" }, (error, body) => {}); -mailgun.validate("foo@mailgun.net", { option: "option" }, (error, body) => {}); +mailgun.validate("foo@mailgun.net", true, { mailbox_verification: true }, (error, body) => {}); +mailgun.validate("foo@mailgun.net", { mailbox_verification: false, api_key: "..." }, (error, body) => {}); const validationResult6: mailgunFactory.validation.ValidateResponse = { address: "foo@mailgun.net",