diff --git a/mitm/mitm-tests.ts b/mitm/mitm-tests.ts new file mode 100644 index 0000000000..00abe30b1a --- /dev/null +++ b/mitm/mitm-tests.ts @@ -0,0 +1,16 @@ +/// + +import Mitm = require('mitm'); + +const mitm = Mitm(); +mitm.disable(); + +mitm.on('connect', (bypassableSocket, opts): void => { + bypassableSocket.bypass(); +}); + +mitm.on('connection', (socket, opts): void => { +}); + +mitm.on('request', (request, response): void => { +}); diff --git a/mitm/mitm.d.ts b/mitm/mitm.d.ts new file mode 100644 index 0000000000..2c5f03f8bc --- /dev/null +++ b/mitm/mitm.d.ts @@ -0,0 +1,45 @@ +// Type definitions for mitm v1.3.0 +// Project: https://github.com/moll/node-mitm +// Definitions by: Alejandro Sánchez +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare module 'mitm' { + import * as http from 'http'; + import * as net from 'net'; + + interface SocketOptions { + port: number; + host?: string; + localAddress?: string; + localPort?: string; + family?: number; + allowHalfOpen?: boolean; + } + + interface BypassableSocket extends net.Socket { + bypass(): void + } + + type SocketConnectCallback = (socket: BypassableSocket, opts: SocketOptions) => void; + + type SocketConnectionCallback = (socket: net.Socket, opts: SocketOptions) => void; + + type HttpCallback = (request: http.IncomingMessage, response: http.ServerResponse) => void; + + type Event = 'connect' | 'connection' | 'request'; + + type Callback = SocketConnectCallback | SocketConnectionCallback | HttpCallback; + + interface Mitm { + disable(): void; + on(event: Event, callback: Callback): void; + on(event: 'connect', callback: SocketConnectCallback): void; + on(event: 'connection', callback: SocketConnectionCallback): void; + on(event: 'request', callback: HttpCallback): void; + } + + function _(): Mitm; + export = _; +}