sec-edgar-api
Version:
Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.
46 lines (45 loc) • 1.52 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { ClientRequest, IncomingMessage, RequestOptions } from 'http';
type Primitive = string | number | boolean | null | undefined;
interface HttpClient {
request: (options: string | URL | RequestOptions, callback?: (res: IncomingMessage) => void) => ClientRequest;
}
export interface OnChunkData {
percentComplete: number;
chunk: Buffer;
}
export interface ClientResponse {
statusCode: number;
message: string;
data: Buffer | null;
}
export interface RequestParams {
url: string;
headers?: Record<string, string>;
method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
data?: string | Record<string, Primitive | object>;
timeout?: number;
onError?: (err: Error) => void;
onChunk?: (data: OnChunkData) => void;
onResponse?: (response: IncomingMessage) => void;
onSuccess?: (response: ClientResponse) => void;
resolveData?: boolean;
}
export interface ClientArgs {
httpClient?: HttpClient;
defaultHeaders?: Record<string, string>;
}
export interface IClient {
request(params: RequestParams): Promise<ClientResponse>;
setDefaultHeaders?(headers: Record<string, string>): void;
}
export default class Client implements IClient {
private readonly httpClient;
private defaultHeaders;
constructor(args?: ClientArgs);
setDefaultHeaders(headers: Record<string, string>): void;
request(params: RequestParams): Promise<ClientResponse>;
}
export {};