mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2026-03-01 12:44:28 +00:00
74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import config, { css, vue3, vitest } from 'eslint-config-it4c'
|
|
import jsdocPlugin from 'eslint-plugin-jsdoc'
|
|
import playwrightPlugin from 'eslint-plugin-playwright'
|
|
import storybookPlugin from 'eslint-plugin-storybook'
|
|
import vuejsAccessibilityPlugin from 'eslint-plugin-vuejs-accessibility'
|
|
import { tailwind4 } from 'tailwind-csstree'
|
|
|
|
export default [
|
|
{
|
|
ignores: [
|
|
'dist/',
|
|
'coverage/',
|
|
'storybook-static/',
|
|
'**/node_modules/',
|
|
'examples/',
|
|
'test-results/',
|
|
'playwright-report/',
|
|
],
|
|
},
|
|
...config,
|
|
...vue3,
|
|
...vitest,
|
|
{
|
|
// Playwright visual tests
|
|
files: ['**/*.visual.spec.ts'],
|
|
...playwrightPlugin.configs['flat/recommended'],
|
|
},
|
|
// Storybook files
|
|
// eslint-disable-next-line import-x/no-named-as-default-member -- flat config access pattern
|
|
...storybookPlugin.configs['flat/recommended'],
|
|
{
|
|
// Vue components - accessibility and JSDoc
|
|
files: ['src/components/**/*.vue'],
|
|
plugins: {
|
|
jsdoc: jsdocPlugin,
|
|
'vuejs-accessibility': vuejsAccessibilityPlugin,
|
|
},
|
|
rules: {
|
|
// Require JSDoc comments on Props interface properties
|
|
'jsdoc/require-jsdoc': [
|
|
'error',
|
|
{
|
|
contexts: ['TSPropertySignature'],
|
|
require: {
|
|
ClassDeclaration: false,
|
|
ClassExpression: false,
|
|
ArrowFunctionExpression: false,
|
|
FunctionDeclaration: false,
|
|
FunctionExpression: false,
|
|
MethodDefinition: false,
|
|
},
|
|
},
|
|
],
|
|
// Accessibility rules
|
|
...vuejsAccessibilityPlugin.configs.recommended.rules,
|
|
},
|
|
},
|
|
{
|
|
// Allow .svg?icon imports (custom Vite plugin)
|
|
files: ['src/**/icons/index.ts'],
|
|
rules: {
|
|
'n/file-extension-in-import': 'off',
|
|
},
|
|
},
|
|
...css,
|
|
{
|
|
// Extend CSS config with Tailwind v4 syntax support
|
|
files: ['**/*.css'],
|
|
languageOptions: {
|
|
customSyntax: tailwind4,
|
|
},
|
|
},
|
|
]
|