Skip to content

Commit cceda00

Browse files
committed
Type options.ALPNProtocols
1 parent 6cca1be commit cceda00

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

index.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ export interface RequestOptions extends Omit<https.RequestOptions, 'session' | '
1414
tlsSession?: tls.ConnectionOptions['session'];
1515
h2session?: http2.ClientHttp2Session;
1616
agent?: Agent | false;
17+
18+
// Required because @types/node is missing types
19+
ALPNProtocols?: string[];
1720
}
1821

1922
export interface AutoRequestOptions extends Omit<RequestOptions, 'agent' | 'h2session'> {

index.test-d.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,23 @@ for (const method of methods) {
107107

108108
request.destroy();
109109
}
110+
111+
{
112+
const request = http2[method]('https://example.com', {
113+
ALPNProtocols: ['h2']
114+
});
115+
116+
expectType<http.ClientRequest>(request);
117+
118+
request.once('response', response => {
119+
expectType<http.IncomingMessage>(response);
120+
response.resume();
121+
});
122+
123+
if (method !== 'get') {
124+
request.end();
125+
}
126+
}
110127
}
111128

112129
(async () => {
@@ -223,6 +240,17 @@ for (const method of methods) {
223240
expectType<http.ClientRequest>(request);
224241
}
225242

243+
{
244+
const request = await http2.auto('https://httpbin.org', {
245+
ALPNProtocols: ['h2']
246+
}, response => {
247+
expectType<http.IncomingMessage>(response);
248+
response.resume();
249+
});
250+
251+
expectType<http.ClientRequest>(request);
252+
}
253+
226254
new http2.Agent();
227255
new http2.Agent({});
228256
const agent = new http2.Agent({

0 commit comments

Comments
 (0)