eslint-plugin-json-es
v1.6.0
Published
A JSON parser for ESLint.
Downloads
76,753
Maintainers
Readme
eslint-plugin-json-es
A JSON parser for ESLint that works with a lot of existing ESLint rules or your custom rules.
Installation
npm install eslint-plugin-json-es --save-dev
Configure ESLint
This is an example ESLint configuration for all *.json files. It extends the recommended rules for JSON.
{
"overrides": [{
"files": ["*.json"],
"parser": "eslint-plugin-json-es",
"extends": "plugin:eslint-plugin-json-es/recommended",
"rules": {
}
}]
}
Examples
See the example branch for different use cases and ESLint configurations.
Alternative JSON Plugins
There are three different ways how to add JSON linting to ESLint. Select the package that fits your needs:
| | eslint-plugin-json-es | eslint-plugin-json | eslint-plugin-jsonc | | --- | ----------------------------- | ------------------------- | ------------------------- | | Version | | | | | Engine | ESLint espree parser | VSCode JSON Validation | Custom AST parser | | ESLint version | >7.0.0 | ? | >6.0.0 | | Custom rules | ✔ | ❌ | ✔ (1) | | Use existing ESLint rules | ✔ (2) | ❌ | ❌ | | Fix Code | ✔ | ❌ | ✔ (partly) | | Rule compare guide | - | Compare | #TODO :-( |
(1) Uses custom AST node types (2) Not every ESLint rule makes sense for JSON
Rules Configurations
Recommended
| Auto-fix | Rule | Version | |----------|----------------------------| ----------| |🔧| comma-dangle | > 1.3.0 | | | no-dupe-keys | > 1.3.0 | |🔧| no-extra-parens | > 1.4.0 | | | no-irregular-whitespace | > 1.3.0 | | | no-loss-of-precision | > 1.3.0 | | | no-undefined | > 1.3.0 | |🔧| quotes | > 1.3.0 | |🔧| quote-props | > 1.3.0 |
Readable
Based on the recommended rules with stylistic aspects.
| Auto-fix | Rule | Comment | |----------|------------------------|---------------------| |🔧| indent | 4 | |🔧| no-multiple-empty-lines | | | | sort-keys |Alternative with fix eslint-plugin-sort-keys-fix |
Optional Rules
A list of optional rules that can be added to your configuration.
json-es/use-camelcase
The "original" ESLint camelcase rule does not work with JSON files.
A custom 'use-camelcase' rule is available. Based on the ESLint camelcase rule with minor adjustments.
Configuration
{
"rules": {
"json-es/use-camelcase": ["error", {"allow": ["FOO", "[regex]*"]}]
}
}