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

@spaceteams/warp

v0.3.0

Published

Type-safe composition with execution scopes

Readme

🧵 Warp

Compose once. Resolve per request.

warp is a small runtime for composing application components and resolving them against an ambient context.

It helps structure repositories, services and use cases as an explicit dependency graph while keeping request context, transactions, tracing and tests easy to manage.

No container magic. No autowiring. Just explicit composition and scoped execution.


Why “warp”?

The name comes from two places.

In physics, warp suggests speed.
In weaving, the warp threads are the fixed threads that hold a fabric together.

warp plays a similar role in your application:

  • components form the threads of a dependency graph
  • the runtime weaves them together for a request
  • cross-cutting concerns like transactions or tracing can be applied through middleware

The problem

In most Node.js applications, wiring dependencies eventually becomes messy.

You end up with one of these situations:

  • Manual wiring everywhere
const repo = createRepo(prisma)
const service = createService(repo)
const usecase = createUseCase(service)
  • A container that hides everything
container.resolve("CreateUserUseCase")

Manual wiring becomes repetitive. Containers often introduce hidden magic and runtime errors.

At the same time modern applications need:

  • request scoped context
  • transactions
  • tracing and metrics
  • easy test overrides

warp provides a middle ground.

Dependencies stay explicit and typed, but wiring happens once and the runtime handles scoped execution.

Core idea

Define a component graph once:

const service = component(serviceFactory, {
  repo: component(repoFactory)
})

Resolve it against the current request context:

const handler = resolve(service, { requestId })
handler(params)

The graph is static. The context is supplied when executing.

Compose once, resolve per request.

Why warp?

  • explicit dependency graphs
  • typed context
  • request-scoped execution
  • middleware for cross-cutting concerns
  • easy testing with overrides
  • no container magic

Examples

You can find more examples in the examples project

When to use it

warp is useful if your application has:

  • repositories, services and use cases
  • request scoped context
  • transactions or tracing
  • complex dependency wiring
  • tests that need to replace dependencies

When not to use it

If your application is small and simple manual wiring is enough, you probably don’t need warp.

Or if you want to go all-in with effect anyway.

Status

Early stage, evolving API.