-
Notifications
You must be signed in to change notification settings - Fork 140
Open
Description
Summary
When re-re-exporting a namespace that itself re-exports many items with renamed exports, JSR's generated docs produce double-qualified names like is.isAny. Those links 404 on jsr.io and break symbol resolution.
Context
- Library: @core/unknownutil
- Version: 4.4.0-pre.0
- Docs page showing the issue: https://jsr.io/@core/unknownutil@4.4.0-pre.0/doc
- Pattern:
- is/is.ts enumerates many re-exports such as:
export { isAny as Any } from "./any.ts";
- is/mod.ts re-re-exports the namespace:
export * as is from "./is.ts";
- mod.ts re-re-re-exports the namespace:
export { is } from "mod.ts";
- is/is.ts enumerates many re-exports such as:
- On jsr.io docs, symbols appear as is.isAny (and similar), and clicking them yields 404 Not Found. The symbol browser and JSDoc linking seem inconsistent with the actual export graph and/or symbol names.
Minimal Reproduction
- is.ts
export { isAny as Any } from "./any.ts"; export { isString as String } from "./string.ts"; // ... many similar lines ```
- mod.ts
export * as is from "./is.ts";
Observed Behavior
- The docs render symbols under a nested path like
is.isAny
. - Links for those nested symbol names point to pages that do not exist, resulting in 404 Not Found.
- JSDoc for those symbols is either missing or linked incorrectly due to the double qualification.
Expected Behavior
- Re-re-exported namespace members should resolve to stable, correct doc URLs.
- Links for symbols should not 404, and symbol names should reflect the actual exported names (e.g.,
is.Any
rather thanis.isAny
if the public name is Any). - The doc generator should correctly handle:
export { X as Y } …
combined withexport * as ns from "…"
Notes and Hypothesis
- The doc generator may be deriving link targets from internal/original names (e.g.,
isAny
) instead of public aliases (e.g., Any
) when nested under a re-exported namespace. - Alternatively, the namespace nesting logic might be duplicating the namespace qualifier (
is.isAny
) instead of presenting the aliased member name (is.Any
). - Either way, the computed slug or path for the symbol likely does not match the router's expected URL, causing 404s.
What Would Help
- Clarify which name (original vs. alias) JSR intends to display and link for re-re-exported members.
- Ensure consistent symbol canonicalization so that:
- Displayed names match the actual exported surface (including aliases).
- URL slugs/anchors match those displayed names.
- Re-re-exported namespaces don't introduce duplicated qualifiers.
Environment
- Package: @core/unknownutil
- Version: 4.4.0-pre.0
- Affected docs: the jsr.io generated documentation pages for the package
Request
- Please confirm whether this is a known issue in the doc/link generation pipeline.
- If helpful, I can provide a minimal standalone repo replicating the re-re-export pattern and its resulting broken links.
lambdalisue
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Needs Triage