`backend` 옆에 `front` 가 있을 이유가 없었다. negosium 의 negodata/front 를 그대로 베꼈고 그게 왜 front 인지는 따져보지 않았다 — 근거 없이 들여온 이름이라 바로잡는다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019uYhHQdssRubirPirrdJJC
32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
// 최소 게이트 — 전체 스타일 린트가 아니라, tsc 가 못 잡는 런타임 크래시 버그만 막는다.
|
|
// (negodata 보일러플레이트에서 이식. 도입 계기는 로컬 const 가 동명 import 를 가려
|
|
// zustand 셀렉터가 TDZ 참조 → 프로덕션 크래시. 그 케이스는 tsc --noEmit 도 통과했다.)
|
|
import tseslint from 'typescript-eslint';
|
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
|
|
export default tseslint.config({
|
|
files: ['src/**/*.{ts,tsx}'],
|
|
ignores: ['src/api/generated/**'],
|
|
languageOptions: {
|
|
parser: tseslint.parser,
|
|
},
|
|
plugins: {
|
|
'@typescript-eslint': tseslint.plugin,
|
|
'react-hooks': reactHooks,
|
|
},
|
|
rules: {
|
|
// 훅 호출 순서 위반은 런타임 크래시라 error, deps 누락은 기존 코드가 많아 warn.
|
|
'react-hooks/rules-of-hooks': 'error',
|
|
'react-hooks/exhaustive-deps': 'warn',
|
|
// 선언보다 위에서 변수를 쓰는 것(TDZ) 차단. 함수/타입 호이스팅은 안전하므로 허용.
|
|
'no-use-before-define': 'off',
|
|
'@typescript-eslint/no-use-before-define': [
|
|
'error',
|
|
{functions: false, classes: false, typedefs: false, enums: false, variables: true},
|
|
],
|
|
// 상위 스코프(import 포함) 이름을 가리는 재선언 차단.
|
|
'no-shadow': 'off',
|
|
'@typescript-eslint/no-shadow': 'error',
|
|
},
|
|
});
|