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 🙏

© 2025 – Pkg Stats / Ryan Hefner

swagger-mod

v1.2.4

Published

Modifies an existing swagger document using filters

Readme

swagger-mod

Build Status Coverage Status GitHub NPM version npm GitHub last commit

Modifies an existing swagger document using filters. Many examples can be found in examples directory in the source code repository.

How to use the library

Install the library.

npm install swagger-mod --save

Use the Promises syntax to modify your swagger document.

The code snippet below filters an existing swagger document by HTTP methods. The resultant swagger will only contain GET, PUT and DELETE methods. To exclude an HTTP method simply use the exclude tag inside http tag. Note that you cannot use include and exclude both at once.

const swaggerMod= require("swagger-mod");

const opts = {
    filters: {

        // Filter by HTTP methods
        // Do not use regular expressions here
        http: {
            include: ['get', 'put', 'post']
        }
    }
};

swaggerMod('https://petstore.swagger.io/v2/swagger.json', opts)
  .then(function(modifiedSchema) {
    console.log(modifiedSchema); 
  }).catch(function(err) {
    console.error(err);
  });

Given below is an example for filtering by tags. Use regular expressions to do the filtering.

const swaggerMod= require("swagger-mod");

const opts = {
    filters: {

        // Filter by tags using regular expressions
        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
        tags: {
            exclude: [
                '/^pet$/i', // Exact match( case insensitive)
                '/store/i' // Ignores case
            ]
        }
    }
};

swaggerMod('https://petstore.swagger.io/v2/swagger.json', opts)
  .then(function(modifiedSchema) {
    console.log(modifiedSchema);     
  }).catch(function(err) {
    console.error(err);
  });

You can chain your filters like this.

const opts = {
    filters: {

        // Filter by HTTP methods
        http: {
            include: ['get', 'delete']
        },

        // Filter by paths using regular expressions
        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
        paths: {
             exclude: [
                '//pet/findByStatus/'
             ]
        }
    }
};

Available filters

  • http
  • paths
  • tags
  • summary
  • description

Other examples

The examples directory in the source code repository has many examples.

A demo application

A demo express app using swagger-mod can be found here.

Writing regular expressions

A regular expression is is a pattern enclosed within two slashes.

/Store/

^ matches the beginning of input and $ matches end of input. Therefore the regular expression below matches Store.

/^Store$/

To make this case insensitive add i flag. The regular expression below matches Store, store, STORE etc.

/^Store$/i

For more ways to write regular expressions refer to the documentation.

License

The Project is under MIT License. Internet is free. Use the code anyway you like.

Sample swagger document swagger.json is under Apache 2.0 License.