astro-resume/eslint.config.js

66 lines
1.7 KiB
JavaScript

// @ts-check
import js from '@eslint/js'
import css from '@eslint/css'
import globals from 'globals'
import { defineConfig, globalIgnores } from 'eslint/config'
import stylistic from '@stylistic/eslint-plugin'
import eslintPluginAstro from 'eslint-plugin-astro'
import astroParser from 'astro-eslint-parser'
import tseslint from 'typescript-eslint'
export default defineConfig([
{
files: ['**/*.css'],
plugins: {
css
},
languageOptions: {
tolerant: true
},
language: 'css/css',
rules: {
'css/no-duplicate-imports': 'error',
'css/no-empty-blocks': 'error',
'css/no-invalid-at-rules': 'error',
'css/no-invalid-properties': 'error'
}
},
{
files: ['**/*.{js,mjs,cjs}'],
plugins: {
js, '@stylistic': stylistic
},
extends: ['js/recommended'],
languageOptions: {
globals: globals.browser
},
rules: {
'@stylistic/indent': ['error', 2],
'@stylistic/quotes': ['error', 'single'],
'@stylistic/semi': ['error', 'never'],
'@stylistic/comma-dangle': ['error', 'never'] ,
'@stylistic/block-spacing': 'error',
'@stylistic/array-bracket-spacing': ['error', 'never'],
'@stylistic/object-curly-spacing': ['error', 'always'],
'@stylistic/key-spacing': ['error', {
'beforeColon': false
}],
'@stylistic/array-bracket-newline': ['error', 'consistent'],
'@stylistic/object-curly-newline': ['error', {
'consistent': true
}]
}
},
...eslintPluginAstro.configs.recommended,
{
files: ['**/*.astro'],
languageOptions: {
parser: astroParser,
parserOptions: {
parser: tseslint.parser
}
}
},
globalIgnores(['**/dist', '**/**.d.ts'])
])