Skip to content

feat(dx): add Biome linter/formatter with lint scripts and CI step (#10) - #28

Merged
ayden94 merged 1 commit into
mainfrom
feat/biome-lint
Jul 24, 2026
Merged

feat(dx): add Biome linter/formatter with lint scripts and CI step (#10)#28
ayden94 merged 1 commit into
mainfrom
feat/biome-lint

Conversation

@ayden94

@ayden94 ayden94 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Biome as the linter/formatter, replacing the .prettierrc config. Configures lint/format scripts and a CI lint step.

Changes

  • Removed .prettierrc (Biome replaces Prettier)
  • Added biome.json — linter enabled with recommended preset, formatter configured to match existing code style (single quotes, semicolons, trailing commas, 2-space indent, lineWidth 100)
  • Updated package.json:
    • Added @biomejs/biome v2.5.5 dev dependency
    • Added lint, lint:fix, format scripts
  • Updated .github/workflows/ci.yml — added pnpm lint step after typecheck, before test
  • Added .changeset/biome-lint.md — patch bump

Disabled rules (conflict with existing code patterns)

Rule Reason
useImportType Would require changing many import lines across existing source
useHookAtTopLevel False positives for stable callback-wrapped hooks in framework adapters
useExhaustiveDependencies Intentional stable ref patterns in React/Solid/Vue adapters
noAssignInExpressions Intentional ??= pattern for lazy initialization
noStaticOnlyClass Existing pattern for namespaced static utility classes
noThisInStatic Used in existing static utility classes
useIterableCallbackReturn forEach with cleanup-returning callbacks is intentional
organizeImports (assist) Would reorder existing imports across all files

noUnusedImports is set to warn (genuine issue, not blocking CI).

pnpm lint exits 0 on existing source with zero modifications required.

Verification

  • pnpm lint — passes (0 errors, 1 warning)
  • pnpm typecheck — passes
  • pnpm test — 57/57 pass
  • pnpm build — passes

Resolves #10


머지 금지 — 사용자 검증 후 머지 지시 예정

- Add @biomejs/biome v2.5.5 as dev dependency
- Add biome.json configured to match existing code style (single quotes,
  semicolons, trailing commas, 2-space indent)
- Remove .prettierrc (Biome replaces Prettier)
- Add lint, lint:fix, format scripts to package.json
- Add pnpm lint step to CI workflow (after typecheck, before test)
- Disable rules that conflict with existing code patterns:
  - useImportType, useHookAtTopLevel, useExhaustiveDependencies,
    noAssignInExpressions, noStaticOnlyClass, noThisInStatic,
    useIterableCallbackReturn
- Set noUnusedImports to warn (genuine issue but not blocking)
- lint script uses biome lint (formatter-only check deferred to format script)

Resolves #10
@ayden94
ayden94 merged commit d1a6685 into main Jul 24, 2026
1 check passed
@ayden94
ayden94 deleted the feat/biome-lint branch July 24, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

P1: ESLint/Biome + lint/format 스크립트 부재, CI에 lint 단계 없음

1 participant