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; +}