-
Notifications
You must be signed in to change notification settings - Fork 31
[docs-infra] Automatic Type Meta Generation #489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Bundle size reportBundle size will be reported once CircleCI build #6648 finishes. |
Bundle size report
Check out the code infra dashboard for more information about this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Adds a build-time pipeline for automatically generating and rendering TypeScript API metadata/docs, and updates the docs site to consume those generated types (plus some UI/typography refresh).
Changes:
- Introduces
loadPrecomputedTypesloader entrypoint + new exports to support precomputed type metadata. - Updates code-loading pipeline and HAST utilities to support safer recursion and configurable JSX runtime component mapping.
- Adds extensive docs + demos for
useTypes/abstractCreateTypesand refreshes docs UI (fonts, tables, and related styling).
Reviewed changes
Copilot reviewed 222 out of 301 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/docs-infra/src/pipeline/loadPrecomputedTypes/index.ts | Adds loader-friendly default export for precomputed types loader |
| packages/docs-infra/src/pipeline/loadCodeVariant/loadCodeVariant.ts | Avoids mutating loadedFiles when recursing extra files |
| packages/docs-infra/src/pipeline/loadCodeVariant/loadCodeFallback.ts | Documents fallback loader behavior via JSDoc |
| packages/docs-infra/src/pipeline/hastUtils/hastUtils.tsx | Adds optional components mapping to JSX runtime conversion helpers |
| packages/docs-infra/src/pipeline/enhanceCodeInlineElements/index.ts | Adds barrel export for pipeline enhancer |
| packages/docs-infra/src/pipeline/enhanceCodeExportLinks/index.ts | Adds barrel export + exported options type |
| packages/docs-infra/src/createDemoData/index.ts | Re-exports demo-data-related public types |
| packages/docs-infra/src/createDemoData/createDemoData.ts | Ensures React types are available for demo-data typing |
| packages/docs-infra/src/abstractCreateTypes/index.ts | Exposes abstractCreateTypes entrypoint and JSX options type |
| packages/docs-infra/src/abstractCreateDemoClient/abstractCreateDemoClient.tsx | Exports demo client meta type publicly |
| packages/docs-infra/src/CodeProvider/CodeProvider.tsx | Adds prop/interface documentation for client provider |
| packages/docs-infra/src/CodeProvider/CodeContext.tsx | Documents context contract for heavy code-processing functions |
| packages/docs-infra/src/CodeHighlighter/types.ts | Adds JSDoc docstring for ParseSource type |
| packages/docs-infra/src/CodeExternalsContext/CodeExternalsContext.tsx | Adds richer context and hook documentation |
| packages/docs-infra/src/CodeControllerContext/CodeControllerContext.tsx | Changes useControlledCode return shape + clarifies docs |
| packages/docs-infra/package.json | Bumps version and adds exports/deps for types-generation pipeline |
| docs/mdx-components.tsx | Registers custom table renderer in MDX components |
| docs/functions/createTypes/index.ts | Exposes docs-site helper exports for types demo “dogfooding” |
| docs/components/index.ts | Removes older components barrel export |
| docs/components/Tabs/Tabs.module.css | Switches to unified --font-code token |
| docs/components/Table/index.ts | Adds Table component barrel export |
| docs/components/Table/Table.tsx | Introduces styled table wrapper component |
| docs/components/Table/Table.module.css | Adds base styling for tables in docs |
| docs/components/Search/SearchInput.module.css | Switches to unified --font-code token |
| docs/components/Search/SearchDialog.module.css | Switches to unified --font-code token |
| docs/components/Search/SearchButton.tsx | Adjusts <kbd> styling hooks for Cmd glyph |
| docs/components/Search/SearchButton.module.css | Switches to unified --font-code token and adds Cmd override |
| docs/components/Pre/Pre.module.css | Switches to unified --font-code token |
| docs/components/PagesIndex/PagesIndex.module.css | Switches to unified --font-code token |
| docs/components/Navigation/Navigation.module.css | Updates nav typography tokens/sizing |
| docs/app/layout.tsx | Replaces fonts and defines CSS variables for typography |
| docs/app/layout.module.css | Updates global typography + visited code styling rules |
| docs/app/global.css | Tweaks inline code highlighting color inheritance |
| docs/app/docs-infra/pipeline/with-docs-infra/types.ts | Adds generated types components for docs page |
| docs/app/docs-infra/pipeline/with-docs-infra/types.md | Adds autogenerated API markdown for withDocsInfra types |
| docs/app/docs-infra/pipeline/with-docs-infra/page.mdx | Replaces hand-written API tables with generated types rendering |
| docs/app/docs-infra/pipeline/transform-markdown-metadata/page.mdx | Updates plugin example to new transformMarkdownMetaLinks |
| docs/app/docs-infra/pipeline/transform-html-code-precomputed/page.mdx | Renames/clarifies doc page title + import name |
| docs/app/docs-infra/pipeline/transform-html-code-inline-highlighted/types.ts | Adds generated types component for inline-highlighting plugin |
| docs/app/docs-infra/pipeline/transform-html-code-inline-highlighted/types.md | Adds autogenerated API markdown for inline-highlighting plugin |
| docs/app/docs-infra/pipeline/sync-types/types.ts | Adds generated types component for syncTypes |
| docs/app/docs-infra/pipeline/sync-types/types.md | Adds autogenerated API markdown for syncTypes |
| docs/app/docs-infra/pipeline/sync-page-index/types.ts | Adds generated types component for syncPageIndex |
| docs/app/docs-infra/pipeline/sync-page-index/types.md | Adds autogenerated API markdown for syncPageIndex |
| docs/app/docs-infra/pipeline/sync-page-index/page.mdx | Replaces hand-written API reference with generated types rendering |
| docs/app/docs-infra/pipeline/parse-source/types.ts | Adds generated types components for parseSource module |
| docs/app/docs-infra/pipeline/parse-source/types.md | Adds autogenerated API markdown for parseSource module |
| docs/app/docs-infra/pipeline/parse-source/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/pipeline/loader-utils/types.ts | Adds generated types component for loader utils |
| docs/app/docs-infra/pipeline/loader-utils/page.mdx | Replaces hand-written type definitions with generated types rendering |
| docs/app/docs-infra/pipeline/load-server-types/types.ts | Adds generated types component for loadServerTypes |
| docs/app/docs-infra/pipeline/load-server-types-text/types.ts | Adds generated types components for loadServerTypesText module |
| docs/app/docs-infra/pipeline/load-server-types-text/types.md | Adds autogenerated API markdown for loadServerTypesText module |
| docs/app/docs-infra/pipeline/load-server-types-text/page.mdx | Adds new docs page describing types markdown parsing + generated types section |
| docs/app/docs-infra/pipeline/load-server-types-meta/types.ts | Adds generated types components for loadServerTypesMeta module |
| docs/app/docs-infra/pipeline/load-server-source/types.ts | Adds generated types component for loadServerSource |
| docs/app/docs-infra/pipeline/load-server-source/types.md | Adds autogenerated API markdown for loadServerSource |
| docs/app/docs-infra/pipeline/load-server-source/page.mdx | Adds generated types section |
| docs/app/docs-infra/pipeline/load-server-sitemap/types.ts | Adds generated types components for loadServerSitemap module |
| docs/app/docs-infra/pipeline/load-server-sitemap/types.md | Adds autogenerated API markdown for loadServerSitemap module |
| docs/app/docs-infra/pipeline/load-server-sitemap/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/pipeline/load-server-page-index/types.ts | Adds generated types components for loadServerPageIndex module |
| docs/app/docs-infra/pipeline/load-server-page-index/types.md | Adds autogenerated API markdown for loadServerPageIndex module |
| docs/app/docs-infra/pipeline/load-server-page-index/page.mdx | Replaces hand-written API content with generated types rendering |
| docs/app/docs-infra/pipeline/load-server-code-meta/types.ts | Adds generated types component for loadServerCodeMeta |
| docs/app/docs-infra/pipeline/load-server-code-meta/types.md | Adds autogenerated API markdown for loadServerCodeMeta |
| docs/app/docs-infra/pipeline/load-server-code-meta/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/pipeline/load-precomputed-types/types.ts | Adds generated types component for loadPrecomputedTypes loader |
| docs/app/docs-infra/pipeline/load-precomputed-types/types.md | Adds autogenerated API markdown for loadPrecomputedTypes loader |
| docs/app/docs-infra/pipeline/load-code-variant/types.ts | Adds generated types components for loadCodeVariant module |
| docs/app/docs-infra/pipeline/hast-utils/types.ts | Adds generated types components for hast utils module |
| docs/app/docs-infra/pipeline/hast-utils/types.md | Adds autogenerated API markdown for hast utils module |
| docs/app/docs-infra/pipeline/hast-utils/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/pipeline/enhance-code-export-links/types.ts | Adds generated types component for enhanceCodeExportLinks plugin |
| docs/app/docs-infra/pipeline/enhance-code-export-links/types.md | Adds autogenerated API markdown for enhanceCodeExportLinks plugin |
| docs/app/docs-infra/pipeline/enhance-code-emphasis/types.ts | Adds generated types component for enhanceCodeEmphasis enhancer |
| docs/app/docs-infra/pipeline/enhance-code-emphasis/types.md | Adds autogenerated API markdown for enhanceCodeEmphasis enhancer |
| docs/app/docs-infra/pipeline/enhance-code-emphasis/page.mdx | Replaces hand-written type definitions with generated types rendering |
| docs/app/docs-infra/patterns/page.mdx | Adds HAST pattern entry to patterns index |
| docs/app/docs-infra/page.mdx | Updates docs-infra landing page copy and structure |
| docs/app/docs-infra/hooks/use-url-hash-state/types.ts | Adds generated types component for useUrlHashState |
| docs/app/docs-infra/hooks/use-url-hash-state/types.md | Adds autogenerated API markdown for useUrlHashState |
| docs/app/docs-infra/hooks/use-url-hash-state/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-url-hash-state/demos/tab-navigation/TabNavigation.module.css | Switches to unified --font-code token |
| docs/app/docs-infra/hooks/use-types/types.ts | Adds generated types for useTypes docs page |
| docs/app/docs-infra/hooks/use-types/demos/page.mdx | Adds demos index page for useTypes |
| docs/app/docs-infra/hooks/use-types/demos/hook/useHook.ts | Adds hook demo source for useTypes |
| docs/app/docs-infra/hooks/use-types/demos/hook/types.ts | Adds generated types component for hook demo |
| docs/app/docs-infra/hooks/use-types/demos/hook/types.md | Adds generated API markdown for hook demo |
| docs/app/docs-infra/hooks/use-types/demos/hook/index.ts | Wires hook demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/data-attr/types.ts | Adds generated types component for data-attr demo |
| docs/app/docs-infra/hooks/use-types/demos/data-attr/types.md | Adds generated API markdown for data-attr demo |
| docs/app/docs-infra/hooks/use-types/demos/data-attr/index.ts | Wires data-attr demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/data-attr/ComponentDataAttributes.ts | Adds enum for documenting data attributes |
| docs/app/docs-infra/hooks/use-types/demos/data-attr/Component.tsx | Adds component demo source using data attributes enum |
| docs/app/docs-infra/hooks/use-types/demos/createTypes.tsx | Adds docs-site types factory wrappers for rendering |
| docs/app/docs-infra/hooks/use-types/demos/class/types.ts | Adds generated types component for class demo |
| docs/app/docs-infra/hooks/use-types/demos/class/types.md | Adds generated API markdown for class demo |
| docs/app/docs-infra/hooks/use-types/demos/class/index.ts | Wires class demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/class/Handle.ts | Adds example class for imperative handle demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks/types.ts | Adds generated types for multi-export blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks/types.md | Adds generated API markdown for blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks/index.ts | Wires blocks demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/blocks/TypesComponent.tsx | Renders multiple generated types components |
| docs/app/docs-infra/hooks/use-types/demos/blocks/Component/index.ts | Adds namespace export structure for blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks/Component/index.parts.ts | Defines parts exports for blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks/Component/ComponentRoot.tsx | Adds blocks demo root component |
| docs/app/docs-infra/hooks/use-types/demos/blocks/Component/ComponentPart.tsx | Adds blocks demo part component |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/types.ts | Adds generated types for inherited-blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/types.md | Adds generated API markdown for inherited-blocks demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/index.ts | Wires inherited-blocks demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/TypesAlertDialog.tsx | Renders multiple generated types components for alert dialog |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/Dialog/index.ts | Adds namespace/module exports for dialog demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/Dialog/index.parts.ts | Defines dialog parts exports |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/Dialog/DialogTrigger.tsx | Adds trigger component demonstrating namespace types |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/Dialog/DialogClose.tsx | Adds close component referencing trigger state type |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/AlertDialog/index.ts | Adds alert dialog namespace exports + re-exports |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/AlertDialog/index.parts.ts | Defines alert dialog parts exports |
| docs/app/docs-infra/hooks/use-types/demos/blocks-inherited/AlertDialog/AlertDialogTrigger.tsx | Adds alert trigger component extending dialog state |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/types.ts | Adds generated types + additional types component for demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/types.md | Adds generated API markdown for blocks-data-attr demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/index.ts | Wires blocks-data-attr demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/TypesComponent.tsx | Renders root/part/additional generated types components |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/InputType.ts | Adds shared union type for demo cross-references |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/index.ts | Adds namespace export + type exports for demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/index.parts.ts | Defines parts exports for demo |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/Root/ComponentRootDataAttributes.ts | Adds data attributes enum for root |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/Root/ComponentRoot.tsx | Adds root component demonstrating state + change details |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/Part/ComponentPartDataAttributes.ts | Adds data attributes enum for part |
| docs/app/docs-infra/hooks/use-types/demos/blocks-data-attr/Component/Part/ComponentPart.tsx | Adds part component referencing shared input type |
| docs/app/docs-infra/hooks/use-types/demos/basic/types.ts | Adds generated types component for basic demo |
| docs/app/docs-infra/hooks/use-types/demos/basic/types.md | Adds generated API markdown for basic demo |
| docs/app/docs-infra/hooks/use-types/demos/basic/index.ts | Wires basic demo into docs demo factory |
| docs/app/docs-infra/hooks/use-types/demos/basic/Component.tsx | Adds basic component demo source |
| docs/app/docs-infra/hooks/use-types/demos/TypesTable.module.css | Adds styling for types table demo UI |
| docs/app/docs-infra/hooks/use-search/types.ts | Adds generated types component for useSearch |
| docs/app/docs-infra/hooks/use-search/types.md | Adds autogenerated API markdown for useSearch |
| docs/app/docs-infra/hooks/use-preference/types.ts | Adds generated types components for usePreference module |
| docs/app/docs-infra/hooks/use-preference/types.md | Adds autogenerated API markdown for usePreference module |
| docs/app/docs-infra/hooks/use-preference/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-preference/demos/variant-selector/VariantSelector.module.css | Switches to unified --font-code token |
| docs/app/docs-infra/hooks/use-local-storage-state/types.ts | Adds generated types component for useLocalStorageState |
| docs/app/docs-infra/hooks/use-local-storage-state/types.md | Adds autogenerated API markdown for useLocalStorageState |
| docs/app/docs-infra/hooks/use-local-storage-state/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-errors/types.ts | Adds generated types component for useErrors |
| docs/app/docs-infra/hooks/use-errors/types.md | Adds autogenerated API markdown for useErrors |
| docs/app/docs-infra/hooks/use-errors/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-demo/types.ts | Adds generated types components for useDemo module |
| docs/app/docs-infra/hooks/use-demo/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-copier/types.ts | Adds generated types component for useCopier |
| docs/app/docs-infra/hooks/use-copier/types.md | Adds autogenerated API markdown for useCopier |
| docs/app/docs-infra/hooks/use-copier/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/hooks/use-copier/demos/text-input-copy/TextInputCopy.module.css | Switches to unified --font-code token |
| docs/app/docs-infra/hooks/use-code/types.ts | Adds generated types component for useCode |
| docs/app/docs-infra/hooks/use-code/types.md | Adds autogenerated API markdown for useCode |
| docs/app/docs-infra/hooks/use-code/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/factories/page.mdx | Adds abstract-create-types entry and reorders factory index |
| docs/app/docs-infra/factories/create-sitemap/types.ts | Adds generated types component for createSitemap |
| docs/app/docs-infra/factories/create-sitemap/types.md | Adds autogenerated API markdown for createSitemap |
| docs/app/docs-infra/factories/create-sitemap/page.mdx | Replaces hand-written API section with generated types rendering and fixes links |
| docs/app/docs-infra/factories/create-demo-data/types.ts | Adds generated types component for createDemoData |
| docs/app/docs-infra/factories/create-demo-data/types.md | Adds autogenerated API markdown for createDemoData |
| docs/app/docs-infra/factories/create-demo-data/page.mdx | Adds generated types section |
| docs/app/docs-infra/factories/abstract-create-types/types.ts | Adds generated types components for abstractCreateTypes module |
| docs/app/docs-infra/factories/abstract-create-types/types.md | Adds autogenerated API markdown for abstractCreateTypes module |
| docs/app/docs-infra/factories/abstract-create-demo/types.ts | Adds generated types component for abstractCreateDemo |
| docs/app/docs-infra/factories/abstract-create-demo/types.md | Adds autogenerated API markdown for abstractCreateDemo |
| docs/app/docs-infra/factories/abstract-create-demo/page.mdx | Fixes links and adds generated types section |
| docs/app/docs-infra/factories/abstract-create-demo-client/types.ts | Adds generated types component for abstractCreateDemoClient |
| docs/app/docs-infra/factories/abstract-create-demo-client/types.md | Adds autogenerated API markdown for abstractCreateDemoClient |
| docs/app/docs-infra/factories/abstract-create-demo-client/page.mdx | Fixes links and adds generated types section |
| docs/app/docs-infra/components/page.mdx | Updates components index outline to align with generated types sections |
| docs/app/docs-infra/components/code-provider/types.ts | Adds generated types component for CodeProvider |
| docs/app/docs-infra/components/code-provider/types.md | Adds autogenerated API markdown for CodeProvider |
| docs/app/docs-infra/components/code-provider/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/components/code-highlighter/types.ts | Adds generated types components for CodeHighlighter and its types module |
| docs/app/docs-infra/components/code-highlighter/demos/CodeContent.module.css | Switches to unified --font-code token |
| docs/app/docs-infra/components/code-externals-context/types.ts | Adds generated types component for CodeExternalsContext |
| docs/app/docs-infra/components/code-externals-context/types.md | Adds autogenerated API markdown for CodeExternalsContext |
| docs/app/docs-infra/components/code-externals-context/page.mdx | Replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/components/code-controller-context/types.ts | Adds generated types component for CodeControllerContext |
| docs/app/docs-infra/components/code-controller-context/types.md | Adds autogenerated API markdown for CodeControllerContext |
| docs/app/docs-infra/components/code-controller-context/page.mdx | Fixes links and replaces hand-written API section with generated types rendering |
| docs/app/docs-infra/components/code-controller-context/demos/code-editor/CodeEditorContent.module.css | Switches to unified --font-code token |
| docs/app/docs-infra/commands/validate/page.mdx | Updates validate command docs to include types validation and new flags |
| docs/app/docs-infra/commands/page.mdx | Updates commands index to reflect validate changes |
| AGENTS.md | Updates internal contribution links and naming convention guidance |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Connor Davis <mail@connordav.is>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 222 out of 301 changed files in this pull request and generated 3 comments.
| "remark-parse": "^11.0.0", | ||
| "remark-stringify": "^11.0.0", | ||
| "remark-typography": "^0.7.0", | ||
| "typescript-api-extractor": "https://pkg.pr.new/typescript-api-extractor@8865998", |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency is pinned to a pkg.pr.new URL, which is usually intended for temporary preview builds and can be brittle for long-lived reproducible installs/releases. If this package is meant to be published/consumed broadly, consider pinning to a published registry version (semver) or vendoring/patching via a more stable mechanism (workspace package, patched dependency, or a git URL with commit SHA if necessary).
| "typescript-api-extractor": "https://pkg.pr.new/typescript-api-extractor@8865998", | |
| "typescript-api-extractor": "^0.7.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're waiting on this PR to merge: michaldudak/typescript-api-extractor#61
Uses a webpack loader to take a single entrypoint parsed with the Typescript Language Service API and pass it through
typescript-api-extractor. This loads only the necessary files for a given entrypoint, and caches them in memory. This decreases the initial typescript parse by 90% compared to a monolithic parse (~2 seconds to ~200ms). The larger a library becomes, the more dramatic this difference becomes. Since we cache shared libraries and dependancies, when loading another entrypoint this can further decrease hot reloading time by 100-300ms.Base UI PR
Shaping Page (implements Option D)
Docs
Read the docs for:
Screenshots
Important
This is just an example component, and users of this library will be expected to create their own (likely more functional) table
Performance
Important
These benchmarks are for cold compilation. This only applies to the first type is loaded. Because the Typescript AST is kept in memory and shared across workers, navigations and parellel builds use a warmed TypeScript Language Service and any shared files won't be parsed twice.
By default, we read the types from
.d.tsfiles, so generating the types metadata can be fairly quick and parse only the.d.tsfiles.Simple Function (types)
typescript-api-extractor8 Dependant Files
Complex React Function (
CodeHighlightertypes):typescript-api-extractor12 Dependant Files
When using
compilerOptions.pathsin Typescript ConfigIf using paths in the typescript config (or when
watchSourceDirectly: true), the TS compile is based on the source files instead of thed.tsfiles, which can add many dependent files (global types, each imported source file, etc). This is useful if importing files in a monorepo and don't have a separate build watcher to recompile thed.tsfiles.Simple Function (types) using
watchSourceDirectly: truetypescript-api-extractor7 Dependant Files
Complex React Function (
CodeHighlightertypes): usingcompilerOptions.paths/watchSourceDirectly: truetypescript-api-extractor150 Dependant Files
Closes: #421