mirror of
https://github.com/haperone/local-image-compress.git
synced 2026-07-22 06:44:26 +00:00
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
// Blocking mirror of the current Obsidian community-plugin submission scanner.
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import json from "@eslint/json";
|
|
import tsParser from "@typescript-eslint/parser";
|
|
import tseslint from "typescript-eslint";
|
|
import obsidianmd from "eslint-plugin-obsidianmd";
|
|
|
|
const isDevLayout = path.basename(import.meta.dirname) === "source-recovery"
|
|
&& fs.existsSync(path.join(import.meta.dirname, "src-ts"))
|
|
&& fs.existsSync(path.join(import.meta.dirname, "..", "manifest.json"));
|
|
const sourcePrefix = isDevLayout ? "source-recovery/" : "";
|
|
const sourceFiles = [`${sourcePrefix}src-ts/**/*.ts`];
|
|
const disabledObsidianJsonRules = Object.fromEntries(
|
|
Object.keys(obsidianmd.rules).map((ruleName) => [`obsidianmd/${ruleName}`, "off"])
|
|
);
|
|
|
|
export default [
|
|
{
|
|
ignores: [
|
|
`${sourcePrefix}node_modules/**`,
|
|
`${sourcePrefix}dist/**`,
|
|
`${sourcePrefix}dist-ts/**`,
|
|
`${sourcePrefix}qa-backups/**`,
|
|
`${sourcePrefix}qa-screenshots/**`,
|
|
"**/.claude/**",
|
|
"**/.supergoal/**",
|
|
"*.mjs"
|
|
]
|
|
},
|
|
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
|
...config,
|
|
files: sourceFiles
|
|
})),
|
|
...obsidianmd.configs.recommendedWithLocalesEn,
|
|
{
|
|
files: sourceFiles,
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
project: "./tsconfig.json",
|
|
tsconfigRootDir: import.meta.dirname,
|
|
sourceType: "module"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
files: [`${sourcePrefix}src-ts/locales/en.json`],
|
|
plugins: { json },
|
|
language: "json/json",
|
|
rules: {
|
|
...disabledObsidianJsonRules,
|
|
"no-irregular-whitespace": "off",
|
|
"obsidianmd/ui/sentence-case-json": "error"
|
|
}
|
|
}
|
|
];
|