From b001969b94d6061d138eea15795c092eead78158 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 22 Jul 2021 09:32:21 +0800 Subject: [PATCH] Remove `require-json-extensions` rule (#11233) --- .eslintrc.js | 1 - .../index.js | 1 - .../require-json-extensions.js | 77 ------------------- .../test.js | 12 --- 4 files changed, 91 deletions(-) delete mode 100644 scripts/tools/eslint-plugin-prettier-internal-rules/require-json-extensions.js diff --git a/.eslintrc.js b/.eslintrc.js index 3416e36a1..da419dec4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -70,7 +70,6 @@ module.exports = { "prefer-rest-params": "error", "prefer-spread": "error", "prettier-internal-rules/jsx-identifier-case": "error", - "prettier-internal-rules/require-json-extensions": "error", "prettier-internal-rules/no-identifier-n": "error", quotes: [ "error", diff --git a/scripts/tools/eslint-plugin-prettier-internal-rules/index.js b/scripts/tools/eslint-plugin-prettier-internal-rules/index.js index 0a98121bf..114c4cfa0 100644 --- a/scripts/tools/eslint-plugin-prettier-internal-rules/index.js +++ b/scripts/tools/eslint-plugin-prettier-internal-rules/index.js @@ -16,6 +16,5 @@ module.exports = { "prefer-ast-path-each": require("./prefer-ast-path-each.js"), "prefer-indent-if-break": require("./prefer-indent-if-break.js"), "prefer-is-non-empty-array": require("./prefer-is-non-empty-array.js"), - "require-json-extensions": require("./require-json-extensions.js"), }, }; diff --git a/scripts/tools/eslint-plugin-prettier-internal-rules/require-json-extensions.js b/scripts/tools/eslint-plugin-prettier-internal-rules/require-json-extensions.js deleted file mode 100644 index 80125b6e1..000000000 --- a/scripts/tools/eslint-plugin-prettier-internal-rules/require-json-extensions.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict"; - -const path = require("path"); - -const SELECTOR = [ - "CallExpression", - '[callee.type="Identifier"]', - '[callee.name="require"]', - "[arguments.length=1]", - '[arguments.0.type="Literal"]', - ">", - "Literal.arguments", -].join(""); - -const MESSAGE_ID = "require-json-extensions"; - -const resolveModuleInDirectory = (directory, id) => { - try { - return require.resolve(id, { paths: [directory] }); - } catch { - // noop - } -}; - -module.exports = { - meta: { - type: "suggestion", - docs: { - url: "https://github.com/prettier/prettier/blob/main/scripts/tools/eslint-plugin-prettier-internal-rules/require-json-extensions.js", - }, - messages: { - [MESSAGE_ID]: 'Missing file extension ".json" for "{{id}}".', - }, - fixable: "code", - }, - create(context) { - const filename = context.getFilename(); - const directory = path.dirname(filename); - const resolve = (id) => resolveModuleInDirectory(directory, id); - - return { - [SELECTOR](node) { - const id = node.value; - - if (id.endsWith(".json") || !id.includes("/")) { - return; - } - - const file = resolve(id); - - if (!file) { - return; - } - - const extension = path.extname(file); - if (extension !== ".json") { - return; - } - - let fix; - if (resolve(`${id}.json`) === file) { - fix = (fixer) => { - const [start, end] = node.range; - return fixer.replaceTextRange([start + 1, end - 1], `${id}.json`); - }; - } - - context.report({ - node, - messageId: MESSAGE_ID, - data: { id }, - fix, - }); - }, - }; - }, -}; diff --git a/scripts/tools/eslint-plugin-prettier-internal-rules/test.js b/scripts/tools/eslint-plugin-prettier-internal-rules/test.js index 0938d2742..e9afa6c1d 100644 --- a/scripts/tools/eslint-plugin-prettier-internal-rules/test.js +++ b/scripts/tools/eslint-plugin-prettier-internal-rules/test.js @@ -417,18 +417,6 @@ test("prefer-is-non-empty-array", { ], }); -test("require-json-extensions", { - valid: ['require("./not-exists")', 'require("./index")'], - invalid: [ - { - code: 'require("./package")', - filename: __filename, - output: 'require("./package.json")', - errors: [{ message: 'Missing file extension ".json" for "./package".' }], - }, - ], -}); - test("no-empty-flat-contents-for-if-break", { valid: [ "ifBreak('foo', 'bar')",