Repository navigation
fix(webapi): expose concrete public module types [Codex] - #402
Conversation
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
jderochervlk
left a comment
There was a problem hiding this comment.
Reviewed 737c852cf7a968b956f06caffa8110a86a02a192 against 844c32af.
Found one documentation regression caused by alias placement, detailed inline. I found no other concrete correctness or compatibility defect in the type additions. The public-module inventory and packed-consumer coverage include the new aliases.
Independent checks in a clean archive passed: npm ci, npm run build, npm test, npm run check:consumer (including negative consumers), npm run format:check, npm run check:features, npm run build:docs, and npm run check:docs-links. I also compared compiler-generated documentation for all 92 changed source modules against the base; ten existing declarations lost their comments to the new aliases. Browser tests were not rerun locally for this review. No repository files were edited.
|
Focused review completed on Independent packed-consumer checks confirmed constructor/result compatibility, the direct backing-type references, generic types, field reads, and public URL/FontFace writes with warning 111 treated as an error. Native URL mutation also passed at runtime. The checked-in ImageBitmap negative fails specifically on private construction and compiles when only its privacy is relaxed in a scratch package. All ten previously displaced method comments still match their original documentation. On this exact head, clean install, build, |
Concrete public modules now expose their primary type as
t, including the missing canvas, geometry, font, storage, file, media, device, worker, and audio interfaces. Record-backed aliases explicitly re-export their existing shapes without changing privacy: private records remain private, and public records remain public. Generic and inherited types are preserved.Packed consumer fixtures check public field access, constructor results, generic types, and rejection of a private record. The broader native-type privacy plan is tracked in #403 and is outside this change. Closes #237.