@devil7softwares/eslint-plugin-axios-swagger
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

eslint-plugin-axios-swagger

ESLint plugin to lint routes used in the app with axios using swagger spec.

This plugin takes your swagger spec json files and checks whether the method and routes you use with axios exists.

Getting Started

  1. Install the package

    npm install --save-dev @devil7softwares/eslint-plugin-axios-swagger

    (or)

    yarn add --dev @devil7softwares/eslint-plugin-axios-swagger
  2. Add the plugin to the eslint configuration

    {
        "plugins": ["@devil7softwares/axios-swagger"]
    }
  3. Add rules to the eslint configuratin

    {
        "rules": {
            "@devil7softwares/axios-swagger/no-unknown-route": "error",
            "@devil7softwares/axios-swagger/no-unsupported-method": "error"
        }
    }
  4. Add paths to swagger spec to settings in the eslint configuration

    {
        "settings": {
            "axios-swagger": {
                "specs": ["./spec/swagger.json"]
            }
        }
    }

Available Settings

Key Type Required Description
specs Array<string> Paths of swagger specification files. Paths should be relative to the package root where the plugin is installed.
basePath string Base path for URL.

Available Rules

Rule Description
@devil7softwares/axios-swagger/no-unknown-route Enforces that no routes that are not specified in the swagger spec can be used
@devil7softwares/axios-swagger/no-unsupported-method Enforces that the matched routes are used only with methods specified in the swagger spec

Cavets

NOTE: I wrote this plugin for using in my own projects. So, I handled all the scenarios I encountered. I have listed some of the scenarios where this plugin might not work. Feel free to make a pull request to fit your needs or let me know, maybe I'll look into it when I have the time.

  • Only JSON format of swagger spec is supported
  • The plugin only checks the routes of axios calls made using get, post, put, delete methods. e.g. axios.get('/users') or axios.post('/users', data)
  • The baseUrl can only be used globally i.e. you can't use different baseUrls for different places.

Package Sidebar

Install

npm i @devil7softwares/eslint-plugin-axios-swagger

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

9.04 kB

Total Files

4

Last publish

Collaborators

  • devil7dk