generated from r34son/next-template
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy patheslint.config.ts
44 lines (42 loc) · 1.26 KB
/
eslint.config.ts
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
import path from 'node:path';
import js from '@eslint/js';
import { fixupConfigRules, includeIgnoreFile } from '@eslint/compat';
import { FlatCompat } from '@eslint/eslintrc';
const compat = new FlatCompat({
baseDirectory: import.meta.dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all,
});
/** @type {import("eslint").Linter.Config[]} */
// eslint-disable-next-line import/no-anonymous-default-export
export default [
includeIgnoreFile(path.resolve(import.meta.dirname, '.gitignore')),
...fixupConfigRules(
// @ts-ignore
compat.extends('next/core-web-vitals', 'plugin:storybook/recommended'),
),
{
// 'https://next-intl-docs.vercel.app/docs/workflows/linting'
name: 'next-intl navigation',
rules: {
// Consistently import navigation APIs from `@/i18n/routing`
'no-restricted-imports': [
'error',
{
name: 'next/link',
message: 'Please import from `@/i18n/routing` instead.',
},
{
name: 'next/navigation',
importNames: [
'redirect',
'permanentRedirect',
'useRouter',
'usePathname',
],
message: 'Please import from `@/i18n/routing` instead.',
},
],
},
},
];