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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@steadybrew/postgresjs-migrate

v0.2.0

Published

Check a Postgres.js 3.x project and switch it to @steadybrew/postgresjs

Readme

@steadybrew/postgresjs-migrate

Checks a project that uses Postgres.js 3.x and switches it to @steadybrew/postgresjs.

npx @steadybrew/postgresjs-migrate .            # report only, changes nothing
npx @steadybrew/postgresjs-migrate . --switch   # report, then switch

From the Codemod registry, run npx codemod @steadybrew/postgresjs-migrate in the project's root directory; it runs the same check and switch.

Requires Node.js 18 or newer to run. The fork declares Node.js 22 or newer; older versions may work but aren't tested. The report flags projects that set an older version.

The report

Every finding has a file and line, grouped by what to do about it:

  • Change before switching: the project would break or behave differently. Examples: Node.js older than 22 in engines, .nvmrc or a Dockerfile; a [email protected] patch; a package your code imports that brings its own Postgres.js; PGSSL=disable, which 3.4.9 read as "require TLS" and the fork reads as "no TLS".
  • Review: code whose behaviour changes in a way that may matter. Examples: a reserved handle used after release(); fetch_types: false, which now decodes arrays; a CI job on Node.js older than 22.
  • Worth knowing: changes that need no action, or workarounds the fork makes unnecessary. Examples: prepare: false behind a pooler; Promise.race timeouts; callbacks that throw, which now surface as uncaught exceptions.

--json prints the findings and the facts behind them (clients, ORMs, tracers, lockfiles) instead.

The full list of behaviour changes is in the fork's migration guide and changelog.

What --switch changes

  • Each package.json that depends on postgres gets "postgres": "npm:@steadybrew/postgresjs@^4". Your imports stay as they are, and so do Drizzle, Kysely and tracers, which all load postgres by name. A pnpm catalog: reference is switched in pnpm-workspace.yaml instead.
  • If a production dependency brings its own postgres, the alias does not reach it, so the switch also writes overrides (npm), pnpm overrides or yarn resolutions.
  • A [email protected] patch whose every change is already in the fork is deleted, with its patchedDependencies entry. A patch with any other change stops the switch before anything is written.

It does not change Node.js versions, your code, or your lockfile. Afterwards, run your package manager's install and commit the updated lockfile with the changes.

Tested with npm, pnpm and yarn. Bun lockfiles are read and bun projects get overrides, but no bun install is tested.

Sentry

Sentry's automatic integration only instruments postgres 3.x. The report lists Sentry under tracing, and --switch reminds you to add a preload; it does not apply the adjustment. The preload is in the fork's migration guide.