forked from bigcommerce/catalyst
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.eslintrc.cjs
69 lines (66 loc) · 2.01 KB
/
.eslintrc.cjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// @ts-check
// eslint-disable-next-line import/no-extraneous-dependencies
require('@bigcommerce/eslint-config/patch');
/** @type {import('eslint').Linter.Config} */
const config = {
root: true,
extends: [
'@bigcommerce/catalyst/base',
'@bigcommerce/catalyst/react',
'@bigcommerce/catalyst/next',
'@bigcommerce/catalyst/prettier',
],
rules: {
'@typescript-eslint/naming-convention': 'off',
'@next/next/no-html-link-for-pages': 'off',
'import/dynamic-import-chunkname': 'off',
'no-underscore-dangle': ['error', { allow: ['__typename'] }],
'@typescript-eslint/prefer-nullish-coalescing': 'off',
'@typescript-eslint/no-unsafe-enum-comparison': 'off',
'@typescript-eslint/no-restricted-imports': [
'error',
{
paths: [
{
name: 'next/link',
message: "Please import 'Link' from '~/components/Link' instead.",
},
{
name: 'next/image',
importNames: ['default'],
message:
"Please import 'Image' from '~/components/image' instead. This component handles CDN and static image optimization.",
},
{
name: '~/i18n/routing',
importNames: ['Link'],
message: "Please import 'Link' from '~/components/Link' instead.",
},
{
name: 'next/router',
importNames: ['useRouter'],
message: 'Please import from `~/i18n/routing` instead.',
},
{
name: 'next/navigation',
importNames: ['redirect', 'permanentRedirect', 'useRouter', 'usePathname'],
message: 'Please import from `~/i18n/routing` instead.',
},
],
},
],
'check-file/folder-naming-convention': [
'error',
{
'**': 'NEXT_JS_APP_ROUTER_CASE',
},
],
},
ignorePatterns: [
'client/generated/**/*.ts',
'playwright-report/**',
'test-results/**',
'**/google_analytics4.js',
],
};
module.exports = config;