From b05408998d2ee872934c88940730bb032fd6cbd2 Mon Sep 17 00:00:00 2001 From: a-morales Date: Tue, 8 Mar 2016 11:17:28 -0800 Subject: [PATCH 1/4] add typings for smtpapi-nodejs library --- smtpapi-nodejs/smtpapi-nodejs-test.ts | 39 ++++++++++++++++ smtpapi-nodejs/smtpapi-nodejs.d.ts | 64 +++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 smtpapi-nodejs/smtpapi-nodejs-test.ts create mode 100644 smtpapi-nodejs/smtpapi-nodejs.d.ts diff --git a/smtpapi-nodejs/smtpapi-nodejs-test.ts b/smtpapi-nodejs/smtpapi-nodejs-test.ts new file mode 100644 index 000000000..b9d332988 --- /dev/null +++ b/smtpapi-nodejs/smtpapi-nodejs-test.ts @@ -0,0 +1,39 @@ +/** + * Created from usage code samples from //github.com/sendgrid/smtpapi-nodejs#usage + */ + +/// + +import smtpapi = require("smtpapi"); +var header = new smtpapi(); + +header.addTo('you@youremail.com'); +header.addTo('other@otheremail.com'); +header.setTos(['you@youremail.com', 'other@otheremail.com']); +header.addSubstitution('keep', ['secret']); +header.addSubstitution('other', ['one', 'two']); +header.setSubstitutions({'keep': ['secret'], 'other': ['one', 'two']}); +header.addUniqueArg('cat', 'dogs'); +header.setUniqueArgs({cow: 'chicken'}); +header.setUniqueArgs({dad: 'proud'}); +header.addCategory('tactics'); +header.addCategory('advanced'); +header.setCategories(['tactics', 'advanced']); +header.addSection('-charge-', 'This ship is useless.'); +header.setSections({'-charge-': 'This ship is useless.', '-other': 'Another section here'}); +header.addFilter('footer', 'enable', 1); +header.addFilter('footer', 'text/html', 'boo'); +header.setSendAt(1409348513); +header.setSendEachAt([1409348513, 14093485134]); +header.addSendEachAt([1409348513]); +header.addSendEachAt(14093485134); +header.setASMGroupID(123); +header.setIpPool("testPool"); +header.setFilters({ + 'footer': { + 'setting': { + 'enable': 1, + 'text/plain': 'You can haz footers!' + } + } +}); diff --git a/smtpapi-nodejs/smtpapi-nodejs.d.ts b/smtpapi-nodejs/smtpapi-nodejs.d.ts new file mode 100644 index 000000000..673532740 --- /dev/null +++ b/smtpapi-nodejs/smtpapi-nodejs.d.ts @@ -0,0 +1,64 @@ +// Type definitions for smtpapi-nodejs v1.2.0 +// Project: https://github.com/sendgrid/smtpapi-nodejs +// Definitions by: Antonio Morales +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module SmtpApi { + + interface Header { + to: string[]; + sub: Object; + unique_args: Object; + category: string[]; + section: Object; + filters: Object; + send_at: "" | number; + send_each_at: number[]; + asm_group_id: number; + ip_pool: string; + } + + interface Constructor { + new (): Instance; + new (header: Header): Instance; + } + + interface Instance { + header: Header; + version: string; + + jsonObject(): Header; + jsonString(): string; + + addTo(to: string): void; + addTo(tos: string[]): void; + addSubstitution(key: string, val: string): void; + addSubstitution(key: string, val: string[]): void; + addUniqueArg(key: string, val: string): void; + addCategory(cat: string): void; + addCategory(cat: string[]): void; + addSection(sec: string, val: string): void; + addFilter(filter: string, setting:string , val: number): void; + addFilter(filter: string, setting:string , val: string): void; + addSendEachAt(send_each_at: number): void; + addSendEachAt(send_each_at: number[]): void; + + setTos(email: string): void; + setTos(emails: string[]): void; + setSubstitutions(subs: Object): void; + setUniqueArgs(val: Object): void; + setCategories(cats: string): void; + setCategories(cats: string[]): void; + setSections(sec: Object): void; + setFilters(filters: Object): void; + setSendAt(send_at: number): void; + setSendEachAt(send_each_at: number[]): void; + setASMGroupID(asm_group_id: number): void; + setIpPool(ip_pool: string): void; + } +} + +declare module 'smtpapi' { + var smtp: SmtpApi.Constructor; + export = smtp; +} From 6691ba16e11d9f3d0de2826a5c471dab85cf8894 Mon Sep 17 00:00:00 2001 From: a-morales Date: Tue, 8 Mar 2016 15:24:32 -0800 Subject: [PATCH 2/4] update naming of test file --- .../{smtpapi-nodejs-test.ts => smtpapi-nodejs-tests.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename smtpapi-nodejs/{smtpapi-nodejs-test.ts => smtpapi-nodejs-tests.ts} (100%) diff --git a/smtpapi-nodejs/smtpapi-nodejs-test.ts b/smtpapi-nodejs/smtpapi-nodejs-tests.ts similarity index 100% rename from smtpapi-nodejs/smtpapi-nodejs-test.ts rename to smtpapi-nodejs/smtpapi-nodejs-tests.ts From 604916769ecef0f599784da7523daea4fad0efd1 Mon Sep 17 00:00:00 2001 From: a-morales Date: Tue, 8 Mar 2016 15:31:23 -0800 Subject: [PATCH 3/4] rename smtpapi to match package name on npmjs --- .../smtpapi-nodejs-tests.ts => smtpapi/smtpapi-tests.ts | 0 smtpapi-nodejs/smtpapi-nodejs.d.ts => smtpapi/smtpapi.d.ts | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename smtpapi-nodejs/smtpapi-nodejs-tests.ts => smtpapi/smtpapi-tests.ts (100%) rename smtpapi-nodejs/smtpapi-nodejs.d.ts => smtpapi/smtpapi.d.ts (100%) diff --git a/smtpapi-nodejs/smtpapi-nodejs-tests.ts b/smtpapi/smtpapi-tests.ts similarity index 100% rename from smtpapi-nodejs/smtpapi-nodejs-tests.ts rename to smtpapi/smtpapi-tests.ts diff --git a/smtpapi-nodejs/smtpapi-nodejs.d.ts b/smtpapi/smtpapi.d.ts similarity index 100% rename from smtpapi-nodejs/smtpapi-nodejs.d.ts rename to smtpapi/smtpapi.d.ts From 58fabb78eb952a401488bde82f97b9e4dc6fee56 Mon Sep 17 00:00:00 2001 From: a-morales Date: Tue, 8 Mar 2016 15:50:38 -0800 Subject: [PATCH 4/4] udpate tests --- smtpapi/smtpapi-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smtpapi/smtpapi-tests.ts b/smtpapi/smtpapi-tests.ts index b9d332988..f5e437386 100644 --- a/smtpapi/smtpapi-tests.ts +++ b/smtpapi/smtpapi-tests.ts @@ -2,7 +2,7 @@ * Created from usage code samples from //github.com/sendgrid/smtpapi-nodejs#usage */ -/// +/// import smtpapi = require("smtpapi"); var header = new smtpapi();