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

@coderevivehq/inflight

v1.1.0

Published

Coalesce callback-style async work by key with cancellation and timeouts

Readme

Overview

inflight coalesces callback-style asynchronous work by key. The first caller receives a resolver function; later callers for the same key join the pending operation and receive the same result when that resolver runs. This continuation adds explicit cancellation and opt-in timeouts so callers can release retained callbacks when work does not settle.

New promise-based code should generally use native promise coordination or a maintained cache with asynchronous fetching. This package exists for callback-based integrations that need the established inflight(key, callback) contract while they migrate.

Maintained by CodeRevive

This maintained continuation is published by CodeRevive. Security patches are our highest priority. We also review bug reports, feature requests, and suggestions from the community.

The project is based on the original inflight repository by Isaac Z. Schlueter and its contributors.

Quick links

Installation & setup

npm install @coderevivehq/inflight

The package uses CommonJS and supports Node.js 14.16 or later.

Documentation

Detailed documentation is maintained with the source code in the docs/ directory. Start with the documentation overview, then read the Usage guide and API reference.

Usage

var fs = require('fs')
var inflight = require('@coderevivehq/inflight')

function load (key, callback) {
  var resolve = inflight(key, callback, { timeout: 30000 })
  if (!resolve) return

  fs.readFile(key, resolve)
}

Only the first call for a key starts the underlying operation. Set a timeout or call resolve.cancel() when the operation cannot complete so queued callbacks are not retained indefinitely. See the Usage guide for complete examples.

Contributing

Bug reports, focused improvements, and documentation updates are welcome through GitHub issues and pull requests. Please run npm test before submitting a change.

Security & support

Report security concerns privately through the repository's Security page. For usage questions and ordinary bugs, open a GitHub issue with a minimal reproduction when possible.

Credits & license

This project is a maintained continuation of the original inflight repository. Original code and inherited files remain licensed under the upstream ISC License. CodeRevive-authored changes are licensed under the MIT License in LICENSE-CODEREVIVE, unless a file states otherwise. Using the combined repository remains subject to all applicable license terms.

The original copyright notice for Isaac Z. Schlueter is retained in LICENSE.