mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-09-14 13:36:36 +00:00
chore: update lint rules (WIP)
This commit is contained in:
@@ -17,13 +17,16 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
|
||||||
const DEFAULT_OLD = ["routes/(old)/**", "lib/old/**"];
|
// FIXME: change paths to new ones
|
||||||
|
// TODO: test case for this lint rules
|
||||||
|
|
||||||
|
const DEFAULT_OLD = ["routes/v1/**", "lib/v1/**"];
|
||||||
|
|
||||||
const DEFAULT_NEW = [
|
const DEFAULT_NEW = [
|
||||||
"routes/preview/**",
|
"routes/**",
|
||||||
"lib/components/kit/**",
|
"lib/components/kit/**",
|
||||||
"lib/preview/**",
|
"lib/**",
|
||||||
"lib/registry-new/**",
|
"lib/registry/**",
|
||||||
"lib/registry-schema.ts",
|
"lib/registry-schema.ts",
|
||||||
"lib/registry-schema.test.ts",
|
"lib/registry-schema.test.ts",
|
||||||
];
|
];
|
||||||
|
|||||||
+34
-10
@@ -1,16 +1,18 @@
|
|||||||
import js from "@eslint/js";
|
import js from "@eslint/js";
|
||||||
import prettier from "eslint-config-prettier";
|
import prettier from "eslint-config-prettier";
|
||||||
import svelte from "eslint-plugin-svelte";
|
import svelte from "eslint-plugin-svelte";
|
||||||
import designTokens from "./eslint-plugins/index.js";
|
|
||||||
import isolationPlugin from "./eslint-plugins/isolation/index.js";
|
|
||||||
import globals from "globals";
|
import globals from "globals";
|
||||||
import svelteParser from "svelte-eslint-parser";
|
import svelteParser from "svelte-eslint-parser";
|
||||||
import tseslint from "typescript-eslint";
|
import tseslint from "typescript-eslint";
|
||||||
|
import designTokens from "./eslint-plugins/index.js";
|
||||||
|
import isolationPlugin from "./eslint-plugins/isolation/index.js";
|
||||||
|
|
||||||
|
// FIXME: надо игнорировать старые файлы, после переноса пути новых компонентов включают старые
|
||||||
// Новый код редизайна: к нему применяем полные recommended-наборы уже сейчас.
|
// Новый код редизайна: к нему применяем полные recommended-наборы уже сейчас.
|
||||||
// Когда старый дизайн удалим (C19), этот scoped-блок убирается и recommended
|
// Когда старый дизайн удалим (C19), этот scoped-блок убирается и recommended
|
||||||
// включается на весь код (см. план-redesign §10, шаг 6).
|
// включается на весь код (см. план-redesign §10, шаг 6).
|
||||||
const newCode = ["**/src/lib/components/kit/**", "**/src/routes/preview/**"];
|
const newCode = ["**/src/lib/components/**", "**/src/routes/**"];
|
||||||
|
const oldCode = ["**/src/lib/v1/**", "**/src/routes/v1/**"];
|
||||||
|
|
||||||
// Полные recommended-наборы — только на новый код (см. ниже, блок перед prettier).
|
// Полные recommended-наборы — только на новый код (см. ниже, блок перед prettier).
|
||||||
const jsRecommended = Array.isArray(js.configs.recommended)
|
const jsRecommended = Array.isArray(js.configs.recommended)
|
||||||
@@ -21,10 +23,19 @@ const svelteRecommended = Array.isArray(svelte.configs["flat/recommended"])
|
|||||||
: [svelte.configs["flat/recommended"]];
|
: [svelte.configs["flat/recommended"]];
|
||||||
// Svelte-рекомендации применяем только к .svelte-файлам нового кода, иначе
|
// Svelte-рекомендации применяем только к .svelte-файлам нового кода, иначе
|
||||||
// svelte-eslint-parser "съедает" обычные .ts в тех же папках (напр. +page.ts).
|
// svelte-eslint-parser "съедает" обычные .ts в тех же папках (напр. +page.ts).
|
||||||
const svelteFiles = [
|
const newSvelteFiles = [
|
||||||
"**/src/lib/components/kit/**/*.svelte",
|
"**/src/lib/components/**/*.svelte",
|
||||||
"**/src/routes/preview/**/*.svelte",
|
"**/src/routes/**/*.svelte",
|
||||||
];
|
];
|
||||||
|
const oldSvelteFiles = [
|
||||||
|
"**/src/lib/v1/**/*.svelte",
|
||||||
|
"**/src/routes/v1/**/*.svelte",
|
||||||
|
];
|
||||||
|
|
||||||
|
// FIXME:
|
||||||
|
// The signature '(...configs: InfiniteDepthConfigWithExtends[]): ConfigArray' of 'tseslint.config' is deprecated.ts
|
||||||
|
// Migrate to defineConfig(...)
|
||||||
|
// The core defineConfig(...) helper is a nearly exact clone of tseslint.config(...)
|
||||||
|
|
||||||
export default tseslint.config(
|
export default tseslint.config(
|
||||||
{
|
{
|
||||||
@@ -100,7 +111,8 @@ export default tseslint.config(
|
|||||||
// Применяется к новому коду редизайна (см. newCode выше). Когда старый дизайн
|
// Применяется к новому коду редизайна (см. newCode выше). Когда старый дизайн
|
||||||
// удалят, расширить glob на весь код, исключив (old)/.
|
// удалят, расширить glob на весь код, исключив (old)/.
|
||||||
{
|
{
|
||||||
files: svelteFiles,
|
files: newSvelteFiles,
|
||||||
|
ignores: oldSvelteFiles,
|
||||||
plugins: {
|
plugins: {
|
||||||
"design-tokens": designTokens,
|
"design-tokens": designTokens,
|
||||||
},
|
},
|
||||||
@@ -113,9 +125,21 @@ export default tseslint.config(
|
|||||||
},
|
},
|
||||||
// Полные recommended-наборы — только на новый код.
|
// Полные recommended-наборы — только на новый код.
|
||||||
...[
|
...[
|
||||||
...jsRecommended.map((cfg) => ({ ...cfg, files: newCode })),
|
...jsRecommended.map((cfg) => ({
|
||||||
...tseslint.configs.recommended.map((cfg) => ({ ...cfg, files: newCode })),
|
...cfg,
|
||||||
...svelteRecommended.map((cfg) => ({ ...cfg, files: svelteFiles })),
|
files: newCode,
|
||||||
|
ignores: oldCode,
|
||||||
|
})),
|
||||||
|
...tseslint.configs.recommended.map((cfg) => ({
|
||||||
|
...cfg,
|
||||||
|
files: newCode,
|
||||||
|
ignores: oldCode,
|
||||||
|
})),
|
||||||
|
...svelteRecommended.map((cfg) => ({
|
||||||
|
...cfg,
|
||||||
|
files: newSvelteFiles,
|
||||||
|
ignores: oldSvelteFiles,
|
||||||
|
})),
|
||||||
],
|
],
|
||||||
|
|
||||||
// В Svelte 5 пропсы деструктурируются через `let` (конвенция документации и
|
// В Svelte 5 пропсы деструктурируются через `let` (конвенция документации и
|
||||||
|
|||||||
Reference in New Issue
Block a user