UNPKG

sec-edgar-api

Version:

Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.

46 lines (45 loc) 1.52 kB
/// <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 {};