mirror of
https://github.com/hyperdxio/hyperdx
synced 2026-04-21 13:37:15 +00:00
fixes: HDX-2956 Co-authored-by: Brandon Pereira <7552738+brandon-pereira@users.noreply.github.com>
114 lines
3.1 KiB
JavaScript
114 lines
3.1 KiB
JavaScript
import js from '@eslint/js';
|
|
import tseslint from 'typescript-eslint';
|
|
import storybook from 'eslint-plugin-storybook';
|
|
import nextPlugin from '@next/eslint-plugin-next';
|
|
import reactPlugin from 'eslint-plugin-react';
|
|
import reactHooksPlugin from 'eslint-plugin-react-hooks';
|
|
import prettierConfig from 'eslint-config-prettier';
|
|
import simpleImportSort from 'eslint-plugin-simple-import-sort';
|
|
|
|
export default [
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
prettierConfig,
|
|
{
|
|
ignores: [
|
|
'playwright-report/**',
|
|
'.next/**',
|
|
'node_modules/**',
|
|
'out/**',
|
|
'build/**',
|
|
'coverage/**',
|
|
'dist/**',
|
|
'**/*.config.js',
|
|
'**/*.config.ts',
|
|
'**/*.config.cjs',
|
|
'**/*.config.mjs',
|
|
'eslint.config.mjs',
|
|
'public/__ENV.js',
|
|
],
|
|
},
|
|
{
|
|
files: ['**/*.{js,jsx,ts,tsx}'],
|
|
plugins: {
|
|
'@next/next': nextPlugin,
|
|
react: reactPlugin,
|
|
'react-hooks': reactHooksPlugin,
|
|
'simple-import-sort': simpleImportSort,
|
|
},
|
|
rules: {
|
|
...nextPlugin.configs.recommended.rules,
|
|
...nextPlugin.configs['core-web-vitals'].rules,
|
|
'@typescript-eslint/ban-ts-comment': 'warn',
|
|
'@typescript-eslint/no-empty-function': 'warn',
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
'@typescript-eslint/no-unsafe-function-type': 'warn',
|
|
'@typescript-eslint/no-unused-expressions': 'warn',
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'warn',
|
|
{
|
|
argsIgnorePattern: '^_',
|
|
varsIgnorePattern: '^_',
|
|
},
|
|
],
|
|
'react/display-name': 'off',
|
|
'simple-import-sort/exports': 'error',
|
|
'simple-import-sort/imports': [
|
|
'error',
|
|
{
|
|
groups: [
|
|
['^react$', '^next', '^[a-z]', '^@'],
|
|
['^@/'],
|
|
['^\\.\\.(?!/?$)', '^\\.\\./?$'],
|
|
['^\\./(?=.*/)(?!/?$)', '^\\.(?!/?$)', '^\\./?$'],
|
|
['^.+\\.s?css$'],
|
|
['^\\u0000'],
|
|
],
|
|
},
|
|
],
|
|
'react-hooks/exhaustive-deps': 'error',
|
|
'no-console': ['error', { allow: ['warn', 'error'] }],
|
|
},
|
|
languageOptions: {
|
|
parser: tseslint.parser,
|
|
parserOptions: {
|
|
ecmaVersion: 'latest',
|
|
sourceType: 'module',
|
|
ecmaFeatures: {
|
|
jsx: true,
|
|
},
|
|
},
|
|
globals: {
|
|
React: 'readonly',
|
|
JSX: 'readonly',
|
|
NodeJS: 'readonly',
|
|
window: 'readonly',
|
|
document: 'readonly',
|
|
navigator: 'readonly',
|
|
console: 'readonly',
|
|
setTimeout: 'readonly',
|
|
clearTimeout: 'readonly',
|
|
setInterval: 'readonly',
|
|
clearInterval: 'readonly',
|
|
fetch: 'readonly',
|
|
process: 'readonly',
|
|
module: 'readonly',
|
|
require: 'readonly',
|
|
__dirname: 'readonly',
|
|
__filename: 'readonly',
|
|
exports: 'readonly',
|
|
Buffer: 'readonly',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
files: ['tests/e2e/**/*.{ts,js}'],
|
|
rules: {
|
|
'no-console': 'off',
|
|
'no-empty': 'off',
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
'@next/next/no-html-link-for-pages': 'off',
|
|
},
|
|
},
|
|
...storybook.configs['flat/recommended'],
|
|
];
|