-
Notifications
You must be signed in to change notification settings - Fork 355
Expand file tree
/
Copy path.eslintrc.cjs
More file actions
94 lines (91 loc) · 2.68 KB
/
Copy path.eslintrc.cjs
File metadata and controls
94 lines (91 loc) · 2.68 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// @ts-check
require('@bigcommerce/eslint-config/patch');
/** @type {import('eslint').Linter.LegacyConfig} */
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.',
},
{
name: '@playwright/test',
importNames: ['expect', 'test'],
message: 'Please import from `~/tests/fixtures` instead.',
},
],
},
],
'check-file/folder-naming-convention': [
'error',
{
'**': 'NEXT_JS_APP_ROUTER_CASE',
},
],
},
overrides: [
{
files: ['**/*.spec.ts', '**/*.test.ts'],
rules: {
'@typescript-eslint/no-restricted-imports': [
'error',
{
paths: [
{
name: 'next-intl/server',
importNames: ['getTranslations', 'getFormatter'],
message:
'Please import `getTranslations` from `~/tests/lib/i18n` and `getFormatter` from `~/tests/lib/formatter` instead.',
},
],
},
],
},
},
],
ignorePatterns: [
'client/generated/**/*.ts',
'playwright-report/**',
'test-results/**',
'.tests/**',
'**/google_analytics4.js',
],
};
module.exports = config;