Skip to content

Conversation

@adelrodriguez
Copy link
Collaborator

@adelrodriguez adelrodriguez commented Jan 29, 2026

Summary

  • add app tsconfig preset to centralize DOM libs plus noEmit/TS extension imports
  • simplify internal package tsconfigs and inline DOM libs where needed
  • normalize changelog list formatting from formatter

Testing

  • bun run format
  • bun run check
  • bun run typecheck
  • bun run test

Greptile Overview

Greptile Summary

This PR successfully consolidates TypeScript configuration across the monorepo by introducing a new @tooling/tsconfig/app preset and simplifying the internal-package preset.

Key Changes:

  • Created new app.json preset centralizing DOM libraries (ESNext, DOM, DOM.Iterable), noEmit, and allowImportingTsExtensions for all app configurations
  • Updated internal-package.json preset to include noEmit and allowImportingTsExtensions, removing emission-related options (declaration, declarationMap, emitDeclarationOnly, outDir)
  • Migrated all 6 apps (web, mobile, desktop, app, extension, docs) from base to the new app preset, eliminating redundant configuration
  • Simplified 17 internal package tsconfigs by removing rootDir and other now-inherited options
  • Packages requiring DOM APIs (ui, workflows) appropriately inline lib: ["ESNext", "DOM", "DOM.Iterable"]
  • Normalized CHANGELOG.md list formatting from asterisks to hyphens per formatter rules

The refactoring reduces configuration duplication (89 lines removed, 36 added) while maintaining type safety and build correctness. All app-specific configs now only contain their unique overrides (jsx, plugins, esModuleInterop), making the codebase more maintainable.

Confidence Score: 5/5

  • This PR is safe to merge with no risk - it's a pure configuration refactoring that consolidates settings without changing behavior
  • The PR demonstrates excellent configuration management with systematic consolidation of tsconfig settings. All changes follow a clear pattern: apps inherit from the new app preset, packages inherit from the updated internal-package preset, and only necessary overrides remain inline. The testing mentioned (format, check, typecheck, test) validates that the refactoring maintains type safety and build correctness.
  • No files require special attention - all changes follow consistent patterns

Important Files Changed

Filename Overview
tooling/tsconfig/app.json Added new app preset consolidating DOM libs, noEmit, and allowImportingTsExtensions for all app configs
tooling/tsconfig/internal-package.json Simplified preset to include noEmit and allowImportingTsExtensions, removing emission-related options
apps/web/tsconfig.json Switched to app preset, removed redundant lib, moduleResolution, and noEmit config
packages/ui/tsconfig.json Switched to internal-package preset, kept DOM libs inline, removed redundant noEmit and allowImportingTsExtensions
packages/backend/tsconfig.json Removed entire compilerOptions block as all options now inherited from internal-package preset

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant Apps as Apps (web, mobile, desktop, etc)
    participant Packages as Internal Packages
    participant AppPreset as @tooling/tsconfig/app
    participant PkgPreset as @tooling/tsconfig/internal-package
    participant Base as @tooling/tsconfig/base

    Dev->>AppPreset: Create new app.json preset
    Note over AppPreset: Includes: ESNext, DOM, DOM.Iterable<br/>noEmit, allowImportingTsExtensions
    
    Dev->>PkgPreset: Simplify internal-package.json
    Note over PkgPreset: Remove emission configs<br/>Add: noEmit, allowImportingTsExtensions
    
    Dev->>Apps: Update all app tsconfigs
    Apps->>AppPreset: extends @tooling/tsconfig/app
    AppPreset->>Base: extends base.json
    Note over Apps: Remove redundant: lib, noEmit,<br/>allowImportingTsExtensions
    Note over Apps: Keep only: jsx, esModuleInterop,<br/>plugins (as needed)
    
    Dev->>Packages: Update all package tsconfigs
    Packages->>PkgPreset: extends internal-package.json
    PkgPreset->>Base: extends base.json
    Note over Packages: Remove: rootDir, emission configs<br/>Inline DOM libs only where needed<br/>(ui, workflows)
Loading

@coderabbitai
Copy link

coderabbitai bot commented Jan 29, 2026

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/tsconfig-app-preset

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@adelrodriguez adelrodriguez merged commit fb3c68e into main Jan 29, 2026
7 checks passed
@adelrodriguez adelrodriguez deleted the chore/tsconfig-app-preset branch January 29, 2026 17:00
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.

2 participants