twitch-clone/backend/eslint.config.mjs

114 lines
2.7 KiB
JavaScript

// @ts-check
import eslint from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import stylistic from '@stylistic/eslint-plugin'
export default tseslint.config(
{
ignores: [
'node_modules',
'dist'
],
},
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
stylistic.configs.recommended,
{
languageOptions: {
globals: {
...globals.node,
...globals.jest,
},
sourceType: 'commonjs',
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
plugins: {
'@stylistic': stylistic,
}
},
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-floating-promises': 'warn',
'@typescript-eslint/no-unsafe-argument': 'warn'
},
},
);
// import config from 'eslint-config-ksv741/ts-base'
//
// export default [
// ...config,
// {
// name: 'my-custom',
// files: [
// '**/*.js',
// '**/*.ts'
// ],
// rules: {
// 'func-style': ["error", "declaration", { "allowArrowFunctions": true }],
// 'import/order': [
// 'error', {
// pathGroups: [
// {
// pattern: '__spec__/**',
// group: 'builtin',
// position: 'before',
// },
// {
// pattern: 'apps/**',
// group: 'internal',
// position: 'after',
// },
// {
// pattern: 'pages/**',
// group: 'internal',
// position: 'after',
// },
// {
// pattern: 'widgets/**',
// group: 'internal',
// position: 'after',
// },
// {
// pattern: 'features/**',
// group: 'internal',
// position: 'after',
// },
// {
// pattern: 'entities/**',
// group: 'internal',
// position: 'after',
// },
// {
// pattern: 'shared/**',
// group: 'internal',
// position: 'after',
// },
// ],
// distinctGroup: true,
// groups: [
// 'builtin',
// 'external',
// 'internal',
// 'parent',
// 'sibling',
// 'object',
// 'index',
// 'type',
// ],
// 'newlines-between': 'always',
// alphabetize: {
// order: 'asc',
// caseInsensitive: true,
// },
// },
// ],
// }
// }
// ];