UNPKG

@hazae41/glacier

Version:

Yet another React data (re)fetching library

66 lines (64 loc) 2.06 kB
interface RequestLike extends RequestInit { url: string; destination: RequestDestination; } interface EmptyRequestInit extends Omit<RequestInit, "body"> { } declare namespace EmptyRequest { /** * Hack to only allow EmptyRequest or Request-like but not any other variant */ interface From extends RequestLike { bodyAsText?: undefined; bodyAsJson?: undefined; } } declare class EmptyRequest extends Request { #private; constructor(input: RequestInfo, init?: EmptyRequestInit); static from(from: EmptyRequest.From): Promise<EmptyRequest>; get headersAsJson(): Record<string, string>; toJSON(): RequestLike; } interface TextRequestInit extends Omit<RequestInit, "body"> { body: string; } declare namespace TextRequest { /** * Hack to only allow TextRequest or Request-like but not any other variant */ interface From extends RequestLike { bodyAsText?: string; bodyAsJson?: undefined; } } declare class TextRequest extends Request { #private; constructor(input: RequestInfo, init: TextRequestInit); static from(from: TextRequest.From): Promise<TextRequest>; get headersAsJson(): Record<string, string>; get bodyAsText(): string; toJSON(): RequestLike; } interface JsonRequestInit<T> extends Omit<RequestInit, "body"> { body: T; } declare namespace JsonRequest { /** * Hack to only allow JsonRequest<T> or Request-like but not any other variant */ interface From<T> extends RequestLike { bodyAsText?: string; bodyAsJson?: T; } } declare class JsonRequest<T> extends Request { #private; constructor(input: RequestInfo, init: JsonRequestInit<T>); static from<T>(from: JsonRequest.From<T>): Promise<JsonRequest<T>>; get headersAsJson(): Record<string, string>; get bodyAsJson(): T; get bodyAsText(): string; toJSON(): RequestLike; } export { EmptyRequest, type EmptyRequestInit, JsonRequest, type JsonRequestInit, type RequestLike, TextRequest, type TextRequestInit };