Implements rules for userscripts metadata in eslint
npm install eslint-plugin-userscriptseslint-plugin-userscriptsImplements rules for userscripts in eslint.
You'll first need to install ESLint:
``shell`
npm install eslint --save-dev
Next, install eslint-plugin-userscripts:
`shell`
npm install eslint-plugin-userscripts --save-dev
Add userscripts to the plugins section of your .eslintrc configuration file:
`json`
{
"extends": ["plugin:userscripts/recommended"]
}
Add an element to the config array in your eslint.config.* file :
`js
const userscripts = require('eslint-plugin-userscripts');
module.exports = [
// other configs
{
files: ['*.user.js'],
plugins: {
userscripts: {
rules: userscripts.rules
}
},
rules: {
...userscripts.configs.recommended.rules
},
settings: {
userscriptVersions: {
violentmonkey: '*'
}
}
}
];
`
| Rule | Description | Recommended |
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | :---------: |
| filename-user | Ensures userscripts end with .user.js | ✅ |
| no-invalid-grant | Ensures the argument passed to @grant is valid | ✅ |no-invalid-metadata
| | Ensures userscripts have valid metadata | ✅ |require-name
| | Ensures userscripts have a name | ✅ |require-description
| | Ensures userscripts have a description | ✅ |require-version
| | Ensures userscripts have a valid version | ✅ |use-homepage-and-url
| | Ensures that for each homepage attribute, homepageURL is also used | ✅ |require-download-url
| | Ensures that for each downloadURL there is a updateURL | ✅ |align-attributes
| | Ensures that attributes are spaced out and aligned | ✅ |require-attribute-space-prefix
| | Ensure that attributes are prefixed by one space | ✅ |metadata-spacing
| | Ensures there is a newline between the metadata and the code | ✅ |no-invalid-headers
| | Ensures userscripts have valid headers | ✅ |compat-grant
| | Ensures your @grant permissions are supported | |compat-headers
| | Ensures your headers are supported | |better-use-match
| | Prefers @match over @include` | ✅ |