mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-18 13:40:32 +00:00
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
// Type definitions for x-ray-crawler 2.0
|
|
// Project: https://github.com/lapwinglabs/x-ray-crawler#readme
|
|
// Definitions by: Matt Traynham <https://github.com/mtraynham>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
import HttpContext = require('http-context');
|
|
|
|
export = XRayCrawler;
|
|
|
|
declare function XRayCrawler(driver?: XRayCrawler.Driver): XRayCrawler.Instance;
|
|
|
|
declare namespace XRayCrawler {
|
|
type Callback<T> = (err: Error, obj: T) => void;
|
|
type Driver = (context: HttpContext.Context, callback: Callback<HttpContext.Context>) => void;
|
|
type RequestHook = (request: HttpContext.Request) => void;
|
|
type ResponseHook = (response: HttpContext.Response) => void;
|
|
type RandomDelay = () => number;
|
|
|
|
interface Instance {
|
|
(url: string, callback: Callback<HttpContext.Context>): void;
|
|
driver(): Driver;
|
|
driver(driver: Driver): this;
|
|
throttle(): number;
|
|
throttle(requests: string | number, rate: string | number): this;
|
|
delay(): RandomDelay;
|
|
delay(from: string | number, to?: string | number): this;
|
|
timeout(): number;
|
|
timeout(n: string | number): this;
|
|
concurrency(): number;
|
|
concurrency(n: number): this;
|
|
request(): RequestHook;
|
|
request(fn: RequestHook): this;
|
|
response(): ResponseHook;
|
|
response(fn: ResponseHook): this;
|
|
limit(): number;
|
|
limit(n: number): this;
|
|
}
|
|
}
|