Socket
Book a DemoInstallSign in
Socket

undici-shim

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

undici-shim

Provides Undici request in Node, native fetch in the browser.

latest
Source
npmnpm
Version
1.5.3
Version published
Maintainers
1
Created
Source

undici-shim Codacy Badge GitHub repo size

A small ESM/UMD library providing the fast request function from Undici within Node, otherwise window.fetch is utilized when running in a browser environment.

Why?

Upon trying to distribute a project, I found Undici could not be used on the client-side.
As such, this is a drop-in replacement for Undici when using bundlers like webpack/rollup.

Without the overhead of WHATWG Streams, the request method proves much faster than fetch in both latency and throughput.

TestsSamplesResultsToleranceDifference with slowest
undici - fetch201028.31 req/sec± 2.71 %-
http - no keepalive103891.51 req/sec± 2.00 %+ 278.44 %
undici - pipeline956034.47 req/sec± 2.95 %+ 486.83 %
http - keepalive506382.57 req/sec± 2.98 %+ 520.68 %
undici - request158528.35 req/sec± 2.11 %+ 729.35 %

Install

npm i undici-shim

Usage

ESM

import request from 'undici-shim'
const res = await request('https://jsonplaceholder.typicode.com/posts/1')

console.log(await res.body.json())

You can also use Undici fetch instead of request for consistency across environments.

import { fetch } from 'undici-shim'
const res = await fetch('https://jsonplaceholder.typicode.com/posts/1')

console.log(await res.json())

CommonJS

const { fetch } = require('undici-shim')

fetch('https://jsonplaceholder.typicode.com/posts/1')
    .then(res => res.json())
    .then(console.log)

Named Exports

Node
Starting from v1.3.2, named exports are identical to Undici.

import { request, Dispatcher, Headers, ... } = from 'undici-shim'

Browser

import { fetch, Request, Response, Headers } = from 'undici-shim'

Keywords

shim

FAQs

Package last updated on 13 Apr 2024

Did you know?

Socket

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.

Install

Related posts