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.
-
Install the package
npm install --save-dev @devil7softwares/eslint-plugin-axios-swagger
(or)
yarn add --dev @devil7softwares/eslint-plugin-axios-swagger
-
Add the plugin to the eslint configuration
{ "plugins": ["@devil7softwares/axios-swagger"] }
-
Add rules to the eslint configuratin
{ "rules": { "@devil7softwares/axios-swagger/no-unknown-route": "error", "@devil7softwares/axios-swagger/no-unsupported-method": "error" } }
-
Add paths to swagger spec to settings in the eslint configuration
{ "settings": { "axios-swagger": { "specs": ["./spec/swagger.json"] } } }
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. |
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 |
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')
oraxios.post('/users', data)
- The baseUrl can only be used globally i.e. you can't use different baseUrls for different places.