Skip to main content
Version: v7.0.0

Request

Request is a class that represents a request sent to the server. It contains all the necessary information to make a request, like endpoint, method, headers, data, and much more. It is executed at any time via methods like send or exec .

We can set it up with options like endpoint, method, headers and more. We can choose some of advanced settings like cache, invalidation patterns, concurrency, retries and much, much more.


Import
import { Request } from "@hyper-fetch/core"

Parameters

class Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery> {
constructor(client: Client, requestOptions: RequestOptionsType<Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>, initialRequestConfiguration: RequestConfigurationType<Payload, Endpoint extends string ? ExtractUrlParams<Endpoint<Endpoint>> : never, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>) {};
used: boolean;
unstable_mock: { config: MockerConfigType; fn: (options: { request: RequestInstance; requestId: string }) => MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> };
unstable_hasQuery: HasQuery;
unstable_hasPayload: HasPayload;
unstable_hasParams: HasParams;
staleTime: number;
retryTime: number;
retry: number;
requestOptions: RequestOptionsType<Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>;
queued: boolean;
queryParams: EmptyTypes | QueryParams;
queryKey: string;
payload: PayloadType<Payload>;
params: EmptyTypes | ExtractUrlParams<Endpoint>;
options: ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>;
offline: boolean;
method: ExtractAdapterMethodType<ExtractClientAdapterType<Client>>;
isMockerEnabled: boolean;
initialRequestConfiguration: RequestConfigurationType<Payload, Endpoint extends string ? ExtractUrlParams<Endpoint<Endpoint>> : never, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>;
headers: HeadersInit;
endpoint: Endpoint;
deduplicateTime: null | number;
deduplicate: boolean;
client: Client;
cancelable: boolean;
cacheTime: number;
cacheKey: string;
cache: boolean;
auth: boolean;
abortKey: string;
exec() => RequestSendType<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>>;
send() => RequestSendType<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>>;
abort() => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
clearMock() => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
clone<NewData, NewParams, NewQueryParams>(configuration?: RequestConfigurationType<Payload, EmptyTypes | ExtractUrlParams<Endpoint>, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, NewData, NewParams, NewQueryParams>;
dehydrate(config?: { override?: boolean; response?: ResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> }) => undefined | HydrateDataType<Response, (LocalError | ExtractClientGlobalError<Client>), ExtractClientAdapterType<Client>>;
read() => undefined | ResponseType<Response, (LocalError | ExtractClientGlobalError<Client>), ExtractClientAdapterType<Client>>;
setAbortKey(abortKey: string) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setAuth(auth: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setCache(cache: undefined | boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setCacheKey(cacheKey: string) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setCacheTime(cacheTime: undefined | number) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setCancelable(cancelable: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setDeduplicate(deduplicate: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setDeduplicateTime(deduplicateTime: number) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setHeaders(headers: HeadersInit) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setMock(fn: (options: { request: Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>; requestId: string }) => SyncOrAsync<MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>>>, config: MockerConfigType) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setMockingEnabled(isMockerEnabled: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setOffline(offline: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setOptions(options: ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>;
setParams<P>(params: P) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, P extends null ? false : true, HasQuery>;
setPayload<P>(payload: P) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, P extends null ? false : true, HasParams, HasQuery>;
setPayloadMapper<MappedPayload>(payloadMapper: (data: Payload) => MappedPayload) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setQueryKey(queryKey: string) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setQueryParams(queryParams: QueryParams) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>;
setQueued(queued: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setRequestMapper<NewRequest>(requestMapper: RequestMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, NewRequest>) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setResponseMapper<MappedResponse>(responseMapper?: ResponseMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, MappedResponse>) => Request<MappedResponse extends ResponseType<R, any, any> ? R : Response, Payload, QueryParams, MappedResponse extends ResponseType<any, E, any> ? E : LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setRetry(retry: undefined | number) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setRetryTime(retryTime: undefined | number) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setStaleTime(staleTime: undefined | number) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
setUsed(used: boolean) => Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>;
toJSON() => RequestJSON<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>>;
fromJSON<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>(client: NewClient, json: RequestJSON<Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>>) => Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>;
}
Parameters
NameTypeDescription
client
Client
requestOptions
RequestOptionsType<Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>
initialRequestConfiguration
RequestConfigurationType<Payload, Endpoint extends string ? ExtractUrlParams<Endpoint<Endpoint>> : never, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>

Properties

abortKey

Type
string

auth

Type
boolean

cache

Type
boolean

cacheKey

Type
string

cacheTime

Type
number

cancelable

Type
boolean

client

Type
Client

deduplicate

Type
boolean

deduplicateTime

Type
null | number

endpoint

Type
Endpoint

headers

Type
HeadersInit

initialRequestConfiguration

Type
RequestConfigurationType<Payload, Endpoint extends string ? ExtractUrlParams<Endpoint<Endpoint>> : never, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>

isMockerEnabled

Type
boolean

method

Type
ExtractAdapterMethodType<ExtractClientAdapterType<Client>>

offline

Type
boolean

options

Type
ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>

params

Type
EmptyTypes | ExtractUrlParams<Endpoint>

payload

Type
PayloadType<Payload>

queryKey

Type
string

queryParams

Type
EmptyTypes | QueryParams

queued

Type
boolean

requestOptions

Type
RequestOptionsType<Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>

retry

Type
number

retryTime

Type
number

staleTime

Type
number

unstable_hasParams

Type
HasParams

unstable_hasPayload

Type
HasPayload

unstable_hasQuery

Type
HasQuery

unstable_mock

Type
{ config: MockerConfigType; fn: (options: { request: RequestInstance; requestId: string }) => MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> }

used

Type
boolean

Methods

abort()

Preview
abort()
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

clearMock()

Preview
clearMock()
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

clone()

Preview
clone<NewData, NewParams, NewQueryParams>(configuration: RequestConfigurationType<Payload, EmptyTypes | ExtractUrlParams<Endpoint>, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>)
Parameters
Parameters
NameTypeDescription
configuration
RequestConfigurationType<Payload, EmptyTypes | ExtractUrlParams<Endpoint>, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, NewData, NewParams, NewQueryParams>

dehydrate()

Preview
dehydrate(config: { override?: boolean; response?: ResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> })
Parameters
Parameters
NameTypeDescription
config
{ override?: boolean; response?: ResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> }
Returns
undefined | HydrateDataType<Response, (LocalError | ExtractClientGlobalError<Client>), ExtractClientAdapterType<Client>>

read()

Read the response from cache data

If it returns error and data at the same time, it means that latest request was failed and we show previous data from cache together with error received from actual request

Preview
read()
Returns
undefined | ResponseType<Response, (LocalError | ExtractClientGlobalError<Client>), ExtractClientAdapterType<Client>>

setAbortKey()

Preview
setAbortKey(abortKey: string)
Parameters
Parameters
NameTypeDescription
abortKey
string
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setAuth()

Preview
setAuth(auth: boolean)
Parameters
Parameters
NameTypeDescription
auth
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setCache()

Preview
setCache(cache: undefined | boolean)
Parameters
Parameters
NameTypeDescription
cache
undefined | boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setCacheKey()

Preview
setCacheKey(cacheKey: string)
Parameters
Parameters
NameTypeDescription
cacheKey
string
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setCacheTime()

Preview
setCacheTime(cacheTime: undefined | number)
Parameters
Parameters
NameTypeDescription
cacheTime
undefined | number
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setCancelable()

Preview
setCancelable(cancelable: boolean)
Parameters
Parameters
NameTypeDescription
cancelable
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setDeduplicate()

Preview
setDeduplicate(deduplicate: boolean)
Parameters
Parameters
NameTypeDescription
deduplicate
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setDeduplicateTime()

Preview
setDeduplicateTime(deduplicateTime: number)
Parameters
Parameters
NameTypeDescription
deduplicateTime
number
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setHeaders()

Preview
setHeaders(headers: HeadersInit)
Parameters
Parameters
NameTypeDescription
headers
HeadersInit
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setMock()

Preview
setMock(fn: (options: { request: Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>; requestId: string }) => SyncOrAsync<MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>>>, config: MockerConfigType)
Parameters
Parameters
NameTypeDescription
fn
(options: { request: Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>; requestId: string }) => SyncOrAsync<MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>>>
config
MockerConfigType
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setMockingEnabled()

Preview
setMockingEnabled(isMockerEnabled: boolean)
Parameters
Parameters
NameTypeDescription
isMockerEnabled
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setOffline()

Preview
setOffline(offline: boolean)
Parameters
Parameters
NameTypeDescription
offline
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setOptions()

Preview
setOptions(options: ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>)
Parameters
Parameters
NameTypeDescription
options
ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>

setParams()

Preview
setParams<P>(params: P)
Parameters
Parameters
NameTypeDescription
params
P
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, P extends null ? false : true, HasQuery>

setPayload()

Preview
setPayload<P>(payload: P)
Parameters
Parameters
NameTypeDescription
payload
P
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, P extends null ? false : true, HasParams, HasQuery>

setPayloadMapper()

Map data before it gets send to the server

Preview
setPayloadMapper<MappedPayload>(payloadMapper: (data: Payload) => MappedPayload)
Parameters
Parameters
NameTypeDescription
payloadMapper
(data: Payload) => MappedPayload
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setQueryKey()

Preview
setQueryKey(queryKey: string)
Parameters
Parameters
NameTypeDescription
queryKey
string
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setQueryParams()

Preview
setQueryParams(queryParams: QueryParams)
Parameters
Parameters
NameTypeDescription
queryParams
QueryParams
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>

setQueued()

Preview
setQueued(queued: boolean)
Parameters
Parameters
NameTypeDescription
queued
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setRequestMapper()

Map request before it gets send to the server

Preview
setRequestMapper<NewRequest>(requestMapper: RequestMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, NewRequest>)
Parameters
Parameters
NameTypeDescription
requestMapper
RequestMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, NewRequest>

mapper of the request

Returns
new request
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setResponseMapper()

Map the response to the new interface

Preview
setResponseMapper<MappedResponse>(responseMapper: ResponseMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, MappedResponse>)
Parameters
Parameters
NameTypeDescription
responseMapper
ResponseMapper<Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>, MappedResponse>

our mapping callback

Returns
new response
Request<MappedResponse extends ResponseType<R, any, any> ? R : Response, Payload, QueryParams, MappedResponse extends ResponseType<any, E, any> ? E : LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setRetry()

Preview
setRetry(retry: undefined | number)
Parameters
Parameters
NameTypeDescription
retry
undefined | number
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setRetryTime()

Preview
setRetryTime(retryTime: undefined | number)
Parameters
Parameters
NameTypeDescription
retryTime
undefined | number
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setStaleTime()

Preview
setStaleTime(staleTime: undefined | number)
Parameters
Parameters
NameTypeDescription
staleTime
undefined | number
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

setUsed()

Preview
setUsed(used: boolean)
Parameters
Parameters
NameTypeDescription
used
boolean
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>

toJSON()

Preview
toJSON()
Returns
toJSON
NameTypeDescription
abortKey
string
auth
boolean
cache
boolean
cacheKey
string
cacheTime
number
cancelable
boolean
deduplicate
boolean
deduplicateTime
number | null
disableRequestInterceptors
boolean | undefined
disableResponseInterceptors
boolean | undefined
endpoint
ExtractEndpointType<Request>
hasMock
boolean
headers
HeadersInit
isMockerEnabled
boolean
method
ExtractAdapterMethodType<ExtractAdapterType<Request>>
offline
boolean
options
ExtractAdapterOptionsType<ExtractAdapterType<Request>>
params
ExtractParamsType<Request> | EmptyTypes
payload
PayloadType<ExtractPayloadType<Request>>
queryKey
string
queryParams
ExtractQueryParamsType<Request> | EmptyTypes
queued
boolean
requestOptions
RequestOptionsType<ExtractEndpointType<Request>, ExtractAdapterOptionsType<ExtractAdapterType<Request>>, ExtractAdapterMethodType<ExtractAdapterType<Request>>>
retry
number
retryTime
number
staleTime
number
updatedAbortKey
boolean
updatedCacheKey
boolean
updatedQueryKey
boolean
used
boolean

fromJSON()

Preview
fromJSON<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>(client: NewClient, json: RequestJSON<Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>>)
Parameters
Parameters
NameTypeDescription
client
NewClient
json
RequestJSON<Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>>
Returns
Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>