npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2024 – Pkg Stats / Ryan Hefner

@nodefill/punycode

v1.0.1

Published

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

Downloads

9

Readme

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. 😎