Files
TeyvatGuide/eslint/jsonEslint.js
BTMuli 765320168d ⬆️ 更新依赖
2026-02-22 16:20:35 +08:00

77 lines
1.7 KiB
JavaScript

/**
* JSON 文件的 ESLint 配置
* @since Beta v0.9.6
*/
import pluginJsonc from "eslint-plugin-jsonc";
import * as parserJsonc from "jsonc-eslint-parser";
const pkgJsonConfig = {
files: ["package.json"],
plugins: { jsonc: pluginJsonc },
languageOptions: { parser: parserJsonc },
rules: {
"jsonc/comma-dangle": ["error", "never"],
"jsonc/sort-keys": [
"error",
{
pathPattern: "^$",
order: [
"name",
"version",
"description",
"type",
"scripts",
"lint-staged",
"keywords",
"author",
"license",
"repository",
"homepage",
"bugs",
"dependencies",
"devDependencies",
],
},
],
},
};
const tscJsonConfig = {
files: ["tsconfig.json"],
plugins: { jsonc: pluginJsonc },
languageOptions: { parser: parserJsonc },
rules: {
"jsonc/comma-dangle": ["error", "never"],
"jsonc/sort-keys": [
"error",
{
pathPattern: "^$",
order: [
"compilerOptions",
"include",
"exclude",
"extends",
"files",
"references",
"typeAcquisition",
],
},
],
},
};
const jsoncConfig = {
files: ["source/data/out/**/*.json", ".vscode/**/*.json", "./tsdoc.json"],
plugins: { jsonc: pluginJsonc },
languageOptions: { parser: parserJsonc },
rules: {
"jsonc/comma-dangle": ["error", "never"],
"jsonc/sort-keys": ["error", { pathPattern: "^$", order: { type: "asc" } }],
},
};
const eslintConfigJson = [pkgJsonConfig, tscJsonConfig, jsoncConfig];
export default eslintConfigJson;