Files
bobu/functions/eslint.config.mjs
2025-06-03 21:13:56 +09:00

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,
]);