58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
|
import globals from 'globals'
|
||
|
import pluginJs from '@eslint/js'
|
||
|
import tseslint from 'typescript-eslint'
|
||
|
|
||
|
import type { Linter } from 'eslint'
|
||
|
|
||
|
export default [
|
||
|
{
|
||
|
ignores: ['**/.*/*', '**/dist/*', '**/node_modules/*', '*.config.*'],
|
||
|
},
|
||
|
pluginJs.configs.recommended,
|
||
|
...(tseslint.configs.recommended as Linter.Config[]),
|
||
|
{
|
||
|
name: 'global',
|
||
|
rules: {
|
||
|
'@typescript-eslint/no-explicit-any': 'off',
|
||
|
'@typescript-eslint/no-unused-vars': [
|
||
|
'warn',
|
||
|
{
|
||
|
argsIgnorePattern: '^_',
|
||
|
varsIgnorePattern: '^_',
|
||
|
caughtErrorsIgnorePattern: '^_',
|
||
|
},
|
||
|
],
|
||
|
'@typescript-eslint/ban-ts-comment': 'off',
|
||
|
'@typescript-eslint/ban-types': 'off',
|
||
|
'consistent-return': 'off',
|
||
|
'no-empty': 'off',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: 'browser/rpc',
|
||
|
files: ['browser/src/*.{ts,js}', 'rpc/src/*.{ts,js}'],
|
||
|
languageOptions: {
|
||
|
globals: { ...globals.browser, ...globals.node, ...globals.es2022 },
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: 'cli',
|
||
|
files: ['cli/src/*.{ts,js}'],
|
||
|
languageOptions: {
|
||
|
globals: { ...globals.node, ...globals.es2024 },
|
||
|
ecmaVersion: 2024,
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: 'client/server/shared',
|
||
|
files: [
|
||
|
'client/**/*.{ts,js}',
|
||
|
'server/**/*.{ts,js}',
|
||
|
'shared/**/*.{ts,js}',
|
||
|
],
|
||
|
languageOptions: {
|
||
|
globals: { ...globals.node, ...globals.es2022 },
|
||
|
},
|
||
|
},
|
||
|
] satisfies Linter.Config[]
|