From 3b6f554c95f7c4ba9f825d87c3fcf0c5c359f246 Mon Sep 17 00:00:00 2001 From: "Nicholas C. Zakas" Date: Thu, 22 Aug 2024 11:59:00 -0400 Subject: [PATCH] docs: Add FAQ and sponsors to README fixes #19 --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index fd17b47..98d027c 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,34 @@ export default [ - `no-duplicate-keys` - warns when there are two keys in an object with the same text. - `no-empty-keys` - warns when there is a key in an object that is an empty string or contains only whitespace (note: `package-lock.json` uses empty keys intentionally) +## Frequently Asked Questions + +### How does this relate to `eslint-plugin-json` and `eslint-plugin-jsonc`? + +This plugin implements JSON parsing for ESLint using the language plugins API, which is the official way of supporting non-JavaScript languages in ESLint. This differs from the other plugins: + +- `eslint-plugin-json` uses a processor to parse the JSON, meaning it doesn't create an AST and you can't write custom rules for it. +- `eslint-plugin-jsonc` uses a parser that still goes through the JavaScript linting functionality and requires several rules to disallow valid JavaScript syntax that is invalid in JSON. + +As such, this plugin is more robust and faster than the others. You can write your own custom rules when using the languages in this plugin, too. + +### What about missing rules that are available in `eslint-plugin-json` and `eslint-plugin-jsonc`? + +Most of the rules in `eslint-plugin-json` are actually syntax errors that are caught automatically by the parser used in this plugin. + +Similarly, many of the rules in `eslint-plugin-jsonc` specifically disallow valid JavaScript syntax that is invalid in the context of JSON. These are also automatically caught by the parser in this plugin. + +Any other rules that catch potential problems in JSON are welcome to be implemented. You can [open an issue](https://github.com/eslint/json/issues/new/choose) to propose a new rule. + ## License Apache 2.0 + +## Sponsors + + + + + + +