iso-web
Version:
Isomorphic web apis utilities for fetch, event target, signals, crypto and doh.
43 lines (38 loc) • 877 B
text/typescript
import type { Options } from 'p-retry'
import type { Jsonifiable } from 'type-fest'
export type RequestInput = URL | string
export interface RequestOptions {
fetch?: typeof globalThis.fetch
redirect?: RequestRedirect
body?: BodyInit | null
method?: string
headers?: HeadersInit
signal?: AbortSignal
keepalive?: boolean
timeout?: number
retry?: Options
json?: Jsonifiable
}
export interface JSONRequestOptions {
fetch?: typeof globalThis.fetch
redirect?: RequestRedirect
body?: Jsonifiable | null
method?: string
headers?: HeadersInit
signal?: AbortSignal
keepalive?: boolean
timeout?: number
retry?: Options
}
/**
* Generic result with error
*/
export type MaybeResult<ResultType = unknown, ErrorType = Error> =
| {
error: ErrorType
result?: undefined
}
| {
result: ResultType
error?: undefined
}