UNPKG

@sveltek/eslint-config

Version:
130 lines (123 loc) 2.79 kB
import globals from 'globals'; import jsPlugin from '@eslint/js'; import tsParser from '@typescript-eslint/parser'; import tsPlugin from '@typescript-eslint/eslint-plugin'; import sveltePlugin from 'eslint-plugin-svelte'; import svelteParser from 'svelte-eslint-parser'; export { defineConfig, globalIgnores } from 'eslint/config'; const jsConfig = { files: ['**/*.{js,mjs,cjs}'], languageOptions: { ecmaVersion: 'latest', sourceType: 'module', globals: { ...globals.es2021, ...globals.browser, ...globals.nodeBuiltin, }, }, rules: { ...jsPlugin.configs.recommended.rules, 'no-unused-vars': ['error', { ignoreRestSiblings: true }], 'no-empty': ['error', { allowEmptyCatch: true }], }, }; const tsConfig = { files: ['**/*.{ts,mts,cts}'], languageOptions: { ecmaVersion: 'latest', sourceType: 'module', parser: tsParser, globals: { ...globals.es2021, ...globals.browser, ...globals.nodeBuiltin, }, }, plugins: { '@typescript-eslint': tsPlugin, }, rules: { ...jsPlugin.configs.recommended.rules, ...tsPlugin.configs.recommended.rules, 'no-undef': 'off', 'no-empty': ['error', { allowEmptyCatch: true }], '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { ignoreRestSiblings: true }, ], }, }; const svelteConfig = { files: ['**/*.svelte'], languageOptions: { sourceType: 'module', ecmaVersion: 'latest', parser: svelteParser, parserOptions: { parser: tsParser, }, globals: { ...globals.es2021, ...globals.browser, ...globals.nodeBuiltin, }, }, plugins: { svelte: sveltePlugin, '@typescript-eslint': tsPlugin, }, rules: { ...jsPlugin.configs.recommended.rules, ...tsPlugin.configs.recommended.rules, ...sveltePlugin.configs.recommended.at(-1).rules, 'no-undef': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { ignoreRestSiblings: true }, ], }, }; const ignores = [ // Dirs '**/.git/', '**/.private/', '**/.build/', '**/.coverage/', '**/.history/', '**/.output/', '**/.cache/', '**/.temp/', '**/.tmp/', '**/.out/', '**/.svelte-kit/', '**/.vercel/', '**/.netlify/', '**/.next/', '**/.nuxt/', '**/node_modules/', '**/dist/', '**/build/', '**/coverage/', '**/functions/', '**/public/', '**/output/', '**/cache/', '**/temp/', '**/tmp/', '**/out/', // Files '**/.DS_Store', '**/.env*', '**/*-lock.*', '**/*.lock', '**/*.log*', '**/*.min.*', '**/*.d.ts', ]; const ignoresConfig = { ignores, }; export { ignores, ignoresConfig, jsConfig, svelteConfig, tsConfig };