@nodefill/punycode

1.0.1Β β€’Β PublicΒ β€’Β Published

Punycode Node.js ponyfill

πŸ’” Deprecated node:punycode module as an npm package

πŸƒβ€β™€οΈ Uses the native node:punycode module when using Node.js
πŸ“‹ Uses punycode.js v2.0.1 everywhere else
⏳ Still prints the deprecation warning everywhere

πŸ›‘ The node:punycode module is deprecated in Node.js core. Instead, it's recommended to use a user-land implementation like punycode.js (which this package is based on). This package is provided solely for parity with node: APIs.

Installation

npm Yarn pnpm jsDelivr

Install this package using npm, Yarn, pnpm, or your other favorite npm package manager. Here's a quick copy-paste for npm users:

npm install @nodefill/punycode

This package is also compatible with Deno via their compatibility layer. You can import the package directly using the new npm: specifier, or a Deno-compatible ESM CDN like esm.sh or jsDelivr.

import {} from "npm:@nodefill/punycode";
import {} from "https://esm.sh/@nodefill/punycode";

If you're using not using a build tool and you just want to use the package in your browser, you can use an ESM npm CDN like esm.sh or jsDelivr.

import {} from "https://esm.sh/@nodefill/punycode";
import {} from "https://esm.run/@nodefill/punycode";

Usage

Node.js Deno Browser Bun

No matter what environment you import this package in, you'll always be greeted with a warning (unless you pass node --no-warnings). This package is deprecated in Node.js core. Instead, it's recommended to use a user-land implementation like punycode.js. This package is provided solely for parity with node: APIs.

Here's a quick overview of the API:

import { toASCII, toUnicode } from "@nodefill/punycode";

console.log(toASCII("πŸ˜€"));
//=> 'xn--e28h'

console.log(toUnicode("xn--wp8h"));
//=> πŸ‘‹

πŸ“š You can find more docs on the punycode.js v2.0.1 README or the Node.js node:punycode docs!

Development

JavaScript

Special thanks to Mathias Bynens for the punycode.js v2.0.1 implementation! The code for the non-node targets is ripped straight from there (plus a warning message and explicit exports). As for types, you can thank TypeStrong and the DefinitelyTyped community for the @types/node definitions which, again, are copy-pasted into the index-types.d.ts file.

There's no tests and no TypeScript since this package is simple enough to not warrant those extra things.

This package itself should be deprecated on npm if/when the node:punycode module is removed from Node.js core. Until then, don't deprecate it. Why? So that it doesn't show a warning when you install it, πŸ˜… and so that it appears in npm search results. 😎

Package Sidebar

Install

npm i @nodefill/punycode

Weekly Downloads

4

Version

1.0.1

License

MIT

Unpacked Size

26 kB

Total Files

6

Last publish

Collaborators

  • jcbhmr