1.0.1 ā€¢ Published 10 months ago

@nodefill/punycode v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Punycode Node.js ponyfill

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

npm.io

šŸƒā€ā™€ļø 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. šŸ˜Ž

1.0.1

10 months ago

1.0.0

10 months ago

0.1.0

10 months ago