1.6.0 • Published 7 days ago

eslint-plugin-json-es v1.6.0

Weekly downloads
2,586
License
MIT
Repository
github
Last release
7 days ago

NPM version CI status Downloads NPM

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-eseslint-plugin-jsoneslint-plugin-jsonc
VersionNPM versionNPM versionNPM version
EngineESLint espree parserVSCode JSON ValidationCustom 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

./config/recommended.js

Auto-fixRuleVersion
🔧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.

./config/style.js

Auto-fixRuleComment
🔧indent4
🔧no-multiple-empty-lines
sort-keysAlternative 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]*"]}]
    }
}