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