Remove require-json-extensions rule (#11233)

This commit is contained in:
fisker Cheung authored and GitHub committed 2021-07-22 09:32:21 +08:00
1 parent 6bd8deae89
commit b001969b94
4 files changed
-91

No files matched your search

-1
View File
@@ -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",
@@ -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"),
},
};
@@ -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,
});
},
};
},
};
@@ -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')",