Security News
Bun 1.2 Released with 90% Node.js Compatibility and Built-in S3 Object Support
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
A light-weight module that brings window.fetch to Node.js (with HTTP_PROXY support).
A light-weight module that brings window.fetch
to Node.js (with HTTP_PROXY
support).
/**
* @see https://github.com/tim-kos/node-retry#retrytimeoutsoptions
*/
type RetryConfigurationType = {
factor?: number,
maxTimeout?: number,
minTimeout?: number,
randomize?: boolean,
retries?: number
};
type ValidateResponseType = (response: Object) => Promise<boolean>;
type ConfigurationType = {
+agent?: Object,
+body?: string | Buffer | Blob | ReadableStream,
+compress?: boolean,
+follow?: number,
+header?: {[key: string]: string | number},
+method?: string,
+redirect?: 'follow' | 'manual' | 'error',
+retry?: RetryConfigurationType,
+size?: number,
+timeout?: number,
+validateResponse?: ValidateResponseType
};
type fetch = (url: string, configuration?: ConfigurationType) => Promise<Object>;
Name | Value |
---|---|
retry | Used to retry requests that produce response that does not pass validation. Refer to Retry request and Validating response. |
validateResponse | Used to validate response. Refer to Validate response. |
For other configuration properties, refer to node-fetch
documentation.
Uses HTTP_PROXY
(http://host:port
) environment variable value to configure HTTP proxy.
Note: You must also configure
NODE_TLS_REJECT_UNAUTHORIZED=0
. This is a lazy workaround to enable the proxy to work with TLS.
Throws UnexpectedResponseCodeError
error if response code is non-2xx.
This behaviour can be overrode using validateResponse
configuration.
Requests that result in non-2xx response will be retried.
retry
option is used to configure request retry strategy.
The retry
configuration shape matches configuration of the retry
module.
Define a custom validator function to force use the request retry strategy.
A custom validator is configured using validateResponse
configuration, e.g.
import xfetch, {
UnexpectedResponseError
};
const validateResponse = async (response) => {
const body = await response.text();
if (body.includes('rate error')) {
throw new UnexpectedResponseError(response);
}
return true;
}
xfetch('http://gajus.com', {validateResponse});
A custom validator must return a boolean flag indicating whether the response is valid. A custom validator can throw an error that extends UnexpectedResponseError
error.
xfetch
default validator can be imported and used to extend a custom validator, e.g.
import xfetch, {
UnexpectedResponseError,
validateResponse as defaultValidateResponse
};
const validateResponse = async (response) => {
const responseIsValid = await defaultValidateResponse(response);
if (!responseIsValid) {
return responseIsValid;
}
const body = await response.text();
if (body.includes('rate error')) {
throw new UnexpectedResponseError(response);
}
return true;
}
xfetch('http://gajus.com', {validateResponse});
FAQs
A light-weight HTTP client for Node.js.
The npm package xfetch receives a total of 43 weekly downloads. As such, xfetch popularity was classified as not popular.
We found that xfetch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.