Skip to content

Commit

Permalink
feat: add diagnostics channel type defs (#1444)
Browse files Browse the repository at this point in the history
  • Loading branch information
stefee committed May 16, 2022
1 parent decc98c commit 5478cdd
Show file tree
Hide file tree
Showing 3 changed files with 139 additions and 0 deletions.
1 change: 1 addition & 0 deletions index.d.ts
Expand Up @@ -16,6 +16,7 @@ import { request, pipeline, stream, connect, upgrade } from './types/api'
export * from './types/fetch'
export * from './types/file'
export * from './types/formdata'
export * from './types/diagnostics-channel'
export { Interceptable } from './types/mock-interceptor'

export { Dispatcher, BalancedPool, Pool, Client, buildConnector, errors, Agent, request, stream, pipeline, connect, upgrade, setGlobalDispatcher, getGlobalDispatcher, MockClient, MockPool, MockAgent, mockErrors, ProxyAgent }
Expand Down
72 changes: 72 additions & 0 deletions test/types/diagnostics-channel.test-d.ts
@@ -0,0 +1,72 @@
import { Socket } from "net";
import { expectAssignable } from "tsd";
import { DiagnosticsChannel, buildConnector } from "../..";

const request = {
origin: "",
completed: true,
method: "GET" as const,
path: "",
headers: "",
addHeader: (key: string, value: string) => {
return request;
},
};

const response = {
statusCode: 200,
statusText: "OK",
headers: [Buffer.from(""), Buffer.from("")],
};

const connectParams = {
host: "",
hostname: "",
protocol: "",
port: "",
servername: "",
};

expectAssignable<DiagnosticsChannel.RequestCreateMessage>({ request });
expectAssignable<DiagnosticsChannel.RequestBodySentMessage>({ request });
expectAssignable<DiagnosticsChannel.RequestHeadersMessage>({
request,
response,
});
expectAssignable<DiagnosticsChannel.RequestTrailersMessage>({
request,
trailers: [Buffer.from(""), Buffer.from("")],
});
expectAssignable<DiagnosticsChannel.RequestErrorMessage>({
request,
error: new Error("Error"),
});
expectAssignable<DiagnosticsChannel.ClientSendHeadersMessage>({
request,
headers: "",
socket: new Socket(),
});
expectAssignable<DiagnosticsChannel.ClientBeforeConnectMessage>({
connectParams,
connector: (
options: buildConnector.Options,
callback: buildConnector.Callback
) => new Socket(),
});
expectAssignable<DiagnosticsChannel.ClientConnectedMessage>({
socket: new Socket(),
connectParams,
connector: (
options: buildConnector.Options,
callback: buildConnector.Callback
) => new Socket(),
});
expectAssignable<DiagnosticsChannel.ClientConnectErrorMessage>({
error: new Error("Error"),
socket: new Socket(),
connectParams,
connector: (
options: buildConnector.Options,
callback: buildConnector.Callback
) => new Socket(),
});
66 changes: 66 additions & 0 deletions types/diagnostics-channel.d.ts
@@ -0,0 +1,66 @@
import { Socket } from "net";
import { connector } from "./connector";
import { HttpMethod } from "./dispatcher";

declare namespace DiagnosticsChannel {
interface Request {
origin?: string | URL;
completed: boolean;
method?: HttpMethod;
path: string;
headers: string;
addHeader(key: string, value: string): Request;
}
interface Response {
statusCode: number;
statusText: string;
headers: Array<Buffer>;
}
type Error = unknown;
interface ConnectParams {
host: URL["host"];
hostname: URL["hostname"];
protocol: URL["protocol"];
port: URL["port"];
servername: string | null;
}
type Connector = typeof connector;
export interface RequestCreateMessage {
request: Request;
}
export interface RequestBodySentMessage {
request: Request;
}
export interface RequestHeadersMessage {
request: Request;
response: Response;
}
export interface RequestTrailersMessage {
request: Request;
trailers: Array<Buffer>;
}
export interface RequestErrorMessage {
request: Request;
error: Error;
}
export interface ClientSendHeadersMessage {
request: Request;
headers: string;
socket: Socket;
}
export interface ClientBeforeConnectMessage {
connectParams: ConnectParams;
connector: Connector;
}
export interface ClientConnectedMessage {
socket: Socket;
connectParams: ConnectParams;
connector: Connector;
}
export interface ClientConnectErrorMessage {
error: Error;
socket: Socket;
connectParams: ConnectParams;
connector: Connector;
}
}

0 comments on commit 5478cdd

Please sign in to comment.