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

@amadeus-it-group/kassette

v1.7.0

Published

Development server, used mainly for testing, which proxies requests and is able to easily manage local mocks.

Downloads

2,402

Readme

kassette

npm codecov

To use it:

  • install with npm install @amadeus-it-group/kassette
  • add this command to your package.json scripts: kassette -c kassette.config.js
  • and create the configuration file kassette.config.js:
/**
 * @return { import("@amadeus-it-group/kassette").ConfigurationSpec }
 */
exports.getConfiguration = () => {
  return {
    port: 4200,
    mocksFolder: './mocks-folder',
    remoteURL: 'http://127.0.0.1:3000',
    mode: 'local_or_download',

    hook: async ({ mock }) => {
      if (!mock.request.pathname.startsWith('/api/')) {
        mock.setMode('remote');
        return;
      }

      mock.setLocalPath([mock.request.pathname.split('/').slice(1), mock.request.method]);
    },
  };
};

Now run your script to launch the proxy!

With this configuration, input requests targeting URLs starting with /api/ will get processed, and local mocks will be used if present, otherwise data will be downloaded from http://127.0.0.1:3000 with a forwarded request, persisted and used for future input requests.

Note that kassette can also be configured to run as a browser proxy, reading the target URL from the request, and intercepting HTTPS communications.

Check Getting started to learn more.

Main features

  • optionally forward requests to a remote backend
  • record backend responses for later use
  • easily computed and set local mock path
  • fill response to client from backend response, downloaded or persisted
  • modify response to client manually
  • can optionally act as the browser proxy
  • generate TLS certificates on the fly to intercept HTTPS communications (as a man-in-the-middle)
  • integrates nicely into your editor and source control: a simple hierarchy of files is generated in a clean way for inspection, edition, diffing, etc.
  • supports the HAR format to record and replay mocks, either in JSON or in YAML
  • supports HTTP/1.x and HTTP/2.0 both in client and server

Installation

This is a Node.js project using npm for dependency management, so ensure you have those two properly installed. Node.js LTS onwards is supported.

With npm, you can install it in two locations:

  • locally inside your project and run it the usual way (using a npm script or accessing the path explicitly node_modules/.bin/kassette)
  • or install it globally and run it using the command kassette (not advised for self-contained projects)

Besides where it is installed, you have at least two ways to install it:

  • from the npm registry: package's name is @amadeus-it-group/kassette
  • from a git clone (see below)

Installing from a git clone

Clone this repository, and run npm link to install it globally on your computer.

If you want to use it globally only, then there is nothing more to do.

If you want to install it locally though, you need to add one more step. You won't be able to use a package.json dependency, but you can install it manually using npm link @amadeus-it-group/kassette from inside your project.

User documentation

It is advised to start with the Getting started article which describes a few practical usage examples, then check the configuration guide and the API guide. The API reference is also available.

Developing / Contributing

See developer guide for details.