request-filtering-agent
Version:
An http(s).Agent implementation that block request Private IP address.
40 lines (39 loc) • 1.64 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { TcpNetConnectOpts } from "net";
import * as http from "http";
import * as https from "https";
import { Socket } from "net";
export interface RequestFilteringAgentOptions {
allowPrivateIPAddress?: boolean;
allowMetaIPAddress?: boolean;
allowIPAddressList?: string[];
denyIPAddressList?: string[];
}
export declare const DefaultRequestFilteringAgentOptions: Required<RequestFilteringAgentOptions>;
/**
* A subclass of http.Agent with request filtering
*/
export declare class RequestFilteringHttpAgent extends http.Agent {
private requestFilterOptions;
constructor(options?: http.AgentOptions & RequestFilteringAgentOptions);
createConnection(options: TcpNetConnectOpts, connectionListener?: (error: Error | null, socket: Socket) => void): any;
}
/**
* A subclass of https.Agent with request filtering
*/
export declare class RequestFilteringHttpsAgent extends https.Agent {
private requestFilterOptions;
constructor(options?: https.AgentOptions & RequestFilteringAgentOptions);
createConnection(options: TcpNetConnectOpts, connectionListener?: (error: Error | null, socket: Socket) => void): any;
}
export declare const globalHttpAgent: RequestFilteringHttpAgent;
export declare const globalHttpsAgent: RequestFilteringHttpsAgent;
/**
* Get an agent for the url
* return http or https agent
* @param url
* @param options
*/
export declare const useAgent: (url: string, options?: https.AgentOptions & RequestFilteringAgentOptions) => RequestFilteringHttpAgent | RequestFilteringHttpsAgent;