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 { 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>;
}
| Name | Type | Description |
|---|---|---|
| client | | |
| requestOptions | | |
| initialRequestConfiguration | |
Properties
initialRequestConfiguration
Type
RequestConfigurationType<Payload, Endpoint extends string ? ExtractUrlParams<Endpoint<Endpoint>> : never, QueryParams, Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>
requestOptions
Type
RequestOptionsType<Endpoint, ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>, ExtractAdapterMethodType<ExtractClientAdapterType<Client>>>
unstable_mock
Type
{ config: MockerConfigType; fn: (options: { request: RequestInstance; requestId: string }) => MockResponseType<Response, LocalError | ExtractClientGlobalError<Client>, ExtractClientAdapterType<Client>> }
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
| Name | Type | Description |
|---|---|---|
| configuration | |
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
| Name | Type | Description |
|---|---|---|
| config | |
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
| Name | Type | Description |
|---|---|---|
| abortKey | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setAuth()
Preview
setAuth(auth: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| auth | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setCache()
Preview
setCache(cache: undefined | boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| cache | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setCacheKey()
Preview
setCacheKey(cacheKey: string)
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKey | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setCacheTime()
Preview
setCacheTime(cacheTime: undefined | number)
Parameters
| Name | Type | Description |
|---|---|---|
| cacheTime | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setCancelable()
Preview
setCancelable(cancelable: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| cancelable | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setDeduplicate()
Preview
setDeduplicate(deduplicate: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| deduplicate | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setDeduplicateTime()
Preview
setDeduplicateTime(deduplicateTime: number)
Parameters
| Name | Type | Description |
|---|---|---|
| deduplicateTime | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setHeaders()
Preview
setHeaders(headers: HeadersInit)
Parameters
| Name | Type | Description |
|---|---|---|
| headers | |
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
| Name | Type | Description |
|---|---|---|
| fn | | |
| config | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setMockingEnabled()
Preview
setMockingEnabled(isMockerEnabled: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| isMockerEnabled | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setOffline()
Preview
setOffline(offline: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| offline | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setOptions()
Preview
setOptions(options: ExtractAdapterOptionsType<ExtractClientAdapterType<Client>>)
Parameters
| Name | Type | Description |
|---|---|---|
| options | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>
setParams()
Preview
setParams<P>(params: P)
Parameters
| Name | Type | Description |
|---|---|---|
| params | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, P extends null ? false : true, HasQuery>
setPayload()
Preview
setPayload<P>(payload: P)
Parameters
| Name | Type | Description |
|---|---|---|
| payload | |
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
| Name | Type | Description |
|---|---|---|
| payloadMapper | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setQueryKey()
Preview
setQueryKey(queryKey: string)
Parameters
| Name | Type | Description |
|---|---|---|
| queryKey | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setQueryParams()
Preview
setQueryParams(queryParams: QueryParams)
Parameters
| Name | Type | Description |
|---|---|---|
| queryParams | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, true>
setQueued()
Preview
setQueued(queued: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| queued | |
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
| Name | Type | Description |
|---|---|---|
| requestMapper | | mapper of the request |
Returns
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
| Name | Type | Description |
|---|---|---|
| responseMapper | | our mapping callback |
Returns
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
| Name | Type | Description |
|---|---|---|
| retry | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setRetryTime()
Preview
setRetryTime(retryTime: undefined | number)
Parameters
| Name | Type | Description |
|---|---|---|
| retryTime | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setStaleTime()
Preview
setStaleTime(staleTime: undefined | number)
Parameters
| Name | Type | Description |
|---|---|---|
| staleTime | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
setUsed()
Preview
setUsed(used: boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| used | |
Returns
Request<Response, Payload, QueryParams, LocalError, Endpoint, Client, HasPayload, HasParams, HasQuery>
toJSON()
Preview
toJSON()
Returns
| Name | Type | Description |
|---|---|---|
| abortKey | | |
| auth | | |
| cache | | |
| cacheKey | | |
| cacheTime | | |
| cancelable | | |
| deduplicate | | |
| deduplicateTime | | |
| disableRequestInterceptors | | |
| disableResponseInterceptors | | |
| endpoint | | |
| hasMock | | |
| headers | | |
| isMockerEnabled | | |
| method | | |
| offline | | |
| options | | |
| params | | |
| payload | | |
| queryKey | | |
| queryParams | | |
| queued | | |
| requestOptions | | |
| retry | | |
| retryTime | | |
| staleTime | | |
| updatedAbortKey | | |
| updatedCacheKey | | |
| updatedQueryKey | | |
| used | |
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
| Name | Type | Description |
|---|---|---|
| client | | |
| json | |
Returns
Request<NewResponse, NewPayload, NewQueryParams, NewLocalError, NewEndpoint, NewClient, NewHasPayload, NewHasParams, NewHasQuery>