anyproxy/typings/index.d.ts
2018-08-31 17:40:30 +08:00

104 lines
2.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <reference types="node" />
declare module NodeJS {
interface Global {
_throttle: any;
}
}
declare interface AnyProxyWebInterfaceConfig {
webPort?: number;
}
declare interface AnyProxyConfig {
port?: string; // port of the proxy server
httpServerPort?: string; // web server 的端口
type?: 'http' | 'https'; // type of the proxy server
forceProxyHttps?: boolean; // proxy https also
dangerouslyIgnoreUnauthorized?: boolean; // should ignore
wsIntercept?: boolean; // should proxy websocket
throttle?: string; // speed limit in kb/s
hostname?: string; // the hostname of this proxy, default to 'localhost'
recorder?: any; // A Recorder instance
silent?: boolean; // if keep the console silent
rule?: any; // rule module to use
webInterface?: AnyProxyWebInterfaceConfig;
}
declare interface AnyProxyRule {
summary?: string | Function,
beforeSendRequest?: Function,
beforeSendResponse?: Function,
beforeDealHttpsRequest?: Function,
onError?: Function,
onConnectError?: Function
}
declare namespace AnyProxyRecorder {
type ResponseHeader = any; // 暂时无法引入http模块会导致
export type WsResourceInfo = {
time: number,
message: string,
isToServer: boolean
};
export type ResourceInfo = {
wsMessages?: Array<WsResourceInfo>,
statusCode?: number,
resHeader?: ResponseHeader,
host?: string,
protocol?: string,
method?: string,
path?: string,
url?: string,
startTime?: number,
endTime?: number,
req?: any,
reqBody?: string,
res?: {
statusCode: number,
headers: ResponseHeader
},
resBody?: string,
length?: number
};
}
// The request detail object AnyProxy used internally
declare interface AnyProxyRequestDetail {
protocol?: string;
requestOptions?: any;
requestData?: Buffer;
url?: string;
_req?: any;
_directlyPassToRespond?: boolean;
response?: AnyProxyResponse; // exists when gen the response directly from request
}
declare interface AnyProxyResponse {
statusCode: number,
header: OneLevelObjectType;
body: string | Buffer;
rawBody: Buffer;
}
declare interface AnyProxyReponseDetail {
response: AnyProxyResponse,
_res: any;
_directlyPassToRespond?: boolean; // no need to send the respnose out
}
declare interface OneLevelObjectType {
[key: string]: string | boolean | number
}
declare interface IExecScriptResult {
status: number;
stdout?: string;
}
declare module "*.json" {
const value: any;
export default value;
}