fix(frontend): type-check every workspace - #1492
Merged
kentwelcome merged 1 commit intoAug 5, 2026
Merged
Conversation
Signed-off-by: Jared Scott <jared.scott@datarecce.io>
kentwelcome
deleted the
feature/drc-3217-ensure-recce-frontend-type-check-validates-every-workspace
branch
August 5, 2026 08:03
Contributor
There was a problem hiding this comment.
Pull request overview
This PR strengthens the JS monorepo’s TypeScript validation by making pnpm type:check run tsc for the root app, @datarecce/ui, and @datarecce/storybook using each workspace’s own tsconfig.json, and updates code to be compatible with Storybook’s ES2020 type-checking constraints.
Changes:
- Aggregate
pnpm type:checkto run per-workspace checks, and add a dedicated Storybooktype:checkscript. - Fix ES-target typing gaps by replacing
Object.hasOwn/Object.groupByusage and introducing a smallhasOwnhelper. - Update Storybook TS program inputs (includes shared declarations + required UI sources) and adjust UI tests to use colocated test utilities.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| js/packages/ui/src/utils/hasOwn.ts | Adds an Object.hasOwn replacement compatible with ES2020 type-checking. |
| js/packages/ui/src/css.d.ts | Provides *.css module typing for non-Next TS programs (e.g., Storybook). |
| js/packages/ui/src/components/ui/dataGrid/inlineRenderCell.tsx | Switches Object.hasOwn checks to the new hasOwn helper. |
| js/packages/ui/src/components/ui/dataGrid/dataGridFactory.tsx | Switches Object.hasOwn checks to the new hasOwn helper. |
| js/packages/ui/src/components/result/createResultView.testUtils.tsx | Adds colocated mocks/providers for createResultView tests. |
| js/packages/ui/src/components/result/createResultView.test.tsx | Updates mocks/imports to use the new colocated test utilities. |
| js/packages/ui/src/components/lineage/hooks/useTrackLineageRender.ts | Replaces Object.groupBy with a reduce-based counter to avoid newer lib requirements. |
| js/packages/ui/src/components/lineage/changeCategory.ts | Uses hasOwn helper to avoid Object.hasOwn typing requirements. |
| js/packages/storybook/tsconfig.json | Expands include to cover required shared declarations and UI sources for Storybook type-checking. |
| js/packages/storybook/package.json | Adds type:check script (tsc --noEmit). |
| js/package.json | Makes root type:check run root + UI + Storybook checks, with a type:check:root leaf script. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR checklist
What type of PR is this?
Bug fix
What this PR does / why we need it:
pnpm type:checkcommand validate the root app,@datarecce/ui, and@datarecce/storybookwith each workspace's owntsconfig.json.Which issue(s) this PR fixes:
Closes DRC-3217
Special notes for your reviewer:
Failure propagation was proven with a temporary Storybook-only type error: before this change, the public root command exited 0 while the direct Storybook check exited 1; after aggregation, the public command exited 1. The probe was removed before committing.
Verification:
cd js && pnpm lint— 667 files checkedcd js && pnpm type:check— root, UI, and Storybook all passedcd js && pnpm test— 3,983 passed, 5 skippedcd js && pnpm run build— production build passedDoes this PR introduce a user-facing change?:
No.