Skip to content

Commit 10f21eb

Browse files
committed
Merge pull request DefinitelyTyped#8454 from a-morales/add-smtpapi-typings
add typings for smtpapi-nodejs library
2 parents 418f41c + 58fabb7 commit 10f21eb

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

smtpapi/smtpapi-tests.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* Created from usage code samples from //github.com/sendgrid/smtpapi-nodejs#usage
3+
*/
4+
5+
///<reference path="smtpapi.d.ts" />
6+
7+
import smtpapi = require("smtpapi");
8+
var header = new smtpapi();
9+
10+
header.addTo('[email protected]');
11+
header.addTo('[email protected]');
12+
header.setTos(['[email protected]', '[email protected]']);
13+
header.addSubstitution('keep', ['secret']);
14+
header.addSubstitution('other', ['one', 'two']);
15+
header.setSubstitutions({'keep': ['secret'], 'other': ['one', 'two']});
16+
header.addUniqueArg('cat', 'dogs');
17+
header.setUniqueArgs({cow: 'chicken'});
18+
header.setUniqueArgs({dad: 'proud'});
19+
header.addCategory('tactics');
20+
header.addCategory('advanced');
21+
header.setCategories(['tactics', 'advanced']);
22+
header.addSection('-charge-', 'This ship is useless.');
23+
header.setSections({'-charge-': 'This ship is useless.', '-other': 'Another section here'});
24+
header.addFilter('footer', 'enable', 1);
25+
header.addFilter('footer', 'text/html', '<strong>boo</strong>');
26+
header.setSendAt(1409348513);
27+
header.setSendEachAt([1409348513, 14093485134]);
28+
header.addSendEachAt([1409348513]);
29+
header.addSendEachAt(14093485134);
30+
header.setASMGroupID(123);
31+
header.setIpPool("testPool");
32+
header.setFilters({
33+
'footer': {
34+
'setting': {
35+
'enable': 1,
36+
'text/plain': 'You can haz footers!'
37+
}
38+
}
39+
});

smtpapi/smtpapi.d.ts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Type definitions for smtpapi-nodejs v1.2.0
2+
// Project: https://github.com/sendgrid/smtpapi-nodejs
3+
// Definitions by: Antonio Morales <https://github.com/a-morales>
4+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5+
6+
declare module SmtpApi {
7+
8+
interface Header {
9+
to: string[];
10+
sub: Object;
11+
unique_args: Object;
12+
category: string[];
13+
section: Object;
14+
filters: Object;
15+
send_at: "" | number;
16+
send_each_at: number[];
17+
asm_group_id: number;
18+
ip_pool: string;
19+
}
20+
21+
interface Constructor {
22+
new (): Instance;
23+
new (header: Header): Instance;
24+
}
25+
26+
interface Instance {
27+
header: Header;
28+
version: string;
29+
30+
jsonObject(): Header;
31+
jsonString(): string;
32+
33+
addTo(to: string): void;
34+
addTo(tos: string[]): void;
35+
addSubstitution(key: string, val: string): void;
36+
addSubstitution(key: string, val: string[]): void;
37+
addUniqueArg(key: string, val: string): void;
38+
addCategory(cat: string): void;
39+
addCategory(cat: string[]): void;
40+
addSection(sec: string, val: string): void;
41+
addFilter(filter: string, setting:string , val: number): void;
42+
addFilter(filter: string, setting:string , val: string): void;
43+
addSendEachAt(send_each_at: number): void;
44+
addSendEachAt(send_each_at: number[]): void;
45+
46+
setTos(email: string): void;
47+
setTos(emails: string[]): void;
48+
setSubstitutions(subs: Object): void;
49+
setUniqueArgs(val: Object): void;
50+
setCategories(cats: string): void;
51+
setCategories(cats: string[]): void;
52+
setSections(sec: Object): void;
53+
setFilters(filters: Object): void;
54+
setSendAt(send_at: number): void;
55+
setSendEachAt(send_each_at: number[]): void;
56+
setASMGroupID(asm_group_id: number): void;
57+
setIpPool(ip_pool: string): void;
58+
}
59+
}
60+
61+
declare module 'smtpapi' {
62+
var smtp: SmtpApi.Constructor;
63+
export = smtp;
64+
}

0 commit comments

Comments
 (0)