Skip to content

v0.22.0

Compare
Choose a tag to compare
@Gerrit0 Gerrit0 released this 10 Sep 18:58

Breaking Changes

  • The packages and entryPoints options have been combined.
    To migrate configurations which used packages, replace packages with entryPoints and set entryPointStrategy to packages.
  • Renamed disableOutputCheck to cleanOutputDir to more clearly reflect its behavior.
  • The highlightTheme option has been split into lightHighlightTheme and darkHighlightTheme.
  • Removed poorly documented / poorly behaved toc option.
  • HTML output is now rendered with JSX instead of Handlebars, closes #1631.
    This change provides major performance benefits, reducing rendering time by up to 10x for several benchmarked projects.
    It also allows themes to be easily type checked, preventing mistakes when creating custom themes.
    Removing Handlebars also fixed memory leaks when --watch was specified due to Handlebar's caching mechanism.
    This change breaks all existing custom themes, so a theme created for v0.21 or earlier will not work in v0.22.
    See internal-docs/custom-themes.md for documentation on how to create a custom theme in v0.22.
  • Removed the minimal theme that has been mostly broken for a long time.
  • Changed the default entryPointStrategy from expand to resolve.
  • Paths in config files will now be resolved relative to the config file instead of relative to the current working directory.
  • Exclude patterns are now checked against files instead of against each part of the path as traversed, #1399.
    This means that an exclude of **/someDir will not exclude files in that directory. To exclude files in a directory, specify **/someDir/**.

Features

  • Added support for light/dark mode to the default theme, closes #1641.
  • Added support for custom CSS with the new customCss option, closes #1060.
  • Added support for linking to third party documentation sites, closes #131. See internal-docs/third-party-symbols.md
    for documentation on how to create a plugin which enables this.
    Support for linking to MDN for global types is provided by typedoc-plugin-mdn-links.
  • Added entryPointStrategy to reduce confusion from new TypeDoc users on handling of entry points.
    There are three possible options:
    Option Behavior
    resolve (default) Expects all entry points to be contained within the root level tsconfig project. If a directory is given, includes <directory>/index as the entry point.
    expand Expects all entry points to be contained within the root level tsconfig project. If a directory is given, files within it are recursively expanded. This was the default behavior in v0.21.
    packages Corresponds to --packages in v0.21, behaves as documented in the Monorepo section in the readme.
  • Added support for typedocMain in package.json when using the packages strategy for resolving entry points.
  • Produce warnings when documentation is missing exports, closes #1653. If using TypeDoc's API, this behavior is available through calling application.validate(project).
  • Added support for detecting "as const enums", closes #1675.
  • Added hideLegend option, closes #1108.
  • Added performance measurements to debug logging (--logLevel Verbose)
  • String literal indexed access types will create links to their referencing member if possible, closes #1226.

Bug Fixes

  • Support inclusion patterns when expanding input files, closes #1399.
  • Arrow keys can no longer select hidden search results.
  • The Legend header will no longer be included if there is nothing in the legend.
  • If a non-function uses @param, the name will not be dropped when rendering, closes #1410.

API Breaking Changes

  • TypeDoc now specifies the "export" key in package.json, preventing plugins from importing internal paths.
    TypeDoc should now export all necessary structures (potentially marked with @internal if likely to change) from the root export.
  • The ReflectionKind values for Project, Module, Namespace, and Enum have changed.
  • Removed deprecated logger functions.
  • Dropped support for legacy plugins which use export=. Plugins are now required to export a load function.
  • Remove TypeParameterType, references to type parameters have produced a ReferenceType since v0.20.0.
  • Types no longer have a clone method. It inconsistently performed deep or shallow clones, and was not used by TypeDoc.
  • Types no longer contain an equals method. It was occasionally correct for medium-complexity types, and always incorrect for more complicated types.

Thanks!