-
-
Notifications
You must be signed in to change notification settings - Fork 916
/
types.ts
30 lines (26 loc) 路 976 Bytes
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import PCancelable from 'p-cancelable';
import {RequestError} from '../core/errors.js';
// eslint-disable-next-line import/no-duplicates
import type Request from '../core/index.js';
// eslint-disable-next-line import/no-duplicates
import type {RequestEvents} from '../core/index.js';
import type {Response} from '../core/response.js';
/**
An error to be thrown when the request is aborted with `.cancel()`.
*/
export class CancelError extends RequestError {
declare readonly response: Response;
constructor(request: Request) {
super('Promise was canceled', {}, request);
this.name = 'CancelError';
this.code = 'ERR_CANCELED';
}
get isCanceled() {
return true;
}
}
export interface CancelableRequest<T extends Response | Response['body'] = Response['body']> extends PCancelable<T>, RequestEvents<CancelableRequest<T>> {
json: <ReturnType>() => CancelableRequest<ReturnType>;
buffer: () => CancelableRequest<Buffer>;
text: () => CancelableRequest<string>;
}