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

pest-control

v2.1.0

Published

a debug-esque logger with some extras

Readme

Pest Control

A (hopefully) useful debug logger designed as a drop-in replacement for debug with some extra bells and whistles.

Similarities

As mentioned above, pest control can be used as a drop-in replacement for debug. If you use debug and you like it, you probably have no reason to change.

Differences

Pest control adds a few extra features:

logger.log()

A simple alias to the top-level function to print logs.

logger.child(name)

Create a child of logger with the given name. This is useful for things like creating a logger in your main module and passing it to sub modules, these sub modules can than use a child of the original logger rather than creating their own with no record of inheritance.

For example:

const pc = require('pest-control')
const logger = pc('my-module')

logger('loading child')
require('./child')(logger)

Meanwhile in child.js:

module.exports = function (parentLogger) {
  const logger = parentLogger.child('child')
  logger('child loaded')
}

Which would yield something like the following output (assuming, of course, DEBUG is set to my-module*):

  my-module loading child
  my-module:child child loaded

logger.start(label)

Start an explicit timer with a label, this stores a timestamp and also immediately prints a start message, for example:

const logger = pc('my-module')

logger.start('loading dependencies')

Which would print:

  my-module loading dependencies start

logger.finish(label)

End an explicit timer. If the given label has not been passed to start() this is a no-op.

const logger = pc('my-module')

logger.start('loading')
setTimeout(() => {
  logger.finish('loading')
}, 100)

Which would print:

  my-module loading start
  my-module loading +100ms

logger.count(label)

Count how many times a thing happens, for example:

const logger = pc('my-module')

logger.count('did something')
logger.count('did something')
logger.count('did something')

Which would print something like:

  my-module did something #1
  my-module did something #2
  my-module did something #3