yinshaohua_obsidian-downloa.../eslint.config.mts
2026-05-01 00:19:09 +08:00

83 lines
2.3 KiB
TypeScript

import tseslint from 'typescript-eslint';
import obsidianmd from "eslint-plugin-obsidianmd";
import globals from "globals";
import { globalIgnores } from "eslint/config";
export default tseslint.config(
globalIgnores([
"node_modules",
"dist",
"main.js",
"package-lock.json",
"versions.json",
"tmp-*.cjs",
"tests/**",
"vitest.config.ts",
"esbuild.config.mjs",
"version-bump.mjs",
]),
{
files: ["src/**/*.ts"],
plugins: {
'@typescript-eslint': tseslint.plugin,
obsidianmd,
},
languageOptions: {
parser: tseslint.parser,
globals: {
...globals.browser,
...globals.node,
},
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
extraFileExtensions: ['.json'],
},
},
rules: {
"no-console": ["error", { allow: ["warn", "error", "debug"] }],
"obsidianmd/validate-manifest": "error",
"obsidianmd/no-sample-code": "error",
"obsidianmd/sample-names": "error",
"obsidianmd/commands/no-command-in-command-id": "error",
"obsidianmd/commands/no-command-in-command-name": "error",
"obsidianmd/commands/no-default-hotkeys": "error",
"obsidianmd/no-plugin-as-component": "error",
"obsidianmd/no-view-references-in-plugin": "error",
"obsidianmd/detach-leaves": "error",
"obsidianmd/platform": "error",
"obsidianmd/regex-lookbehind": "error",
"obsidianmd/hardcoded-config-path": "error",
"obsidianmd/no-forbidden-elements": "error",
"obsidianmd/no-tfile-tfolder-cast": "error",
"obsidianmd/vault/iterate": "error",
"obsidianmd/object-assign": "off",
"obsidianmd/prefer-file-manager-trash-file": "error",
"obsidianmd/no-static-styles-assignment": "error",
"obsidianmd/settings-tab/no-manual-html-headings": "error",
"obsidianmd/ui/sentence-case": "error",
"obsidianmd/commands/no-plugin-id-in-command-id": "error",
"obsidianmd/commands/no-plugin-name-in-command-name": "error",
},
},
{
files: ["scripts/**/*.mjs", "eslint.config.mts"],
languageOptions: {
globals: {
...globals.node,
},
parserOptions: {
projectService: {
allowDefaultProject: [
'eslint.config.mts',
'scripts/verify-release.mjs',
],
},
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
"no-useless-escape": "error",
},
},
);