✨ 주요 개선사항: - any 타입 83개에서 62개로 21개 수정 (25% 감소) - 모든 ESLint 에러 11개 → 0개 완전 해결 - 타입 안전성 대폭 향상으로 런타임 오류 가능성 감소 🔧 수정된 파일들: • PWADebug.tsx - 사용하지 않는 import들에 _ prefix 추가 • categoryUtils.ts - 불필요한 any 캐스트 제거 • TransactionsHeader.tsx - BudgetData 인터페이스 정의 • storageUtils.ts - generic 타입과 unknown 타입 적용 • 각종 error handler들 - Error | {message?: string} 타입 적용 • test 파일들 - 적절한 mock 인터페이스 정의 • 유틸리티 파일들 - any → unknown 또는 적절한 타입으로 교체 🏆 성과: - 코드 품질 크게 향상 (280 → 80 문제로 71% 감소) - TypeScript 컴파일러의 타입 체크 효과성 증대 - 개발자 경험 개선 (IDE 자동완성, 타입 추론 등) 🧹 추가 정리: - ESLint no-console/no-alert 경고 해결 - Prettier 포맷팅 적용으로 코드 스타일 통일 🎯 다음 단계: 남은 62개 any 타입 계속 개선 예정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
103 lines
2.8 KiB
JSON
103 lines
2.8 KiB
JSON
{
|
|
"branches": [
|
|
"main",
|
|
{
|
|
"name": "beta",
|
|
"prerelease": true
|
|
}
|
|
],
|
|
"plugins": [
|
|
[
|
|
"@semantic-release/commit-analyzer",
|
|
{
|
|
"preset": "conventionalcommits",
|
|
"releaseRules": [
|
|
{ "type": "feat", "release": "minor" },
|
|
{ "type": "fix", "release": "patch" },
|
|
{ "type": "perf", "release": "patch" },
|
|
{ "type": "revert", "release": "patch" },
|
|
{ "type": "docs", "release": "patch" },
|
|
{ "type": "style", "release": false },
|
|
{ "type": "refactor", "release": "patch" },
|
|
{ "type": "test", "release": false },
|
|
{ "type": "build", "release": false },
|
|
{ "type": "ci", "release": false },
|
|
{ "type": "chore", "release": false },
|
|
{ "breaking": true, "release": "major" }
|
|
],
|
|
"parserOpts": {
|
|
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
|
|
}
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/release-notes-generator",
|
|
{
|
|
"preset": "conventionalcommits",
|
|
"presetConfig": {
|
|
"types": [
|
|
{ "type": "feat", "section": "✨ Features" },
|
|
{ "type": "fix", "section": "🐛 Bug Fixes" },
|
|
{ "type": "perf", "section": "⚡ Performance Improvements" },
|
|
{ "type": "revert", "section": "⏪ Reverts" },
|
|
{ "type": "docs", "section": "📚 Documentation" },
|
|
{ "type": "refactor", "section": "♻️ Code Refactoring" }
|
|
]
|
|
}
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/changelog",
|
|
{
|
|
"changelogFile": "CHANGELOG.md"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/npm",
|
|
{
|
|
"npmPublish": false
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/github",
|
|
{
|
|
"assets": [
|
|
{
|
|
"path": "android/app/build/outputs/bundle/release/*.aab",
|
|
"label": "Android App Bundle"
|
|
},
|
|
{
|
|
"path": "android/app/build/outputs/apk/release/*.apk",
|
|
"label": "Android APK"
|
|
},
|
|
{
|
|
"path": "ios/App/build/App.ipa",
|
|
"label": "iOS IPA"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/exec",
|
|
{
|
|
"prepareCmd": "npm run version:sync && node scripts/semantic-release-linear-plugin.cjs prepare ${nextRelease.version}",
|
|
"successCmd": "npm run version:post-release && node scripts/semantic-release-linear-plugin.cjs success ${nextRelease.version}"
|
|
}
|
|
],
|
|
[
|
|
"@semantic-release/git",
|
|
{
|
|
"assets": [
|
|
"CHANGELOG.md",
|
|
"package.json",
|
|
"package-lock.json",
|
|
"android/app/build.gradle",
|
|
"ios/App/App/Info.plist",
|
|
"releases/"
|
|
],
|
|
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
}
|
|
]
|
|
]
|
|
}
|