infra: cleanup tsconfig and add typecheck to desktop #253

Merged
talksik merged 1 commits from add-typecheck into main 2026-06-09 17:47:48 +00:00
talksik commented 2026-06-09 17:43:41 +00:00 (Migrated from github.com)

Summary by CodeRabbit

  • Chores
    • Updated TypeScript configuration for improved module resolution and compilation settings.
    • Enhanced CI/CD quality gate workflow with additional type-checking step for desktop builds.
    • Updated build script configuration for type-checking processes.
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated TypeScript configuration for improved module resolution and compilation settings. * Enhanced CI/CD quality gate workflow with additional type-checking step for desktop builds. * Updated build script configuration for type-checking processes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
coderabbitai[bot] commented 2026-06-09 17:43:55 +00:00 (Migrated from github.com)

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 65216441-ec00-4771-9e62-aed159801632

📥 Commits

Reviewing files that changed from the base of the PR and between 92894c4af8 and 10c2fbe65f.

📒 Files selected for processing (4)
  • .github/workflows/pr-quality-gate-js.yml
  • js/desktop/forge.config.ts
  • js/desktop/package.json
  • js/desktop/tsconfig.json

📝 Walkthrough

Walkthrough

The PR updates the TypeScript configuration to use ESNext modules and bundler resolution strategy, replaces the compile npm script with a typecheck script, updates forge.config.ts to remove an unused type import and work with the new configuration, and adds a yarn typecheck step to the desktop workflow.

Changes

TypeScript Typecheck Integration

Layer / File(s) Summary
TypeScript compiler configuration
js/desktop/tsconfig.json
Module system changed from commonjs to ESNext and moduleResolution changed from node to bundler.
Typecheck script and forge config cleanup
js/desktop/package.json, js/desktop/forge.config.ts
The compile script is replaced with typecheck that runs tsc --noEmit; the unused SignToolOptions import is removed from forge config and hashes is cast to any type.
Workflow typecheck step
.github/workflows/pr-quality-gate-js.yml
The desktop job adds a "Typecheck" step that runs yarn typecheck after dependency installation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

A typecheck hop in TypeScript's way,
ESNext bounds and bundler's play,
The workflow guards with zealous care,
While forge trims fat from config's air. 🐰

🚥 Pre-merge checks | 5
Passed checks (5 passed)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title accurately summarizes the main changes: adding a typecheck step to the workflow and cleaning up the tsconfig with module/moduleResolution updates.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-typecheck

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

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- review_stack_entry_start --> [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/flowy-live/llink/pull/253?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> No actionable comments were generated in the recent review. 🎉 <details> <summary>ℹ️ Recent review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: defaults **Review profile**: CHILL **Plan**: Pro Plus **Run ID**: `65216441-ec00-4771-9e62-aed159801632` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 92894c4af88fa3bfec278193417cd0da93b89942 and 10c2fbe65f5e904b7f7f77f5dede1e29dbabcea1. </details> <details> <summary>📒 Files selected for processing (4)</summary> * `.github/workflows/pr-quality-gate-js.yml` * `js/desktop/forge.config.ts` * `js/desktop/package.json` * `js/desktop/tsconfig.json` </details> </details> --- <!-- walkthrough_start --> <details> <summary>📝 Walkthrough</summary> ## Walkthrough The PR updates the TypeScript configuration to use ESNext modules and bundler resolution strategy, replaces the `compile` npm script with a `typecheck` script, updates `forge.config.ts` to remove an unused type import and work with the new configuration, and adds a `yarn typecheck` step to the desktop workflow. ## Changes **TypeScript Typecheck Integration** | Layer / File(s) | Summary | |---|---| | **TypeScript compiler configuration** <br> `js/desktop/tsconfig.json` | Module system changed from `commonjs` to `ESNext` and moduleResolution changed from `node` to `bundler`. | | **Typecheck script and forge config cleanup** <br> `js/desktop/package.json`, `js/desktop/forge.config.ts` | The `compile` script is replaced with `typecheck` that runs `tsc --noEmit`; the unused `SignToolOptions` import is removed from forge config and `hashes` is cast to `any` type. | | **Workflow typecheck step** <br> `.github/workflows/pr-quality-gate-js.yml` | The desktop job adds a "Typecheck" step that runs `yarn typecheck` after dependency installation. | ## Estimated code review effort 🎯 2 (Simple) | ⏱️ ~10 minutes ## Poem > A typecheck hop in TypeScript's way, > ESNext bounds and bundler's play, > The workflow guards with zealous care, > While forge trims fat from config's air. ✨🐰 </details> <!-- walkthrough_end --> <!-- pre_merge_checks_walkthrough_start --> <details> <summary>🚥 Pre-merge checks | ✅ 5</summary> <details> <summary>✅ Passed checks (5 passed)</summary> | Check name | Status | Explanation | | :------------------------: | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | | Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. | | Title check | ✅ Passed | The title accurately summarizes the main changes: adding a typecheck step to the workflow and cleaning up the tsconfig with module/moduleResolution updates. | | Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. | | Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. | | Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. | </details> <sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub> </details> <!-- pre_merge_checks_walkthrough_end --> <!-- finishing_touch_checkbox_start --> <details> <summary>✨ Finishing Touches</summary> <details> <summary>📝 Generate docstrings</summary> - [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> Create stacked PR - [ ] <!-- {"checkboxId": "3e1879ae-f29b-4d0d-8e06-d12b7ba33d98"} --> Commit on current branch </details> <details> <summary>🧪 Generate unit tests (beta)</summary> - [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Create PR with unit tests - [ ] <!-- {"checkboxId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Commit unit tests in branch `add-typecheck` </details> </details> <!-- finishing_touch_checkbox_end --> <!-- tips_start --> --- <sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub> <!-- tips_end --> <!-- internal state start --> <!-- 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= --> <!-- internal state end -->
Sign in to join this conversation.