fetcher.d.ts 900 B

1234567891011121314151617181920212223
  1. /// <reference types="node" />
  2. /// <reference types="node" />
  3. type DownloadFileHandler<T> = (file: string) => Promise<T>;
  4. export interface Fetcher {
  5. downloadFile<T>(url: string, maxLength: number, handler: DownloadFileHandler<T>): Promise<T>;
  6. downloadBytes(url: string, maxLength: number): Promise<Buffer>;
  7. }
  8. export declare abstract class BaseFetcher implements Fetcher {
  9. abstract fetch(url: string): Promise<NodeJS.ReadableStream>;
  10. downloadFile<T>(url: string, maxLength: number, handler: DownloadFileHandler<T>): Promise<T>;
  11. downloadBytes(url: string, maxLength: number): Promise<Buffer>;
  12. }
  13. interface FetcherOptions {
  14. timeout?: number;
  15. retries?: number;
  16. }
  17. export declare class DefaultFetcher extends BaseFetcher {
  18. private timeout?;
  19. private retries?;
  20. constructor(options?: FetcherOptions);
  21. fetch(url: string): Promise<NodeJS.ReadableStream>;
  22. }
  23. export {};