Repository navigation
Refactor TypeScript initialization to remove unchecked casts - #1544
Merged
Merged
Conversation
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.
Replace 13 unchecked TypeScript assertions with runtime narrowing and type inference, prioritizing frontend initialization. DOM selection now verifies the requested element class for both descendants and fragment roots; script metadata lives on HTMLScriptElement; toast and modal instances are checked against the page-provided or bundled Bootstrap constructor while retaining instance reuse.
Consolidate the Bootstrap initializer loops and flatten the chart initializer closure. Browser and documentation tests validate element types and query results instead of asserting them. The change removes 3 lines overall (14 fewer frontend lines); much of the chart diff is unindentation.
Three documented ApexCharts assertions remain at the library boundary: chart type names, series values supported at runtime beyond the declared types, and undocumented rendered chart internals. Removing these without changing existing chart behavior requires separate library typing work. No dependency, compiler-setting, or SQL component API changes.
Validation:
npm run formatnpm test(Biome, all three TypeScript projects, frontend unit and documentation tests)npm run buildandcargo buildto embed the updated assetsgit diff --checkBased on freshly fetched
origin/mainat4e277b2a, implemented in an isolated worktree.