From 0fd27ad0fa97d8c8be2eee9aa316ee1c5329749b Mon Sep 17 00:00:00 2001 From: murashit Date: Sat, 23 May 2026 07:05:52 +0900 Subject: [PATCH] Tighten lint and format coverage --- eslint.config.mjs | 29 ++++++++++++++++++++++++++--- package-lock.json | 17 +++++++++++++++++ package.json | 9 +++++---- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 97e553a1..d90f2a80 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,23 +1,33 @@ import js from "@eslint/js"; import { defineConfig } from "eslint/config"; +import eslintConfigPrettier from "eslint-config-prettier/flat"; import obsidianmd from "eslint-plugin-obsidianmd"; import tseslint from "typescript-eslint"; const typeScriptFiles = ["src/**/*.ts", "tests/**/*.ts"]; +const nodeJavaScriptFiles = ["*.mjs", "scripts/**/*.mjs"]; +const typeScriptConfigFiles = ["*.config.ts"]; +const lintedTypeScriptFiles = [...typeScriptFiles, ...typeScriptConfigFiles]; export default defineConfig([ { ignores: ["main.js", "node_modules/**", "src/generated/**"], }, js.configs.recommended, - ...tseslint.configs.strictTypeChecked, - ...tseslint.configs.stylisticTypeChecked, + ...tseslint.configs.strictTypeChecked.map((config) => ({ + ...config, + files: lintedTypeScriptFiles, + })), + ...tseslint.configs.stylisticTypeChecked.map((config) => ({ + ...config, + files: lintedTypeScriptFiles, + })), ...obsidianmd.configs.recommended.map((config) => ({ ...config, basePath: "src", })), { - files: typeScriptFiles, + files: lintedTypeScriptFiles, languageOptions: { ecmaVersion: 2022, sourceType: "module", @@ -43,6 +53,18 @@ export default defineConfig([ "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }], }, }, + { + files: nodeJavaScriptFiles, + languageOptions: { + ecmaVersion: 2022, + sourceType: "module", + globals: { + URL: "readonly", + console: "readonly", + process: "readonly", + }, + }, + }, { files: ["tests/**/*.ts"], rules: { @@ -68,4 +90,5 @@ export default defineConfig([ ], }, }, + eslintConfigPrettier, ]); diff --git a/package-lock.json b/package-lock.json index a61e6a6d..aad5b45e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@types/node": "^25.6.0", "esbuild": "^0.28.0", "eslint": "^10.3.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-obsidianmd": "^0.3.0", "jsdom": "^29.1.1", "obsidian": "~1.12.3", @@ -2818,6 +2819,22 @@ "eslint": ">=6.0.0" } }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", diff --git a/package.json b/package.json index 38c8c720..702cea9e 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,12 @@ "build": "node esbuild.config.mjs", "build:prod": "node esbuild.config.mjs --production", "dev": "node esbuild.config.mjs --watch", - "format": "prettier --write \"src/**/*.{ts,tsx,js,mjs,json,css,md}\" \"tests/**/*.{ts,tsx,js,mjs,json,css,md}\" \"scripts/**/*.{js,mjs}\" \"*.{json,mjs,md,css}\" \"!src/generated/**\"", - "format:check": "prettier --check \"src/**/*.{ts,tsx,js,mjs,json,css,md}\" \"tests/**/*.{ts,tsx,js,mjs,json,css,md}\" \"scripts/**/*.{js,mjs}\" \"*.{json,mjs,md,css}\" \"!src/generated/**\"", + "format": "prettier --write \"src/**/*.{ts,tsx,js,mjs,json,css,md}\" \"tests/**/*.{ts,tsx,js,mjs,json,css,md}\" \"scripts/**/*.{js,mjs}\" \"*.{ts,json,mjs,md,css}\" \"!src/generated/**\"", + "format:check": "prettier --check \"src/**/*.{ts,tsx,js,mjs,json,css,md}\" \"tests/**/*.{ts,tsx,js,mjs,json,css,md}\" \"scripts/**/*.{js,mjs}\" \"*.{ts,json,mjs,md,css}\" \"!src/generated/**\"", "api:baseline": "node scripts/report-api-baseline.mjs", "api:baseline:check": "node scripts/report-api-baseline.mjs --check", "generate:app-server-types": "node scripts/clean-generated-types.mjs && codex app-server generate-ts --experimental --out src/generated/app-server && node scripts/normalize-generated-types.mjs", - "lint": "eslint src tests --max-warnings=0", + "lint": "eslint src tests scripts \"*.config.ts\" \"*.config.mjs\" --max-warnings=0", "release:check": "node scripts/check-release.mjs", "release:preflight": "node scripts/preflight-release.mjs", "release:prepare": "node scripts/prepare-release.mjs", @@ -35,12 +35,13 @@ "@types/node": "^25.6.0", "esbuild": "^0.28.0", "eslint": "^10.3.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-obsidianmd": "^0.3.0", "jsdom": "^29.1.1", "obsidian": "~1.12.3", "prettier": "^3.8.3", - "typescript-eslint": "^8.59.4", "typescript": "^6.0.3", + "typescript-eslint": "^8.59.4", "vitest": "^4.1.7" } }