@shockpkg/core
Version:
shockpkg core
38 lines (37 loc) • 848 B
TypeScript
import { ReadableStream } from 'node:stream/web';
export interface IFetchRequestHeaders {
[header: string]: string;
}
export interface IFetchRequestInit {
/**
* Request headers.
*/
headers?: {
[header: string]: string;
};
}
export interface IFetchResponseHeaders {
/**
* Get header case-insensitive.
*/
get(header: string): string | null;
}
export interface IFetchResponse {
/**
* Response status code.
*/
status: number;
/**
* Response headers.
*/
headers: IFetchResponseHeaders;
/**
* Response body as a readable stream.
*/
body: ReadableStream | NodeJS.ReadableStream;
/**
* Response body as text.
*/
text: () => Promise<string>;
}
export type IFetch = (url: string, init?: IFetchRequestInit) => Promise<IFetchResponse>;