Represents a request for a resource using a URI. By default, the supported schemes are HTTP, HTTPS, data:, and IPFS:. Additional schemes can be added globally using registerGateway.

Example

req = new FetchRequest('https://www.ricmoo.com');
resp = await req.send();
resp.body.length;

Implements

  • Iterable<[string, string]>

Constructors

new FetchRequest()

new FetchRequest(url): FetchRequest
Create a new FetchRequest instance with default values. Once created, each property may be set before issuing a .send() to make the request.

Parameters

ParameterType
urlstring

Returns

FetchRequest

Source

utils/fetch.ts:503

Accessors

allowGzip

get allowGzip(): boolean
Enable and request gzip-encoded responses. The response will automatically be decompressed. (default: true)

Returns

boolean

Source

utils/fetch.ts:413

allowInsecureAuthentication

get allowInsecureAuthentication(): boolean
Allow Authentication credentials to be sent over insecure channels. (default: false)

Returns

boolean

Source

utils/fetch.ts:423

body

get body(): null | Uint8Array
The fetch body, if any, to send as the request body. (default: null) When setting a body, the intrinsic Content-Type is automatically set and will be used if not overridden by setting a custom header. If body is null, the body is cleared (along with the intrinsic Content-Type). If body is a string, the intrinsic Content-Type is set to text/plain. If body is a Uint8Array, the intrinsic Content-Type is set to application/octet-stream. If body is any other object, the intrinsic Content-Type is set to application/json.

Returns

null | Uint8Array

Source

utils/fetch.ts:265

credentials

get credentials(): null | string
The value that will be sent for the Authorization header. To set the credentials, use the setCredentials method.

Returns

null | string

Source

utils/fetch.ts:394

getUrlFunc

get getUrlFunc(): FetchGetUrlFunc
This function is called to fetch content from HTTP and HTTPS URLs and is platform specific (e.g. nodejs vs browsers). This is by default the currently registered global getUrl function, which can be changed using registerGetUrl. If this has been set, setting is to null will cause this FetchRequest (and any future clones) to revert back to using the currently registered global getUrl function. Setting this is generally not necessary, but may be useful for developers that wish to intercept requests or to configurege a proxy or other agent.

Returns

FetchGetUrlFunc

Source

utils/fetch.ts:491

headers

get headers(): Record<string, string>
The headers that will be used when requesting the URI. All keys are lower-case. This object is a copy, so any changes will NOT be reflected in the FetchRequest. To set a header entry, use the setHeader method.

Returns

Record<string, string>

Source

utils/fetch.ts:323

method

get method(): string
The HTTP method to use when requesting the URI. If no method has been explicitly set, then GET is used if the body is null and POST otherwise.

Returns

string

Source

utils/fetch.ts:300

preflightFunc

get preflightFunc(): null | FetchPreflightFunc
This function is called prior to each request, for example during a redirection or retry in case of server throttling. This offers an opportunity to populate headers or update content before sending a request.

Returns

null | FetchPreflightFunc

Source

utils/fetch.ts:447

processFunc

get processFunc(): null | FetchProcessFunc
This function is called after each response, offering an opportunity to provide client-level throttling or updating response data. Any error thrown in this causes the send() to throw. To schedule a retry attempt (assuming the maximum retry limit has not been reached), use FetchResponse.throwThrottleError.

Returns

null | FetchProcessFunc

Source

utils/fetch.ts:463

retryFunc

get retryFunc(): null | FetchRetryFunc
This function is called on each retry attempt.

Returns

null | FetchRetryFunc

Source

utils/fetch.ts:473

timeout

get timeout(): number
The timeout (in milliseconds) to wait for a complete response. (default: 5 minutes)

Returns

number

Source

utils/fetch.ts:433

url

get url(): string
The fetch URL to request.

Returns

string

Source

utils/fetch.ts:244

Methods

cancel()

cancel(): void
Cancels the inflight response, causing a CANCELLED error to be rejected from the send.

Returns

void

Source

utils/fetch.ts:656

clearHeaders()

clearHeaders(): void
Clear all headers, resetting all intrinsic headers.

Returns

void

Source

utils/fetch.ts:367

clone()

clone(): FetchRequest
Create a new copy of this request.

Returns

FetchRequest The new request.

Source

utils/fetch.ts:709

getHeader()

getHeader(key): string
Get the header for key, ignoring case.

Parameters

ParameterTypeDescription
keystringThe header key to retrieve.

Returns

string The header value.

Source

utils/fetch.ts:350

hasBody()

hasBody(): this is FetchRequest & Object
Returns true if the request has a body.

Returns

this is FetchRequest & Object

Source

utils/fetch.ts:292

redirect()

redirect(location): FetchRequest
Returns a new FetchRequest that represents the redirection to location.

Parameters

ParameterTypeDescription
locationstringThe location to redirect to.

Returns

FetchRequest The new request.

Source

utils/fetch.ts:673

send()

send(): Promise<FetchResponse>
Resolves to the response by sending the request.

Returns

Promise<FetchResponse>

Source

utils/fetch.ts:644

setCredentials()

setCredentials(username, password): void
Sets an Authorization for username with password.

Parameters

ParameterTypeDescription
usernamestringThe username to use for basic authentication.
passwordstringThe password to use for basic authentication.

Returns

void

Throws

If the username contains a colon.

Source

utils/fetch.ts:405

setHeader()

setHeader(key, value): void
Set the header for key to value. All values are coerced to a string.

Parameters

ParameterTypeDescription
keystringThe header key to set.
valuestring | numberThe header value to set.

Returns

void

Source

utils/fetch.ts:360

setThrottleParams()

setThrottleParams(params): void
Update the throttle parameters used to determine maximum attempts and exponential-backoff properties.

Parameters

ParameterTypeDescription
paramsFetchThrottleParamsThe throttle parameters to set.

Returns

void

Throws

If the slotInterval is not a positive integer.

Source

utils/fetch.ts:530

createDataGateway()

static createDataGateway(): FetchGatewayFunc
Creates a function that can “fetch” data URIs. Note that this is automatically done internally to support data URIs, so it is not necessary to register it. This is not generally something that is needed, but may be useful in a wrapper to perfom custom data URI functionality.

Returns

FetchGatewayFunc The gateway function.

Source

utils/fetch.ts:827

createGetUrlFunc()

static createGetUrlFunc(options?): FetchGetUrlFunc
Creates a getUrl function that fetches content from HTTP and HTTPS URLs. The available options are dependent on the platform implementation of the default getUrl function. This is not generally something that is needed, but is useful when trying to customize simple behaviour when fetching HTTP content.

Parameters

ParameterTypeDescription
options?Record<string, any>The options to use when creating the getUrl function.

Returns

FetchGetUrlFunc The getUrl function.

Throws

If the gateways are locked.

Source

utils/fetch.ts:813

createIpfsGatewayFunc()

static createIpfsGatewayFunc(baseUrl): FetchGatewayFunc
Creates a function that will fetch IPFS (unvalidated) from a custom gateway baseUrl. The default IPFS gateway used internally is "https://gateway.ipfs.io/ipfs/".

Parameters

ParameterTypeDescription
baseUrlstringThe base URL of the IPFS gateway.

Returns

FetchGatewayFunc The gateway function.

Source

utils/fetch.ts:839

getGateway()

static getGateway(scheme): null | FetchGatewayFunc
Get the current Gateway function for scheme.

Parameters

ParameterTypeDescription
schemestringThe scheme to get the gateway for.

Returns

null | FetchGatewayFunc The gateway function, or null if not found.

Source

utils/fetch.ts:758

lockConfig()

static lockConfig(): void
Locks all static configuration for gateways and FetchGetUrlFunc registration.

Returns

void

Source

utils/fetch.ts:748

registerGateway()

static registerGateway(scheme, func): void
Use the func when fetching URIs using scheme. This method affects all requests globally. If lockConfig has been called, no change is made and this throws.

Parameters

ParameterTypeDescription
schemestringThe scheme to register the gateway for.
funcFetchGatewayFuncThe gateway function to use.

Returns

void

Throws

If the scheme is http or https.

Source

utils/fetch.ts:773

registerGetUrl()

static registerGetUrl(getUrl): void
Use getUrl when fetching URIs over HTTP and HTTPS requests. This method affects all requests globally. If lockConfig has been called, no change is made and this throws.

Parameters

ParameterTypeDescription
getUrlFetchGetUrlFuncThe function to use for fetching HTTP and HTTPS URIs.

Returns

void

Throws

If the gateways are locked.

Source

utils/fetch.ts:794