arui-presets-lint
Version:
Config files for arui-apps
48 lines (47 loc) • 2.49 kB
JavaScript
import {} from 'eslint';
import checkFilePlugin from 'eslint-plugin-check-file';
import { ANOTHER_FILES_SCOPE, GLOBAL_SCRIPTS_SCOPE, JSON_SCOPE } from '../constants.js';
export const checkFileConfig = [
{
name: 'arui-presets-lint/check-file',
plugins: {
'check-file': checkFilePlugin,
},
rules: {
// Все названия папок должны быть в kebab-case
// https://github.com/dukeluo/eslint-plugin-check-file/blob/main/docs/rules/filename-naming-convention.md
'check-file/folder-naming-convention': [
'error',
{ '**/*.*': 'KEBAB_CASE' },
{ ignoreMiddleExtensions: true },
],
// Все названия файлов должны быть в kebab-case
// https://github.com/dukeluo/eslint-plugin-check-file/blob/main/docs/rules/folder-naming-convention.md
'check-file/filename-naming-convention': [
'error',
{
[GLOBAL_SCRIPTS_SCOPE]: 'KEBAB_CASE',
[ANOTHER_FILES_SCOPE]: 'KEBAB_CASE',
[JSON_SCOPE]: 'KEBAB_CASE',
},
{ ignoreMiddleExtensions: true },
],
// Список запрещенных названий файлов
// https://github.com/dukeluo/eslint-plugin-check-file/blob/main/docs/rules/filename-blocklist.md
'check-file/filename-blocklist': [
'error',
{ '**/tsconfig.eslint.json': '*tsconfig.json' },
{
errorMessage: 'Вместо tsconfig.eslint.json используйте languageOptions.parserOptions.projectService.allowDefaultProject в конфиге eslint',
},
],
},
},
{
// Включаем проверку других расширений файлов в eslint-plugin-check-file (которые процессор eslint не поддерживает).
// Для JSON и Markdown полноценный парсинг подключён через @eslint/json и @eslint/markdown, поэтому здесь они не нужны.
// Не должен пересекаться с остальными расширениями, см. constants.ts
files: [ANOTHER_FILES_SCOPE],
processor: 'check-file/eslint-processor-check-file',
},
];