mirror of
https://github.com/fancive/obsidian-parallel-reader.git
synced 2026-07-22 06:53:43 +00:00
Add eslint v9 + @typescript-eslint/parser + eslint-plugin-obsidianmd as
a dedicated `npm run lint:obsidian` track, separate from the existing
biome lint. Apply autofixes from the recommended config and resolve the
follow-on type/test issues.
- prefer-create-el: createEl('div'/'span') -> createDiv/createSpan
- prefer-active-window-timers: setTimeout/clearTimeout -> activeWindow.*
+ retype timer holders from ReturnType<typeof setTimeout> to number
- prefer-active-doc: drop globalThis.fetch in streaming
- no-useless-catch: drop no-op rethrow wrapper
- no-restricted-globals: streaming.ts is exempted because requestUrl
does not support streaming responses
- @typescript-eslint/no-unsafe-*: disabled (out of scope for an Obsidian
plugin lint pass; tsc + biome already cover type safety)
- tests: polyfill globalThis.activeWindow so unit tests still run in Node
Change-Id: I43cc652e29a66d490e2834e940843c39b211b80b
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
import tsparser from "@typescript-eslint/parser";
|
|
import { defineConfig } from "eslint/config";
|
|
import obsidianmd from "eslint-plugin-obsidianmd";
|
|
|
|
export default defineConfig([
|
|
...obsidianmd.configs.recommended,
|
|
{
|
|
files: ["main.ts", "src/**/*.ts"],
|
|
languageOptions: {
|
|
parser: tsparser,
|
|
parserOptions: { project: "./tsconfig.json" },
|
|
},
|
|
rules: {
|
|
// Out-of-scope for an Obsidian plugin lint pass: TS-strict noise
|
|
// from JSON.parse / dynamic i18n keys. Biome + tsc cover type safety.
|
|
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
"@typescript-eslint/no-unsafe-member-access": "off",
|
|
"@typescript-eslint/no-unsafe-argument": "off",
|
|
"@typescript-eslint/no-unsafe-call": "off",
|
|
"@typescript-eslint/no-unsafe-return": "off",
|
|
},
|
|
},
|
|
{
|
|
// streaming.ts legitimately uses bare `fetch` because Obsidian's `requestUrl`
|
|
// does not support streaming responses (it's a one-shot wrapper).
|
|
files: ["src/streaming.ts"],
|
|
rules: {
|
|
"no-restricted-globals": "off",
|
|
},
|
|
},
|
|
{
|
|
ignores: [
|
|
"node_modules/",
|
|
"main.js",
|
|
"main.js.map",
|
|
"tests/",
|
|
"scripts/",
|
|
".e2e/",
|
|
".orchestration/",
|
|
".agent/",
|
|
".codex-tmp/",
|
|
],
|
|
},
|
|
]);
|