npm.io
1.3.2 • Published 1 year ago

@whatwg-node/promise-helpers

Licence
MIT
Version
1.3.2
Deps
1
Size
22 kB
Vulns
0
Weekly
0
Stars
198

WhatWG Node

This repository contains a set of environment(Browser, Node.js, Deno, Cloudflare Workers, Bun, etc.) agnostic packages for the WhatWG standards.

Node.js currently is the only exception that doesn't fully support those standards so whatwg-node packages ponyfill the missing parts without modifying or monkey-patching the native global APIs like polyfills.

Polyfill patches the native parts of an environment while ponyfill just exports the “patched” stuff without touching the environment’s internals. We prefer pony filling because it prevents us from breaking other libraries and environmental functionalities. In case a ponyfill is imported in an environment that already has that API built in like newer Node.js, Cloudflare Workers, Bun, Deno or Browser, no ponyfills are added to your built application bundle. So you have a generic package that works in all environments.

Packages

@whatwg-node/fetch

A ponyfill package for the Fetch Standard.

@whatwg-node/events

A ponyfill package for the DOM Events Standard.

@whatwg-node/server

A platform-independent JavaScript HTTP server adapter implementation that uses the Fetch Standard to handle requests. The HTTP server implemented with this library can be used in any JS environment like Node.js, Deno, Cloudflare Workers, Bun, etc. For Node.js, it transpiles Node.js specific APIs to the standard ones, and for other environments, it uses the standard APIs directly. Even if your environment doesn't use Fetch API for the server implementation, you can still use fetch method to handle requests.

fetchache

A fetch wrapper that allows you to respect HTTP caching strategies on non-browser environments with a key-value cache implementation. It follows the HTTP Caching and Conditional Requests standards.

Support the Project

whatwg-node is maintained in the open and helps keep web-standard APIs consistent across Node.js, Bun, Deno, Cloudflare Workers, and other JavaScript runtimes. If this project saves you time or helps power your work, please consider sponsoring its development.

Your support helps fund ongoing maintenance, compatibility work, and improvements across the ecosystem. Every contribution, large or small, is genuinely appreciated.