48 lines
1,011 B
JavaScript
48 lines
1,011 B
JavaScript
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
import globals from 'globals'
|
|
|
|
import { includeIgnoreFile } from '@eslint/compat'
|
|
|
|
import js from '@eslint/js'
|
|
import ts from 'typescript-eslint'
|
|
import astro from 'eslint-plugin-astro'
|
|
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const srcDir = path.dirname(__filename)
|
|
|
|
const gitignorePath = path.resolve(srcDir, '.gitignore')
|
|
|
|
export default [
|
|
includeIgnoreFile(gitignorePath),
|
|
|
|
{
|
|
languageOptions: {
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
globals: {
|
|
...globals.node,
|
|
...globals.browser,
|
|
},
|
|
},
|
|
|
|
rules: {
|
|
'import/prefer-default-export': 'off',
|
|
'@typescript-eslint/consistent-type-imports': 'error',
|
|
},
|
|
},
|
|
|
|
js.configs.recommended,
|
|
...ts.configs.strict,
|
|
...ts.configs.stylistic,
|
|
...astro.configs.recommended,
|
|
|
|
// Type definitions
|
|
{
|
|
files: ['**/*.d.ts'],
|
|
rules: {
|
|
'@typescript-eslint/triple-slash-reference': 'off',
|
|
},
|
|
},
|
|
]
|