Skip to content

Commit c935888

Browse files
chore(typescript): extract handlers types (#603)
* chore(typescript): extract handlers types * chore(typescript): set callback types based on the http-proxy Co-authored-by: chimurai <[email protected]>
1 parent 3115dae commit c935888

File tree

1 file changed

+47
-14
lines changed

1 file changed

+47
-14
lines changed

src/types.ts

+47-14
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type * as express from 'express';
99
import type * as http from 'http';
1010
import type * as httpProxy from 'http-proxy';
1111
import type * as net from 'net';
12+
import type * as url from 'url';
1213

1314
export interface Request extends express.Request {}
1415
export interface Response extends express.Response {}
@@ -29,20 +30,14 @@ export interface Options extends httpProxy.ServerOptions {
2930
| ((req: Request) => httpProxy.ServerOptions['target'])
3031
| ((req: Request) => Promise<httpProxy.ServerOptions['target']>);
3132
logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent';
32-
logProvider?(provider: LogProvider): LogProvider;
33-
34-
onError?(err: Error, req: Request, res: Response): void;
35-
onProxyRes?(proxyRes: http.IncomingMessage, req: Request, res: Response): void;
36-
onProxyReq?(proxyReq: http.ClientRequest, req: Request, res: Response): void;
37-
onProxyReqWs?(
38-
proxyReq: http.ClientRequest,
39-
req: Request,
40-
socket: net.Socket,
41-
options: httpProxy.ServerOptions,
42-
head: any
43-
): void;
44-
onOpen?(proxySocket: net.Socket): void;
45-
onClose?(res: Response, socket: net.Socket, head: any): void;
33+
logProvider?: LogProviderCallback;
34+
35+
onError?: OnErrorCallback;
36+
onProxyRes?: OnProxyResCallback;
37+
onProxyReq?: OnProxyReqCallback;
38+
onProxyReqWs?: OnProxyReqWsCallback;
39+
onOpen?: OnOpenCallback;
40+
onClose?: OnCloseCallback;
4641
}
4742

4843
interface LogProvider {
@@ -54,3 +49,41 @@ interface LogProvider {
5449
}
5550

5651
type Logger = (...args: any[]) => void;
52+
53+
export type LogProviderCallback = (provider: LogProvider) => LogProvider;
54+
55+
/**
56+
* Use types based on the events listeners from http-proxy
57+
* https://github.com/DefinitelyTyped/DefinitelyTyped/blob/51504fd999031b7f025220fab279f1b2155cbaff/types/http-proxy/index.d.ts
58+
*/
59+
export type OnErrorCallback = (
60+
err: Error,
61+
req: http.IncomingMessage,
62+
res: http.ServerResponse,
63+
target?: string | Partial<url.Url>
64+
) => void;
65+
export type OnProxyResCallback = (
66+
proxyRes: http.IncomingMessage,
67+
req: http.IncomingMessage,
68+
res: http.ServerResponse
69+
) => void;
70+
export type OnProxyReqCallback = (
71+
proxyReq: http.ClientRequest,
72+
req: http.IncomingMessage,
73+
res: http.ServerResponse,
74+
options: httpProxy.ServerOptions
75+
) => void;
76+
export type OnProxyReqWsCallback = (
77+
proxyReq: http.ClientRequest,
78+
req: http.IncomingMessage,
79+
socket: net.Socket,
80+
options: httpProxy.ServerOptions,
81+
head: any
82+
) => void;
83+
export type OnCloseCallback = (
84+
proxyRes: http.IncomingMessage,
85+
proxySocket: net.Socket,
86+
proxyHead: any
87+
) => void;
88+
89+
export type OnOpenCallback = (proxySocket: net.Socket) => void;

0 commit comments

Comments
 (0)