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

@mostlyworks/prisma-rewind

v0.1.0

Published

Framework-agnostic transactional test isolation for Prisma 8 and PostgreSQL

Readme

@mostlyworks/prisma-rewind

Framework-agnostic transaction isolation for PostgreSQL tests using Prisma 8.

npm install --save-dev @mostlyworks/prisma-rewind

Prisma 8 is currently available as a release candidate. Development is pinned to @prisma/[email protected]; the package peer range supports that release candidate and subsequent Prisma 8 releases (>=8.0.0-rc.8 <9).

Usage

import { createTransactionalTestHelper } from '@mostlyworks/prisma-rewind';
import { db } from './prisma/db.js';

const testDb = createTransactionalTestHelper(db);

await testDb.startNewTransaction();
try {
  await testDb.client.orm.public.User.create({ email: '[email protected]' });
  // Run assertions using the same stable testDb.client proxy.
} finally {
  await testDb.rollbackCurrentTransaction();
}

Database operations through client require an active test transaction. Starting a second root transaction on the same helper also fails. Use a separate Prisma client and helper for each concurrently active test transaction.

Application code can call client.transaction() while the root test transaction is active. Successful nested work remains visible to the outer transaction, while a thrown error rolls nested work back to a PostgreSQL savepoint and leaves the outer transaction usable. Nested work is still removed by rollbackCurrentTransaction().

The proxy exposes Prisma's non-query raw, enums, and nativeEnums utilities without requiring a transaction. Client lifecycle methods (connect, close, and async disposal) delegate to the original client when no test transaction exists and fail clearly while one is active. The proxied connect() resolves to undefined instead of exposing Prisma's query-capable runtime. Unknown operations remain transaction-bound so a query-capable API can never silently fall back to the original client. Raw transaction-control statements such as COMMIT, ROLLBACK, and SAVEPOINT are rejected when executed through the proxy because they could escape the helper's root rollback or interfere with nested savepoints.

Development

npm install
npm test
npm run tc
npm run lint

PostgreSQL integration tests run when TEST_DATABASE_URL is set:

TEST_DATABASE_URL=postgresql://localhost/postgres npm test