mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* Remove everything * Re-add most ESLint plugins and run --fix * Additional fixes * Fix or disable linter warnings caused by require imports * Fix how prop types for SearchResults are defined * More additional fixes * Update deprecated stylistic rule names * Remove deprecated .eslintignore * Update eslint-plugin-react-hooks * Enable react-hooks/error-boundaries * Fix react-hooks/static-components wherever possible * Fix react-hooks/use-memo wherever possible * Disable warnings for new rules and update comment * Update eslint-plugin-no-only-tests * Update eslint dependencies in E2E test packages * Remove now-uneeded patch * Address Coderabbit feedback * Actually fix inverted tooltip logic
89 lines
2.9 KiB
JavaScript
89 lines
2.9 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {defineConfig, globalIgnores} from 'eslint/config';
|
|
import formatjsPlugin from 'eslint-plugin-formatjs';
|
|
import noOnlyTestsPlugin from 'eslint-plugin-no-only-tests';
|
|
|
|
import eslintPlugin from '@mattermost/eslint-plugin';
|
|
|
|
export default defineConfig([
|
|
...eslintPlugin.configs.react,
|
|
globalIgnores(['./dist']),
|
|
{
|
|
plugins: {
|
|
formatjs: formatjsPlugin,
|
|
},
|
|
rules: {
|
|
'react/prop-types': [
|
|
2,
|
|
{
|
|
ignore: [
|
|
'location',
|
|
'history',
|
|
'component',
|
|
],
|
|
},
|
|
],
|
|
'react/no-unknown-property': [
|
|
2,
|
|
{
|
|
ignore: [
|
|
'mask-type',
|
|
],
|
|
},
|
|
],
|
|
'react/style-prop-object': [2, {
|
|
allow: ['Timestamp'],
|
|
}],
|
|
'formatjs/enforce-default-message': 2,
|
|
'formatjs/enforce-id': 2,
|
|
'formatjs/enforce-placeholders': 2,
|
|
'formatjs/no-invalid-icu': 2,
|
|
'formatjs/no-multiple-plurals': 1,
|
|
'formatjs/no-multiple-whitespaces': 2,
|
|
'formatjs/no-literal-string-in-jsx': 1,
|
|
'formatjs/prefer-formatted-message': 1,
|
|
'formatjs/no-useless-message': 1,
|
|
'formatjs/prefer-pound-in-plural': 0,
|
|
'react/jsx-fragments': ['error', 'syntax'],
|
|
},
|
|
},
|
|
{
|
|
files: ['**/*.test.js', '**/*.test.jsx', '**/*.test.ts', '**/*.test.tsx'],
|
|
plugins: {
|
|
'no-only-tests': noOnlyTestsPlugin,
|
|
},
|
|
rules: {
|
|
'no-only-tests/no-only-tests': ['error', {focus: ['only', 'skip']}],
|
|
},
|
|
},
|
|
{
|
|
ignores: ['src/packages/mattermost-redux/**'],
|
|
rules: {
|
|
'@typescript-eslint/no-restricted-imports': [
|
|
'error',
|
|
{
|
|
paths: [{
|
|
name: 'mattermost-redux/types/actions',
|
|
importNames: ['DispatchFunc', 'GetStateFunc', 'ActionFunc', 'ActionFuncAsync', 'ThunkActionFunc'],
|
|
message: 'Use the web app version of it from types/store',
|
|
}],
|
|
patterns: [{
|
|
group: ['@mattermost/client/src/*', '@mattermost/components/src/*', '@mattermost/types/src/*'],
|
|
message: "Don't include the src folder when importing from packages in webapp/platform",
|
|
}],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
settings: {
|
|
'import/resolver': 'webpack',
|
|
formatjs: {
|
|
additionalFunctionNames: ['localizeMessage', 'defineMessage'],
|
|
},
|
|
},
|
|
},
|
|
]);
|