What is minipass-fetch?
The minipass-fetch npm package is a light-weight implementation of the window.fetch API built on top of the minipass stream library. It is designed to be a smaller, stream-based alternative to the larger fetch implementations, allowing for efficient data handling and manipulation in Node.js environments.
What are minipass-fetch's main functionalities?
Performing HTTP GET requests
This feature allows you to perform HTTP GET requests to retrieve data from a specified URL. The response can be processed as JSON.
const fetch = require('minipass-fetch');
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Performing HTTP POST requests
This feature allows you to perform HTTP POST requests to send data to a server. You can include headers and a body in the request.
const fetch = require('minipass-fetch');
fetch('https://api.example.com/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log('Success:', data))
.catch(error => console.error('Error:', error));
Streaming response data
This feature leverages the streaming capabilities of minipass-fetch to handle large amounts of data without buffering it all in memory at once.
const fetch = require('minipass-fetch');
const { PassThrough } = require('stream');
fetch('https://api.example.com/large-data')
.then(response => {
const stream = new PassThrough();
response.body.pipe(stream);
stream.on('data', chunk => console.log(chunk.toString()));
})
.catch(error => console.error('Error:', error));
Other packages similar to minipass-fetch
node-fetch
node-fetch is a light-weight module that brings the Fetch API to Node.js. It is similar to minipass-fetch but does not focus on streaming data and may not be as minimal in size.
axios
axios is a promise-based HTTP client for the browser and Node.js. It provides a more feature-rich API compared to minipass-fetch, including interceptors, automatic transforms for JSON data, and client-side protection against XSRF.
got
got is a human-friendly and powerful HTTP request library for Node.js. It offers advanced features like retries, streams, and convenient JSON handling, which can make it a more comprehensive alternative to minipass-fetch.
minipass-fetch
An implementation of window.fetch in Node.js using Minipass streams
This is a fork (or more precisely, a reimplementation) of
node-fetch. All streams have been replaced
with minipass streams.
The goal of this module is to stay in sync with the API presented by
node-fetch
, with the exception of the streaming interface provided.
Why
Minipass streams are faster and more deterministic in their timing contract
than node-core streams, making them a better fit for many server-side use
cases.
API
See node-fetch
Differences from node-fetch
(and, by extension, from the WhatWG Fetch
specification):