46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import globals from 'globals';
|
|
import tseslint from 'typescript-eslint';
|
|
import tsParser from '@typescript-eslint/parser'; // TS parser
|
|
import js from '@eslint/js';
|
|
import { defineConfig } from 'eslint/config';
|
|
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
|
|
import importPlugin from 'eslint-plugin-import';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig([
|
|
js.configs.recommended,
|
|
tseslint.configs.recommended,
|
|
importPlugin.flatConfigs.recommended,
|
|
importPlugin.flatConfigs.errors,
|
|
importPlugin.flatConfigs.warnings,
|
|
importPlugin.flatConfigs.typescript,
|
|
eslintConfigPrettier,
|
|
{ ignores: ['node_modules', 'dist', 'public', 'lib'] },
|
|
{
|
|
files: ['**/*.{js,mjs,cjs,ts,tsx}'],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
ecmaFeatures: { jsx: true },
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
project: ['tsconfig.json', 'tsconfig.dev.json'],
|
|
tsconfigRootDir: __dirname,
|
|
},
|
|
globals: globals.node,
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/no-unused-vars': 'warn',
|
|
'@typescript-eslint/no-var-requires': 'error',
|
|
'@typescript-eslint/strict-boolean-expressions': 'off',
|
|
|
|
'import/no-unresolved': 0,
|
|
},
|
|
},
|
|
eslintConfigPrettier,
|
|
]);
|