sec-edgar-api
Version:
Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.
35 lines (34 loc) • 1.11 kB
TypeScript
interface OnProgressData {
queueLength: number;
countRunning: number;
}
type ResolveValue = any;
interface ThrottlerArgs {
maxConcurrent?: number;
delayMs?: number;
onProgress?: (data: OnProgressData) => void;
onResult?: (result: ResolveValue) => void;
onError?: (err: ResolveValue) => void;
onEnd?: (results: ResolveValue[], errors: ResolveValue[]) => void;
}
export interface IThrottler {
setDelayMs(delayMs: number): void;
add: (fn: () => Promise<ResolveValue>) => void;
}
export default class Throttler implements IThrottler {
private readonly decrementTimeouts;
private readonly queue;
private readonly results;
private readonly errors;
private maxConcurrent;
private delayMs;
onProgress?: (data: OnProgressData) => void;
onResult?: (result: ResolveValue) => void;
onError?: (err: ResolveValue) => void;
onEnd?: (results: ResolveValue[], errors: ResolveValue[]) => void;
constructor(args?: ThrottlerArgs);
setDelayMs(delayMs: number): void;
add(fn: () => Promise<ResolveValue>): void;
private run;
}
export {};