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 🙏

© 2024 – Pkg Stats / Ryan Hefner

jambox

v0.4.4

Published

Tool for recording and playing back HTTP requests.

Downloads

189

Readme

Coverage

:radio: Jambox :radio:

Record & Playback requests.

Install

yarn add -D jambox

Usage

jam

Prepend jam to whatever command you are using to run next for example

{
  "scripts": {
    "dev": "jam next dev"
  }
}

Or without changing an existing command

$(yarn bin jam) yarn dev

Browser

Each command auto starts a proxy server.

For example

yarn jam http://my-site-url.com

or create a re-usable script if you don't want to type this out every time

{
  "scripts": {
    "view": "jam http://my-site-url.com"
  }
}

jam-server [sub-command] [--port]

Launches a jambox server, you shoulnd't have to start one manually. These are launched by the jam command if one isn't already running.

See sub-commands below.

ping

yarn jam-server ping

Attempt to ping a currently running jambox server

shutdown

yarn jam-server shutdown

Attempt to shutdown a currently running jambox server

tail

yarn jam-server tail

Tail the current logfile

Config (in-progress)

Currently jambox.config.js is the default config path.

Changing the config file resets the jambox server in order to use the changed options. Any cache values not persisted to file(s) are abanadoned when a jam server is reset.

Here is a kitchen sink example of a config that:

  • blocks any non mocked request
  • proxies any http://my-site-url.com request to localhost
  • in addition to HTTP requests also proxies Weboscket requests
  • ignores some requests entirely
  • caches specific paths and persists them to disk with write: 'auto'
  • auto responds with static codes/messages to things like images and logs
// Example config
module.exports = {
  blockNetworkRequests: true,
  // A map of a original:destination host
  forward: {
    // Forward all admin requests to a local App
    'http://my-site-url.com': {
      target: 'http://localhost:3000',
      paths: [
        // Match all paths
        '**',
        // Ignore the following paths, send them to the real server
        '!**/graphql',
        '!**/log',
      ],
      // Match websockets (support for NextJS local dev)
      websocket: true,
      // Enable automatic cors support
      // Useful for local servers which do not implement OPTIONS handlers
      // An object of custom OPTIONS respond Headers could be provided as well
      // default: false
      cors: true,
    },
  },
  stub: {
    '**/*.png': 204,
    // It's possible to respond with placeholder images instead of blank/broken 204s
    // Note that you must spcify a filepath, not file contents
    '**/*.jpg': { status: 200, file: 'placeholder.jpg', preferNetwork: true },
    '**/*.ico': 204,
    '**/log': { status: 200, statusMessage: 'stub log' },
  },
  cache: {
    write: 'auto',
    // Match a hostname + pathname string
    stage: ['**/graphql'],
    ignore: ['**/log'],
  },
};