@hyeon/linter 10.0.1-dev.1.29 → 11.0.1-dev.2.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -13
- package/package.json +31 -35
- package/src/oxlint.d.ts +8 -0
- package/src/oxlint.mjs +38 -0
- package/templates/oxfmt.base.jsonc +23 -0
- package/src/base.mjs +0 -3
- package/src/hansanghyeon.mjs +0 -50
- package/src/index.mjs +0 -29
- package/src/prettier.mjs +0 -68
- package/src/react.mjs +0 -17
- package/src/typescript.mjs +0 -50
package/README.md
CHANGED
|
@@ -1,25 +1,80 @@
|
|
|
1
|
-
|
|
1
|
+
# @hyeon/linter
|
|
2
2
|
|
|
3
3
|
```bash
|
|
4
|
-
npm install --save-dev @hyeon/linter
|
|
4
|
+
npm install --save-dev @hyeon/linter oxlint
|
|
5
5
|
```
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> AI 사용자용: 설치/셋업 가이드는 [`install.md`](./install.md), 사용 예시는 [`USAGE_EXAMPLES.md`](./USAGE_EXAMPLES.md)를 먼저 확인하세요.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
import hyeonLinter from '@hyeon/linter'
|
|
9
|
+
## 지원 정책
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
- TypeScript 5.9+ 전용
|
|
12
|
+
- OXC 기반 (oxlint + oxfmt)
|
|
13
|
+
- ESLint/Prettier 레거시 경로는 v11에서 완전 제거됨
|
|
14
|
+
|
|
15
|
+
## 사용 가이드
|
|
16
|
+
|
|
17
|
+
### 린트 설정 (`oxlint.config.ts`)
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { defineConfig } from "oxlint";
|
|
21
|
+
import { hansanghyeon, recommended, react, typescript } from "@hyeon/linter";
|
|
22
|
+
|
|
23
|
+
export default defineConfig({
|
|
24
|
+
extends: [recommended, typescript, react, hansanghyeon],
|
|
25
|
+
options: {
|
|
26
|
+
typeAware: true,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 개별 모듈 조합
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { defineConfig } from "oxlint";
|
|
35
|
+
import { recommended, typescript } from "@hyeon/linter";
|
|
36
|
+
|
|
37
|
+
export default defineConfig({
|
|
38
|
+
extends: [recommended, typescript],
|
|
39
|
+
});
|
|
17
40
|
```
|
|
18
41
|
|
|
19
|
-
##
|
|
42
|
+
## 포맷터 템플릿 가이드
|
|
20
43
|
|
|
21
|
-
|
|
44
|
+
- `@hyeon/linter/oxfmt-template`는 코드로 import할 수 있는 모듈이 아니라
|
|
45
|
+
프로젝트로 복사해 두어야 하는 **정적 템플릿 파일**입니다.
|
|
22
46
|
|
|
23
47
|
```bash
|
|
24
|
-
|
|
48
|
+
# 최초 복사
|
|
49
|
+
cp ./node_modules/@hyeon/linter/templates/oxfmt.base.jsonc ./.oxfmtrc.jsonc
|
|
50
|
+
|
|
51
|
+
# 포맷 검사
|
|
52
|
+
npx --no-install oxfmt --config ./.oxfmtrc.jsonc --check ./src
|
|
53
|
+
|
|
54
|
+
# 포맷 적용
|
|
55
|
+
npx --no-install oxfmt --config ./.oxfmtrc.jsonc --write ./src
|
|
25
56
|
```
|
|
57
|
+
|
|
58
|
+
## v10 → v11 마이그레이션
|
|
59
|
+
|
|
60
|
+
v11은 **Breaking Change**입니다. ESLint/Prettier 레거시 경로가 모두 제거되었습니다.
|
|
61
|
+
|
|
62
|
+
### 제거된 항목
|
|
63
|
+
|
|
64
|
+
- `@hyeon/linter` (기존 ESLint 설정 객체 export) → `@hyeon/linter` (oxlint 설정으로 대체)
|
|
65
|
+
- `@hyeon/linter/legacy`
|
|
66
|
+
- `@hyeon/linter/recommended` (ESLint base)
|
|
67
|
+
- `@hyeon/linter/typescript` (typescript-eslint)
|
|
68
|
+
- `@hyeon/linter/react` (eslint-plugin-react)
|
|
69
|
+
- `@hyeon/linter/prettier` (eslint-plugin-prettier)
|
|
70
|
+
- `@hyeon/linter/hansanghyeon` (ESLint custom)
|
|
71
|
+
- `eslint`, `prettier` peerDependencies
|
|
72
|
+
- `fallbackRules` export
|
|
73
|
+
|
|
74
|
+
### 마이그레이션 방법
|
|
75
|
+
|
|
76
|
+
1. `eslint.config.mjs` 삭제
|
|
77
|
+
2. `oxlint.config.ts` 생성 (위 예시 참고)
|
|
78
|
+
3. `.oxfmtrc.jsonc` 복사 (위 포맷터 가이드 참고)
|
|
79
|
+
4. `eslint`, `prettier` 및 관련 플러그인 devDependencies 제거
|
|
80
|
+
5. lint 스크립트를 `oxlint --config oxlint.config.ts` 으로 변경
|
package/package.json
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyeon/linter",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "./src/
|
|
3
|
+
"version": "11.0.1-dev.2.41",
|
|
4
|
+
"description": "OXC-based lint and format configuration (oxlint + oxfmt)",
|
|
5
|
+
"main": "./src/oxlint.mjs",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"lint": "
|
|
8
|
-
"
|
|
7
|
+
"lint": "npm run lint:oxlint && npm run format:check",
|
|
8
|
+
"lint:oxlint": "oxlint --type-aware --config oxlint.config.ts src test/src",
|
|
9
|
+
"lint:oxlint:syntax": "oxlint --config oxlint.config.ts src test/src",
|
|
10
|
+
"format:write": "npx --no-install oxfmt --config ./.oxfmtrc.jsonc ./templates/oxfmt.base.jsonc",
|
|
11
|
+
"format:check": "npx --no-install oxfmt --config ./.oxfmtrc.jsonc --check ./templates/oxfmt.base.jsonc",
|
|
12
|
+
"test": "npm run lint && npm --prefix test run test:all"
|
|
9
13
|
},
|
|
10
14
|
"repository": {
|
|
11
15
|
"type": "git",
|
|
12
16
|
"url": "git+https://git.hyeon.pro/hansanghyeon/linter.git"
|
|
13
17
|
},
|
|
14
18
|
"keywords": [
|
|
15
|
-
"
|
|
16
|
-
"
|
|
19
|
+
"oxlint",
|
|
20
|
+
"oxfmt",
|
|
21
|
+
"oxc",
|
|
22
|
+
"linter",
|
|
23
|
+
"formatter",
|
|
17
24
|
"hyeon",
|
|
18
25
|
"javascript",
|
|
19
26
|
"react",
|
|
20
27
|
"nextjs",
|
|
21
28
|
"nestjs",
|
|
22
|
-
"typescript"
|
|
23
|
-
"prettier"
|
|
29
|
+
"typescript"
|
|
24
30
|
],
|
|
25
31
|
"author": "hyeon",
|
|
26
32
|
"license": "MIT",
|
|
@@ -29,42 +35,32 @@
|
|
|
29
35
|
},
|
|
30
36
|
"homepage": "https://git.hyeon.pro/hansanghyeon/linter#readme",
|
|
31
37
|
"dependencies": {
|
|
32
|
-
"
|
|
33
|
-
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
34
|
-
"eslint-config-prettier": "^10.1.8",
|
|
35
|
-
"eslint-plugin-import-x": "^4.16.1",
|
|
36
|
-
"eslint-plugin-prettier": "^5.5.5",
|
|
37
|
-
"eslint-plugin-react": "^7.37.5",
|
|
38
|
-
"eslint-plugin-react-refresh": "^0.5.0",
|
|
39
|
-
"prettier": "^3.5.3",
|
|
40
|
-
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
41
|
-
"typescript": "^5.9.3",
|
|
42
|
-
"typescript-eslint": "^8.55.0"
|
|
38
|
+
"typescript": "^5.9.3"
|
|
43
39
|
},
|
|
44
40
|
"peerDependencies": {
|
|
45
|
-
"
|
|
46
|
-
"prettier": "^3.5.3"
|
|
41
|
+
"oxlint": ">=1.0.0"
|
|
47
42
|
},
|
|
48
43
|
"devDependencies": {
|
|
49
|
-
"
|
|
44
|
+
"oxfmt": "^0.37.0",
|
|
45
|
+
"oxlint": "^1.52.0",
|
|
46
|
+
"oxlint-tsgolint": "^0.16.0"
|
|
50
47
|
},
|
|
51
48
|
"exports": {
|
|
52
49
|
".": {
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"default": "./src/
|
|
50
|
+
"types": "./src/oxlint.d.ts",
|
|
51
|
+
"import": "./src/oxlint.mjs",
|
|
52
|
+
"default": "./src/oxlint.mjs"
|
|
56
53
|
},
|
|
57
|
-
"./
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
"./oxlint": {
|
|
55
|
+
"types": "./src/oxlint.d.ts",
|
|
56
|
+
"import": "./src/oxlint.mjs",
|
|
57
|
+
"default": "./src/oxlint.mjs"
|
|
58
|
+
},
|
|
59
|
+
"./oxfmt-template": "./templates/oxfmt.base.jsonc",
|
|
62
60
|
"./package.json": "./package.json"
|
|
63
61
|
},
|
|
64
62
|
"files": [
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"prettier",
|
|
68
|
-
"src"
|
|
63
|
+
"src",
|
|
64
|
+
"templates"
|
|
69
65
|
]
|
|
70
66
|
}
|
package/src/oxlint.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OxlintConfig } from "oxlint";
|
|
2
|
+
|
|
3
|
+
type OxlintConfigSnippet = Omit<OxlintConfig, "extends" | "$schema">;
|
|
4
|
+
|
|
5
|
+
export declare const recommended: OxlintConfigSnippet;
|
|
6
|
+
export declare const typescript: OxlintConfigSnippet;
|
|
7
|
+
export declare const react: OxlintConfigSnippet;
|
|
8
|
+
export declare const hansanghyeon: OxlintConfigSnippet;
|
package/src/oxlint.mjs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const fullRepoIgnorePatterns = [
|
|
2
|
+
"**/node_modules/**",
|
|
3
|
+
"**/dist/**",
|
|
4
|
+
"**/.turbo/**",
|
|
5
|
+
"**/coverage/**",
|
|
6
|
+
];
|
|
7
|
+
|
|
8
|
+
export const recommended = {
|
|
9
|
+
ignorePatterns: fullRepoIgnorePatterns,
|
|
10
|
+
categories: {
|
|
11
|
+
correctness: "warn",
|
|
12
|
+
suspicious: "warn",
|
|
13
|
+
pedantic: "off",
|
|
14
|
+
perf: "off",
|
|
15
|
+
style: "off",
|
|
16
|
+
restriction: "off",
|
|
17
|
+
nursery: "off",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const typescript = {
|
|
22
|
+
plugins: ["typescript"],
|
|
23
|
+
rules: {
|
|
24
|
+
"typescript/no-explicit-any": "off",
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const react = {
|
|
29
|
+
plugins: ["react"],
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const hansanghyeon = {
|
|
33
|
+
rules: {
|
|
34
|
+
"no-empty-pattern": "off",
|
|
35
|
+
camelcase: "off",
|
|
36
|
+
"no-multi-spaces": "off",
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"printWidth": 120,
|
|
3
|
+
"tabWidth": 2,
|
|
4
|
+
"useTabs": false,
|
|
5
|
+
"semi": false,
|
|
6
|
+
"singleQuote": true,
|
|
7
|
+
"jsxSingleQuote": false,
|
|
8
|
+
"trailingComma": "all",
|
|
9
|
+
"sortImports": {
|
|
10
|
+
"newlinesBetween": false,
|
|
11
|
+
"internalPattern": ["~/", "@/"],
|
|
12
|
+
"groups": [
|
|
13
|
+
["value-builtin", "value-external", "value-internal", "value-subpath"],
|
|
14
|
+
["type-builtin", "type-external", "type-internal", "type-subpath"],
|
|
15
|
+
["value-parent", "value-sibling", "value-index"],
|
|
16
|
+
["type-parent", "type-sibling", "type-index"],
|
|
17
|
+
"unknown",
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
"sortTailwindcss": {
|
|
21
|
+
"functions": ["clsx", "cn"],
|
|
22
|
+
},
|
|
23
|
+
}
|
package/src/base.mjs
DELETED
package/src/hansanghyeon.mjs
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import importX from 'eslint-plugin-import-x'
|
|
2
|
-
|
|
3
|
-
const _import = [
|
|
4
|
-
importX.flatConfigs.recommended,
|
|
5
|
-
{
|
|
6
|
-
rules: {
|
|
7
|
-
'import-x/first': 'error',
|
|
8
|
-
'import-x/newline-after-import': 'error',
|
|
9
|
-
'import-x/no-duplicates': 'error',
|
|
10
|
-
'import-x/no-unresolved': 'off',
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
const custom = {
|
|
16
|
-
rules: {
|
|
17
|
-
'no-empty-pattern': 'off',
|
|
18
|
-
'lines-around-comment': 'off',
|
|
19
|
-
camelcase: 'off',
|
|
20
|
-
'class-methods-use-this': 'off',
|
|
21
|
-
'no-multi-spaces': [
|
|
22
|
-
'error',
|
|
23
|
-
{
|
|
24
|
-
ignoreEOLComments: true,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
|
|
28
|
-
// 보일러플레이트 코드를 생성할때 {} 를 사용하는 경우가 많아서 off
|
|
29
|
-
|
|
30
|
-
'@typescript-eslint/no-empty-object-type': 'off',
|
|
31
|
-
'@typescript-eslint/no-explicit-any': 'off',
|
|
32
|
-
'@typescript-eslint/no-unused-vars': [
|
|
33
|
-
'error',
|
|
34
|
-
{
|
|
35
|
-
vars: 'all',
|
|
36
|
-
varsIgnorePattern: '^_.*$|^_$|^P$|^flow$|^pipe$',
|
|
37
|
-
args: 'all',
|
|
38
|
-
argsIgnorePattern: '^_.*$|^_$|^P$|^flow$|^pipe$',
|
|
39
|
-
caughtErrors: 'all',
|
|
40
|
-
caughtErrorsIgnorePattern: '^_.*$|^_$|^P$|^flow$|^pipe$',
|
|
41
|
-
destructuredArrayIgnorePattern: '^_.*$|^_$|^P$|^flow$|^pipe$',
|
|
42
|
-
ignoreRestSiblings: true,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
'no-confusing-arrow': 'off',
|
|
46
|
-
},
|
|
47
|
-
ignores: ['.config/*', 'eslint.config.mjs', 'eslint.config.js'],
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export default [custom, ..._import]
|
package/src/index.mjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import hyeonEslintConfigBase from './base.mjs'
|
|
2
|
-
import hyeonEslintConfigHansanghyeon from './hansanghyeon.mjs'
|
|
3
|
-
import hyeonEslintConfigPrettier from './prettier.mjs'
|
|
4
|
-
import hyeonEslintConfigReact from './react.mjs'
|
|
5
|
-
import hyeonEslintConfigTypescript from './typescript.mjs'
|
|
6
|
-
|
|
7
|
-
// 기존 사용자를 위한 객체 형태 유지 (각 속성이 flat config 배열)
|
|
8
|
-
|
|
9
|
-
const configs = {
|
|
10
|
-
recommended: hyeonEslintConfigBase,
|
|
11
|
-
prettier: hyeonEslintConfigPrettier,
|
|
12
|
-
react: hyeonEslintConfigReact,
|
|
13
|
-
typescript: hyeonEslintConfigTypescript,
|
|
14
|
-
hansanghyeon: hyeonEslintConfigHansanghyeon,
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// Default export는 설정 객체
|
|
18
|
-
|
|
19
|
-
export default configs
|
|
20
|
-
|
|
21
|
-
// Named exports로도 개별 설정 제공
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
hyeonEslintConfigBase as recommended,
|
|
25
|
-
hyeonEslintConfigPrettier as prettier,
|
|
26
|
-
hyeonEslintConfigReact as react,
|
|
27
|
-
hyeonEslintConfigTypescript as typescript,
|
|
28
|
-
hyeonEslintConfigHansanghyeon as hansanghyeon,
|
|
29
|
-
}
|
package/src/prettier.mjs
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import eslintConfigPrettier from 'eslint-config-prettier'
|
|
2
|
-
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
|
|
3
|
-
|
|
4
|
-
export default [
|
|
5
|
-
eslintConfigPrettier,
|
|
6
|
-
{
|
|
7
|
-
...eslintPluginPrettierRecommended,
|
|
8
|
-
rules: {
|
|
9
|
-
'prettier/prettier': [
|
|
10
|
-
'error',
|
|
11
|
-
{
|
|
12
|
-
trailingComma: 'all',
|
|
13
|
-
singleQuote: true,
|
|
14
|
-
semi: false,
|
|
15
|
-
tabWidth: 2,
|
|
16
|
-
printWidth: 120,
|
|
17
|
-
arrowParens: 'always',
|
|
18
|
-
jsxSingleQuote: false,
|
|
19
|
-
plugins: ['@trivago/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'],
|
|
20
|
-
importOrder: ['^[^.](.*)$', '^[.]{1,2}/.*$'],
|
|
21
|
-
importOrderSeparation: false,
|
|
22
|
-
importOrderSortSpecifiers: true,
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @see https://github.com/trivago/prettier-plugin-sort-imports/issues/120
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
importOrderParserPlugins: ['typescript', 'decorators-legacy', 'jsx', 'classProperties'],
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
'arrow-body-style': ['error', 'as-needed'],
|
|
32
|
-
'prefer-arrow-callback': 'error',
|
|
33
|
-
curly: ['error', 'all'],
|
|
34
|
-
'lines-around-comment': [
|
|
35
|
-
'error',
|
|
36
|
-
{
|
|
37
|
-
beforeBlockComment: true,
|
|
38
|
-
afterBlockComment: true,
|
|
39
|
-
beforeLineComment: true,
|
|
40
|
-
afterLineComment: true,
|
|
41
|
-
allowBlockStart: true,
|
|
42
|
-
allowBlockEnd: true,
|
|
43
|
-
allowObjectStart: true,
|
|
44
|
-
allowObjectEnd: true,
|
|
45
|
-
allowArrayStart: true,
|
|
46
|
-
allowArrayEnd: true,
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
'max-len': 'off',
|
|
50
|
-
'no-confusing-arrow': [
|
|
51
|
-
'error',
|
|
52
|
-
{
|
|
53
|
-
allowParens: false,
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
'no-mixed-operators': 'error',
|
|
57
|
-
'no-tabs': 'error',
|
|
58
|
-
quotes: [
|
|
59
|
-
'error',
|
|
60
|
-
'single',
|
|
61
|
-
{
|
|
62
|
-
avoidEscape: true,
|
|
63
|
-
allowTemplateLiterals: false,
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
]
|
package/src/react.mjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import react from 'eslint-plugin-react'
|
|
2
|
-
import { reactRefresh } from 'eslint-plugin-react-refresh'
|
|
3
|
-
|
|
4
|
-
export default [
|
|
5
|
-
{
|
|
6
|
-
settings: { react: { version: '19.0' } },
|
|
7
|
-
plugins: {
|
|
8
|
-
react,
|
|
9
|
-
'react-refresh': reactRefresh.plugin,
|
|
10
|
-
},
|
|
11
|
-
rules: {
|
|
12
|
-
...react.configs.recommended.rules,
|
|
13
|
-
...react.configs['jsx-runtime'].rules,
|
|
14
|
-
...reactRefresh.configs.recommended().rules,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
]
|
package/src/typescript.mjs
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import js from '@eslint/js'
|
|
2
|
-
import eslintConfigPrettier from 'eslint-config-prettier'
|
|
3
|
-
import tseslint from 'typescript-eslint'
|
|
4
|
-
|
|
5
|
-
// tseslint.config()는 이미 flat config 배열을 반환
|
|
6
|
-
|
|
7
|
-
const config = [
|
|
8
|
-
{
|
|
9
|
-
ignores: ['**/node_modules/**', '**/dist/**', '**/.turbo/**', '**/coverage/**'],
|
|
10
|
-
},
|
|
11
|
-
js.configs.recommended,
|
|
12
|
-
...tseslint.configs.recommended,
|
|
13
|
-
eslintConfigPrettier,
|
|
14
|
-
{
|
|
15
|
-
files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'],
|
|
16
|
-
languageOptions: {
|
|
17
|
-
parser: tseslint.parser,
|
|
18
|
-
parserOptions: {
|
|
19
|
-
ecmaVersion: 'latest',
|
|
20
|
-
sourceType: 'module',
|
|
21
|
-
ecmaFeatures: {
|
|
22
|
-
decorators: true,
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
rules: {
|
|
27
|
-
'@typescript-eslint/no-explicit-any': 'off',
|
|
28
|
-
'@typescript-eslint/no-unused-vars': [
|
|
29
|
-
'error',
|
|
30
|
-
{
|
|
31
|
-
argsIgnorePattern: '^_',
|
|
32
|
-
varsIgnorePattern: '^_',
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
'@typescript-eslint/consistent-type-imports': [
|
|
36
|
-
'error',
|
|
37
|
-
{
|
|
38
|
-
prefer: 'type-imports',
|
|
39
|
-
fixStyle: 'inline-type-imports',
|
|
40
|
-
disallowTypeAnnotations: false,
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
44
|
-
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
45
|
-
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
export default config
|