From 91af0af03949ade47e77370d04b3922e543550ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andi=20P=C3=A4tzold?= Date: Tue, 20 Nov 2018 21:54:08 +0100 Subject: [PATCH] fix(mailgun-js) fix validate return value for callbacks --- types/mailgun-js/index.d.ts | 36 +++++++++------------------- types/mailgun-js/mailgun-js-tests.ts | 19 +++++++-------- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/types/mailgun-js/index.d.ts b/types/mailgun-js/index.d.ts index 82a75913cf..eaa210e6e1 100644 --- a/types/mailgun-js/index.d.ts +++ b/types/mailgun-js/index.d.ts @@ -126,6 +126,8 @@ declare namespace Mailgun { unparseable: string[]; } + type ValidationCallback = (error: Error, body: ValidateResponse) => void; + interface ValidateResponse { address: string; did_you_mean: string | null; @@ -151,32 +153,16 @@ declare namespace Mailgun { bodySignature: string ): boolean; - parse( - addressList: string[], - callback?: (error: Error, body: validation.ValidateResponse) => void - ): Promise; + parse(addressList: string[], callback?: validation.ValidationCallback): Promise; - validate( - address: string, - callback?: (error: Error, body: validation.ValidateResponse) => void - ): Promise; - validate( - address: string, - isPrivate: boolean, - callback?: (error: Error, body: validation.ValidateResponse) => void - ): Promise; - validate( - address: string, - // tslint:disable-next-line unified-signatures - opts: { [key: string]: any }, - callback?: (error: Error, body: validation.ValidateResponse) => void - ): Promise; - validate( - address: string, - isPrivate: boolean, - opts: { [key: string]: any }, - callback?: (error: Error, body: validation.ValidateResponse) => void - ): Promise; + validate(address: string, callback: validation.ValidationCallback): void; + validate(address: string, opts: { [key: string]: any }, 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?: boolean, opts?: { [key: string]: any }): Promise; + validate(address: string, opts: { [key: string]: any }): Promise; } interface Lists { diff --git a/types/mailgun-js/mailgun-js-tests.ts b/types/mailgun-js/mailgun-js-tests.ts index e2bef4cab3..12bf18e437 100644 --- a/types/mailgun-js/mailgun-js-tests.ts +++ b/types/mailgun-js/mailgun-js-tests.ts @@ -30,16 +30,15 @@ const exampleSendData: mailgunFactory.messages.SendData = { mailgun.messages().send(exampleSendData, (err, body) => {}); -const validationResult1: Promise = - mailgun.validate("foo@mailgun.net"); -const validationResult2: Promise = - mailgun.validate("foo@mailgun.net", (error, body) => {}); -const validationResult3: Promise = - mailgun.validate("foo@mailgun.net", true); -const validationResult4: Promise = - mailgun.validate("foo@mailgun.net", true, (error, body) => {}); -const validationResult5: Promise = - mailgun.validate("foo@mailgun.net", true, { option: "option" }, (error, 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" }); +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) => {}); const validationResult6: mailgunFactory.validation.ValidateResponse = { address: "foo@mailgun.net",