typedoc 0.24.0-beta.2 → 0.24.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -32
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/lib/cli.js +12 -16
- package/dist/lib/converter/comments/blockLexer.d.ts +2 -1
- package/dist/lib/converter/comments/blockLexer.js +45 -4
- package/dist/lib/converter/comments/discovery.d.ts +7 -2
- package/dist/lib/converter/comments/discovery.js +37 -5
- package/dist/lib/converter/comments/index.d.ts +3 -3
- package/dist/lib/converter/comments/index.js +18 -17
- package/dist/lib/converter/comments/lexer.d.ts +2 -0
- package/dist/lib/converter/comments/linkResolver.d.ts +2 -2
- package/dist/lib/converter/comments/linkResolver.js +25 -20
- package/dist/lib/converter/comments/parser.js +6 -2
- package/dist/lib/converter/context.d.ts +1 -1
- package/dist/lib/converter/context.js +2 -2
- package/dist/lib/converter/converter.d.ts +2 -0
- package/dist/lib/converter/converter.js +6 -3
- package/dist/lib/converter/factories/signature.js +16 -7
- package/dist/lib/converter/jsdoc.js +3 -3
- package/dist/lib/converter/plugins/InheritDocPlugin.js +2 -1
- package/dist/lib/converter/plugins/PackagePlugin.d.ts +4 -0
- package/dist/lib/converter/plugins/PackagePlugin.js +26 -36
- package/dist/lib/converter/symbols.js +7 -5
- package/dist/lib/models/comments/comment.d.ts +6 -6
- package/dist/lib/models/comments/comment.js +26 -10
- package/dist/lib/models/reflections/abstract.js +1 -1
- package/dist/lib/models/reflections/project.js +1 -1
- package/dist/lib/output/events.js +4 -4
- package/dist/lib/output/themes/default/DefaultTheme.js +7 -1
- package/dist/lib/output/themes/default/layouts/default.js +5 -5
- package/dist/lib/output/themes/default/partials/navigation.js +1 -1
- package/dist/lib/output/themes/default/partials/typeParameters.js +1 -0
- package/dist/lib/output/themes/default/templates/reflection.js +2 -1
- package/dist/lib/output/themes/lib.js +1 -0
- package/dist/lib/serialization/schema.d.ts +8 -7
- package/dist/lib/serialization/serializer.js +1 -1
- package/dist/lib/utils/component.js +1 -1
- package/dist/lib/utils/entry-point.js +2 -2
- package/dist/lib/utils/fs.d.ts +12 -0
- package/dist/lib/utils/fs.js +33 -1
- package/dist/lib/utils/index.d.ts +2 -2
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/options/declaration.d.ts +2 -0
- package/dist/lib/utils/options/index.d.ts +1 -1
- package/dist/lib/utils/options/index.js +2 -1
- package/dist/lib/utils/options/readers/index.d.ts +1 -0
- package/dist/lib/utils/options/readers/index.js +3 -1
- package/dist/lib/utils/options/readers/package-json.d.ts +9 -0
- package/dist/lib/utils/options/readers/package-json.js +45 -0
- package/dist/lib/utils/options/sources/typedoc.js +20 -2
- package/dist/lib/utils/options/tsdoc-defaults.d.ts +2 -2
- package/dist/lib/utils/options/tsdoc-defaults.js +2 -0
- package/dist/lib/utils/package-manifest.js +4 -4
- package/package.json +8 -8
- package/static/style.css +8 -12
- package/tsdoc.json +16 -0
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/application-events.d.ts.map +0 -1
- package/dist/lib/application-events.js.map +0 -1
- package/dist/lib/application.d.ts.map +0 -1
- package/dist/lib/application.js.map +0 -1
- package/dist/lib/cli.d.ts.map +0 -1
- package/dist/lib/cli.js.map +0 -1
- package/dist/lib/converter/comments/blockLexer.d.ts.map +0 -1
- package/dist/lib/converter/comments/blockLexer.js.map +0 -1
- package/dist/lib/converter/comments/declarationReference.d.ts.map +0 -1
- package/dist/lib/converter/comments/declarationReference.js.map +0 -1
- package/dist/lib/converter/comments/declarationReferenceResolver.d.ts.map +0 -1
- package/dist/lib/converter/comments/declarationReferenceResolver.js.map +0 -1
- package/dist/lib/converter/comments/discovery.d.ts.map +0 -1
- package/dist/lib/converter/comments/discovery.js.map +0 -1
- package/dist/lib/converter/comments/index.d.ts.map +0 -1
- package/dist/lib/converter/comments/index.js.map +0 -1
- package/dist/lib/converter/comments/lexer.d.ts.map +0 -1
- package/dist/lib/converter/comments/lexer.js.map +0 -1
- package/dist/lib/converter/comments/lineLexer.d.ts.map +0 -1
- package/dist/lib/converter/comments/lineLexer.js.map +0 -1
- package/dist/lib/converter/comments/linkResolver.d.ts.map +0 -1
- package/dist/lib/converter/comments/linkResolver.js.map +0 -1
- package/dist/lib/converter/comments/parser.d.ts.map +0 -1
- package/dist/lib/converter/comments/parser.js.map +0 -1
- package/dist/lib/converter/comments/rawLexer.d.ts.map +0 -1
- package/dist/lib/converter/comments/rawLexer.js.map +0 -1
- package/dist/lib/converter/components.d.ts.map +0 -1
- package/dist/lib/converter/components.js.map +0 -1
- package/dist/lib/converter/context.d.ts.map +0 -1
- package/dist/lib/converter/context.js.map +0 -1
- package/dist/lib/converter/convert-expression.d.ts.map +0 -1
- package/dist/lib/converter/convert-expression.js.map +0 -1
- package/dist/lib/converter/converter-events.d.ts.map +0 -1
- package/dist/lib/converter/converter-events.js.map +0 -1
- package/dist/lib/converter/converter.d.ts.map +0 -1
- package/dist/lib/converter/converter.js.map +0 -1
- package/dist/lib/converter/factories/index-signature.d.ts.map +0 -1
- package/dist/lib/converter/factories/index-signature.js.map +0 -1
- package/dist/lib/converter/factories/signature.d.ts.map +0 -1
- package/dist/lib/converter/factories/signature.js.map +0 -1
- package/dist/lib/converter/index.d.ts.map +0 -1
- package/dist/lib/converter/index.js.map +0 -1
- package/dist/lib/converter/jsdoc.d.ts.map +0 -1
- package/dist/lib/converter/jsdoc.js.map +0 -1
- package/dist/lib/converter/plugins/CategoryPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/CategoryPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/CommentPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/CommentPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/GroupPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/GroupPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/ImplementsPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/ImplementsPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/InheritDocPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/InheritDocPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/LinkResolverPlugin.js.map +0 -1
- package/dist/lib/converter/plugins/PackagePlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/PackagePlugin.js.map +0 -1
- package/dist/lib/converter/plugins/SourcePlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/SourcePlugin.js.map +0 -1
- package/dist/lib/converter/plugins/TypePlugin.d.ts.map +0 -1
- package/dist/lib/converter/plugins/TypePlugin.js.map +0 -1
- package/dist/lib/converter/plugins/index.d.ts.map +0 -1
- package/dist/lib/converter/plugins/index.js.map +0 -1
- package/dist/lib/converter/symbols.d.ts.map +0 -1
- package/dist/lib/converter/symbols.js.map +0 -1
- package/dist/lib/converter/types.d.ts.map +0 -1
- package/dist/lib/converter/types.js.map +0 -1
- package/dist/lib/converter/utils/base-path.d.ts.map +0 -1
- package/dist/lib/converter/utils/base-path.js.map +0 -1
- package/dist/lib/converter/utils/nodes.d.ts.map +0 -1
- package/dist/lib/converter/utils/nodes.js.map +0 -1
- package/dist/lib/converter/utils/reflections.d.ts.map +0 -1
- package/dist/lib/converter/utils/reflections.js.map +0 -1
- package/dist/lib/converter/utils/repository.d.ts.map +0 -1
- package/dist/lib/converter/utils/repository.js.map +0 -1
- package/dist/lib/converter/utils/symbols.d.ts.map +0 -1
- package/dist/lib/converter/utils/symbols.js.map +0 -1
- package/dist/lib/models/ReflectionCategory.d.ts.map +0 -1
- package/dist/lib/models/ReflectionCategory.js.map +0 -1
- package/dist/lib/models/ReflectionGroup.d.ts.map +0 -1
- package/dist/lib/models/ReflectionGroup.js.map +0 -1
- package/dist/lib/models/comments/comment.d.ts.map +0 -1
- package/dist/lib/models/comments/comment.js.map +0 -1
- package/dist/lib/models/comments/index.d.ts.map +0 -1
- package/dist/lib/models/comments/index.js.map +0 -1
- package/dist/lib/models/index.d.ts.map +0 -1
- package/dist/lib/models/index.js.map +0 -1
- package/dist/lib/models/reflections/ReflectionSymbolId.d.ts.map +0 -1
- package/dist/lib/models/reflections/ReflectionSymbolId.js.map +0 -1
- package/dist/lib/models/reflections/abstract.d.ts.map +0 -1
- package/dist/lib/models/reflections/abstract.js.map +0 -1
- package/dist/lib/models/reflections/container.d.ts.map +0 -1
- package/dist/lib/models/reflections/container.js.map +0 -1
- package/dist/lib/models/reflections/declaration.d.ts.map +0 -1
- package/dist/lib/models/reflections/declaration.js.map +0 -1
- package/dist/lib/models/reflections/id.d.ts +0 -30
- package/dist/lib/models/reflections/id.d.ts.map +0 -1
- package/dist/lib/models/reflections/id.js +0 -52
- package/dist/lib/models/reflections/id.js.map +0 -1
- package/dist/lib/models/reflections/index.d.ts.map +0 -1
- package/dist/lib/models/reflections/index.js.map +0 -1
- package/dist/lib/models/reflections/kind.d.ts.map +0 -1
- package/dist/lib/models/reflections/kind.js.map +0 -1
- package/dist/lib/models/reflections/parameter.d.ts.map +0 -1
- package/dist/lib/models/reflections/parameter.js.map +0 -1
- package/dist/lib/models/reflections/project.d.ts.map +0 -1
- package/dist/lib/models/reflections/project.js.map +0 -1
- package/dist/lib/models/reflections/reference.d.ts.map +0 -1
- package/dist/lib/models/reflections/reference.js.map +0 -1
- package/dist/lib/models/reflections/signature.d.ts.map +0 -1
- package/dist/lib/models/reflections/signature.js.map +0 -1
- package/dist/lib/models/reflections/type-parameter.d.ts.map +0 -1
- package/dist/lib/models/reflections/type-parameter.js.map +0 -1
- package/dist/lib/models/reflections/utils.d.ts.map +0 -1
- package/dist/lib/models/reflections/utils.js.map +0 -1
- package/dist/lib/models/reflections/variant.d.ts.map +0 -1
- package/dist/lib/models/reflections/variant.js.map +0 -1
- package/dist/lib/models/sources/file.d.ts.map +0 -1
- package/dist/lib/models/sources/file.js.map +0 -1
- package/dist/lib/models/sources/index.d.ts.map +0 -1
- package/dist/lib/models/sources/index.js.map +0 -1
- package/dist/lib/models/types.d.ts.map +0 -1
- package/dist/lib/models/types.js.map +0 -1
- package/dist/lib/output/components.d.ts.map +0 -1
- package/dist/lib/output/components.js.map +0 -1
- package/dist/lib/output/events.d.ts.map +0 -1
- package/dist/lib/output/events.js.map +0 -1
- package/dist/lib/output/index.d.ts.map +0 -1
- package/dist/lib/output/index.js.map +0 -1
- package/dist/lib/output/models/UrlMapping.d.ts.map +0 -1
- package/dist/lib/output/models/UrlMapping.js.map +0 -1
- package/dist/lib/output/plugins/AssetsPlugin.d.ts.map +0 -1
- package/dist/lib/output/plugins/AssetsPlugin.js.map +0 -1
- package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts.map +0 -1
- package/dist/lib/output/plugins/JavascriptIndexPlugin.js.map +0 -1
- package/dist/lib/output/plugins/index.d.ts.map +0 -1
- package/dist/lib/output/plugins/index.js.map +0 -1
- package/dist/lib/output/renderer.d.ts.map +0 -1
- package/dist/lib/output/renderer.js.map +0 -1
- package/dist/lib/output/theme.d.ts.map +0 -1
- package/dist/lib/output/theme.js.map +0 -1
- package/dist/lib/output/themes/MarkedPlugin.d.ts.map +0 -1
- package/dist/lib/output/themes/MarkedPlugin.js.map +0 -1
- package/dist/lib/output/themes/default/DefaultTheme.d.ts.map +0 -1
- package/dist/lib/output/themes/default/DefaultTheme.js.map +0 -1
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts.map +0 -1
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.js.map +0 -1
- package/dist/lib/output/themes/default/layouts/default.d.ts.map +0 -1
- package/dist/lib/output/themes/default/layouts/default.js.map +0 -1
- package/dist/lib/output/themes/default/partials/analytics.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/analytics.js.map +0 -1
- package/dist/lib/output/themes/default/partials/anchor-icon.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/anchor-icon.js.map +0 -1
- package/dist/lib/output/themes/default/partials/breadcrumb.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/breadcrumb.js.map +0 -1
- package/dist/lib/output/themes/default/partials/comment.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/comment.js.map +0 -1
- package/dist/lib/output/themes/default/partials/footer.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/footer.js.map +0 -1
- package/dist/lib/output/themes/default/partials/header.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/header.js.map +0 -1
- package/dist/lib/output/themes/default/partials/hierarchy.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/hierarchy.js.map +0 -1
- package/dist/lib/output/themes/default/partials/icon.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/icon.js.map +0 -1
- package/dist/lib/output/themes/default/partials/index.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/index.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.declaration.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.declaration.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.getterSetter.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.getterSetter.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.reference.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.reference.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signature.body.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signature.body.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signature.title.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signature.title.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signatures.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.signatures.js.map +0 -1
- package/dist/lib/output/themes/default/partials/member.sources.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/member.sources.js.map +0 -1
- package/dist/lib/output/themes/default/partials/members.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/members.group.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/members.group.js.map +0 -1
- package/dist/lib/output/themes/default/partials/members.js.map +0 -1
- package/dist/lib/output/themes/default/partials/navigation.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/navigation.js.map +0 -1
- package/dist/lib/output/themes/default/partials/parameter.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/parameter.js.map +0 -1
- package/dist/lib/output/themes/default/partials/toolbar.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/toolbar.js.map +0 -1
- package/dist/lib/output/themes/default/partials/type.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/type.js.map +0 -1
- package/dist/lib/output/themes/default/partials/typeAndParent.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/typeAndParent.js.map +0 -1
- package/dist/lib/output/themes/default/partials/typeParameters.d.ts.map +0 -1
- package/dist/lib/output/themes/default/partials/typeParameters.js.map +0 -1
- package/dist/lib/output/themes/default/templates/index.d.ts.map +0 -1
- package/dist/lib/output/themes/default/templates/index.js.map +0 -1
- package/dist/lib/output/themes/default/templates/reflection.d.ts.map +0 -1
- package/dist/lib/output/themes/default/templates/reflection.js.map +0 -1
- package/dist/lib/output/themes/lib.d.ts.map +0 -1
- package/dist/lib/output/themes/lib.js.map +0 -1
- package/dist/lib/serialization/components.d.ts.map +0 -1
- package/dist/lib/serialization/components.js.map +0 -1
- package/dist/lib/serialization/deserializer.d.ts.map +0 -1
- package/dist/lib/serialization/deserializer.js.map +0 -1
- package/dist/lib/serialization/events.d.ts.map +0 -1
- package/dist/lib/serialization/events.js.map +0 -1
- package/dist/lib/serialization/index.d.ts.map +0 -1
- package/dist/lib/serialization/index.js.map +0 -1
- package/dist/lib/serialization/schema.d.ts.map +0 -1
- package/dist/lib/serialization/schema.js.map +0 -1
- package/dist/lib/serialization/serializer.d.ts.map +0 -1
- package/dist/lib/serialization/serializer.js.map +0 -1
- package/dist/lib/utils/array.d.ts.map +0 -1
- package/dist/lib/utils/array.js.map +0 -1
- package/dist/lib/utils/component.d.ts.map +0 -1
- package/dist/lib/utils/component.js.map +0 -1
- package/dist/lib/utils/entry-point.d.ts.map +0 -1
- package/dist/lib/utils/entry-point.js.map +0 -1
- package/dist/lib/utils/enum.d.ts.map +0 -1
- package/dist/lib/utils/enum.js.map +0 -1
- package/dist/lib/utils/events.d.ts.map +0 -1
- package/dist/lib/utils/events.js.map +0 -1
- package/dist/lib/utils/fs.d.ts.map +0 -1
- package/dist/lib/utils/fs.js.map +0 -1
- package/dist/lib/utils/general.d.ts.map +0 -1
- package/dist/lib/utils/general.js.map +0 -1
- package/dist/lib/utils/highlighter.d.ts.map +0 -1
- package/dist/lib/utils/highlighter.js.map +0 -1
- package/dist/lib/utils/hooks.d.ts.map +0 -1
- package/dist/lib/utils/hooks.js.map +0 -1
- package/dist/lib/utils/index.d.ts.map +0 -1
- package/dist/lib/utils/index.js.map +0 -1
- package/dist/lib/utils/jsx.d.ts.map +0 -1
- package/dist/lib/utils/jsx.elements.d.ts.map +0 -1
- package/dist/lib/utils/jsx.elements.js.map +0 -1
- package/dist/lib/utils/jsx.js.map +0 -1
- package/dist/lib/utils/loggers.d.ts.map +0 -1
- package/dist/lib/utils/loggers.js.map +0 -1
- package/dist/lib/utils/map.d.ts.map +0 -1
- package/dist/lib/utils/map.js.map +0 -1
- package/dist/lib/utils/minimalSourceFile.d.ts.map +0 -1
- package/dist/lib/utils/minimalSourceFile.js.map +0 -1
- package/dist/lib/utils/options/declaration.d.ts.map +0 -1
- package/dist/lib/utils/options/declaration.js.map +0 -1
- package/dist/lib/utils/options/help.d.ts.map +0 -1
- package/dist/lib/utils/options/help.js.map +0 -1
- package/dist/lib/utils/options/index.d.ts.map +0 -1
- package/dist/lib/utils/options/index.js.map +0 -1
- package/dist/lib/utils/options/options.d.ts.map +0 -1
- package/dist/lib/utils/options/options.js.map +0 -1
- package/dist/lib/utils/options/readers/arguments.d.ts.map +0 -1
- package/dist/lib/utils/options/readers/arguments.js.map +0 -1
- package/dist/lib/utils/options/readers/index.d.ts.map +0 -1
- package/dist/lib/utils/options/readers/index.js.map +0 -1
- package/dist/lib/utils/options/readers/tsconfig.d.ts.map +0 -1
- package/dist/lib/utils/options/readers/tsconfig.js.map +0 -1
- package/dist/lib/utils/options/readers/typedoc.d.ts.map +0 -1
- package/dist/lib/utils/options/readers/typedoc.js.map +0 -1
- package/dist/lib/utils/options/sources/index.d.ts.map +0 -1
- package/dist/lib/utils/options/sources/index.js.map +0 -1
- package/dist/lib/utils/options/sources/typedoc.d.ts.map +0 -1
- package/dist/lib/utils/options/sources/typedoc.js.map +0 -1
- package/dist/lib/utils/options/tsdoc-defaults.d.ts.map +0 -1
- package/dist/lib/utils/options/tsdoc-defaults.js.map +0 -1
- package/dist/lib/utils/package-manifest.d.ts.map +0 -1
- package/dist/lib/utils/package-manifest.js.map +0 -1
- package/dist/lib/utils/package.d.ts +0 -13
- package/dist/lib/utils/package.d.ts.map +0 -1
- package/dist/lib/utils/package.js +0 -154
- package/dist/lib/utils/package.js.map +0 -1
- package/dist/lib/utils/paths.d.ts.map +0 -1
- package/dist/lib/utils/paths.js.map +0 -1
- package/dist/lib/utils/perf.d.ts.map +0 -1
- package/dist/lib/utils/perf.js.map +0 -1
- package/dist/lib/utils/plugins.d.ts.map +0 -1
- package/dist/lib/utils/plugins.js.map +0 -1
- package/dist/lib/utils/reflections.d.ts.map +0 -1
- package/dist/lib/utils/reflections.js.map +0 -1
- package/dist/lib/utils/sort.d.ts.map +0 -1
- package/dist/lib/utils/sort.js.map +0 -1
- package/dist/lib/utils/tsconfig.d.ts.map +0 -1
- package/dist/lib/utils/tsconfig.js.map +0 -1
- package/dist/lib/utils/tsutils.d.ts.map +0 -1
- package/dist/lib/utils/tsutils.js.map +0 -1
- package/dist/lib/utils/validation.d.ts.map +0 -1
- package/dist/lib/utils/validation.js.map +0 -1
- package/dist/lib/validation/documentation.d.ts.map +0 -1
- package/dist/lib/validation/documentation.js.map +0 -1
- package/dist/lib/validation/exports.d.ts.map +0 -1
- package/dist/lib/validation/exports.js.map +0 -1
- package/dist/lib/validation/links.d.ts.map +0 -1
- package/dist/lib/validation/links.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ npm install typedoc --save-dev
|
|
|
19
19
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
|
-
To generate documentation TypeDoc needs to know your project entry point
|
|
22
|
+
To generate documentation TypeDoc needs to know your project entry point and TypeScript
|
|
23
23
|
compiler options. It will automatically try to find your `tsconfig.json` file, so you can
|
|
24
24
|
just specify the entry point of your library:
|
|
25
25
|
|
|
@@ -38,37 +38,10 @@ By default, TypeDoc will search for a file called `index` under the directory.
|
|
|
38
38
|
|
|
39
39
|
### Monorepos / Workspaces
|
|
40
40
|
|
|
41
|
-
If your codebase is comprised of one or more npm packages, you can
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
or a [Yarn Workspace](https://classic.yarnpkg.com/en/docs/workspaces/) TypeDoc will find all
|
|
46
|
-
the `workspaces` defined in the `package.json`. In order to find your entry points, TypeDoc requires
|
|
47
|
-
either that you turn on sourcemaps so that it can discover the original TS file, or that you
|
|
48
|
-
specify `"typedocMain": "src/index.ts"` to explicitly state where the package entry point is.
|
|
49
|
-
Supports wildcard paths in the same fashion as those found in npm or Yarn workspaces.
|
|
50
|
-
|
|
51
|
-
#### Single npm module
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
typedoc --entryPointStrategy packages .
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
#### Monorepo with npm/Yarn workspace at the root
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
typedoc --entryPointStrategy packages .
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
#### Monorepo with manually specified sub-packages to document
|
|
64
|
-
|
|
65
|
-
This can be useful if you do not want all your workspaces to be processed.
|
|
66
|
-
Accepts the same paths as would go in the `package.json`'s workspaces
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# Note the single quotes prevent shell wildcard expansion, allowing typedoc to do the expansion
|
|
70
|
-
typedoc --entryPointStrategy packages a-package 'some-more-packages/*' 'some-other-packages/*'
|
|
71
|
-
```
|
|
41
|
+
If your codebase is comprised of one or more npm packages, you can build documentation for each of them individually
|
|
42
|
+
and merge the results together into a single site by setting `entryPointStrategy` to `packages`. In this mode TypeDoc
|
|
43
|
+
requires configuration to be present in each directory to specify the entry points. For an example setup, see
|
|
44
|
+
https://github.com/Gerrit0/typedoc-packages-example
|
|
72
45
|
|
|
73
46
|
### Arguments
|
|
74
47
|
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export * from "./lib/models";
|
|
|
6
6
|
export { Converter, Context, type CommentParserConfig, type DeclarationReference, type SymbolReference, type ComponentPath, type Meaning, type MeaningKeyword, type ExternalResolveResult, type ExternalSymbolResolver, } from "./lib/converter";
|
|
7
7
|
export { Renderer, DefaultTheme, DefaultThemeRenderContext, UrlMapping, Theme, PageEvent, RendererEvent, MarkdownEvent, IndexEvent, } from "./lib/output";
|
|
8
8
|
export type { RenderTemplate, RendererHooks } from "./lib/output";
|
|
9
|
-
export { ArgumentsReader, BindOption, CommentStyle, JSX, LogLevel, Logger, Options, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, MinimalSourceFile, } from "./lib/utils";
|
|
9
|
+
export { ArgumentsReader, BindOption, CommentStyle, JSX, LogLevel, Logger, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, MinimalSourceFile, } from "./lib/utils";
|
|
10
10
|
export type { OptionsReader, TypeDocOptions, TypeDocOptionMap, ValidationOptions, TypeDocOptionValues, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, ObjectDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, SortStrategy, ParameterTypeToOptionTypeMap, DocumentationEntryPoint, ManuallyValidatedOption, EnumKeys, } from "./lib/utils";
|
|
11
11
|
export type { EventMap, EventCallback } from "./lib/utils/events";
|
|
12
12
|
export { JSONOutput, Serializer, Deserializer, type Deserializable, type DeserializerComponent, type SerializerComponent, SerializeEvent, } from "./lib/serialization";
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
|
|
20
|
+
exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
|
|
21
21
|
var application_1 = require("./lib/application");
|
|
22
22
|
Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_1.Application; } });
|
|
23
23
|
var events_1 = require("./lib/utils/events");
|
|
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "JSX", { enumerable: true, get: function () { ret
|
|
|
49
49
|
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return utils_1.LogLevel; } });
|
|
50
50
|
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return utils_1.Logger; } });
|
|
51
51
|
Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return utils_1.Options; } });
|
|
52
|
+
Object.defineProperty(exports, "PackageJsonReader", { enumerable: true, get: function () { return utils_1.PackageJsonReader; } });
|
|
52
53
|
Object.defineProperty(exports, "ParameterHint", { enumerable: true, get: function () { return utils_1.ParameterHint; } });
|
|
53
54
|
Object.defineProperty(exports, "ParameterType", { enumerable: true, get: function () { return utils_1.ParameterType; } });
|
|
54
55
|
Object.defineProperty(exports, "TSConfigReader", { enumerable: true, get: function () { return utils_1.TSConfigReader; } });
|
package/dist/lib/cli.js
CHANGED
|
@@ -36,6 +36,7 @@ const td = __importStar(require("typedoc"));
|
|
|
36
36
|
const app = new td.Application();
|
|
37
37
|
app.options.addReader(new td.ArgumentsReader(0));
|
|
38
38
|
app.options.addReader(new td.TypeDocReader());
|
|
39
|
+
app.options.addReader(new td.PackageJsonReader());
|
|
39
40
|
app.options.addReader(new td.TSConfigReader());
|
|
40
41
|
app.options.addReader(new td.ArgumentsReader(300));
|
|
41
42
|
void run(app)
|
|
@@ -74,17 +75,13 @@ async function run(app) {
|
|
|
74
75
|
}
|
|
75
76
|
if (app.options.getValue("watch")) {
|
|
76
77
|
app.convertAndWatch(async (project) => {
|
|
77
|
-
const out = app.options.getValue("out");
|
|
78
|
-
if (out) {
|
|
79
|
-
await app.generateDocs(project, out);
|
|
80
|
-
}
|
|
81
78
|
const json = app.options.getValue("json");
|
|
79
|
+
if (!json || app.options.isSet("out")) {
|
|
80
|
+
await app.generateDocs(project, app.options.getValue("out"));
|
|
81
|
+
}
|
|
82
82
|
if (json) {
|
|
83
83
|
await app.generateJson(project, json);
|
|
84
84
|
}
|
|
85
|
-
if (!out && !json) {
|
|
86
|
-
await app.generateDocs(project, "./docs");
|
|
87
|
-
}
|
|
88
85
|
});
|
|
89
86
|
return ExitCodes.Ok;
|
|
90
87
|
}
|
|
@@ -96,26 +93,25 @@ async function run(app) {
|
|
|
96
93
|
app.logger.hasWarnings()) {
|
|
97
94
|
return ExitCodes.CompileError;
|
|
98
95
|
}
|
|
96
|
+
const preValidationWarnCount = app.logger.warningCount;
|
|
99
97
|
app.validate(project);
|
|
98
|
+
const hadValidationWarnings = app.logger.warningCount !== preValidationWarnCount;
|
|
100
99
|
if (app.logger.hasErrors()) {
|
|
101
100
|
return ExitCodes.ValidationError;
|
|
102
101
|
}
|
|
103
|
-
if (
|
|
104
|
-
app.
|
|
102
|
+
if (hadValidationWarnings &&
|
|
103
|
+
(app.options.getValue("treatWarningsAsErrors") ||
|
|
104
|
+
app.options.getValue("treatValidationWarningsAsErrors"))) {
|
|
105
105
|
return ExitCodes.ValidationError;
|
|
106
106
|
}
|
|
107
107
|
if (app.options.getValue("emit") !== "none") {
|
|
108
|
-
const out = app.options.getValue("out");
|
|
109
|
-
if (out) {
|
|
110
|
-
await app.generateDocs(project, out);
|
|
111
|
-
}
|
|
112
108
|
const json = app.options.getValue("json");
|
|
109
|
+
if (!json || app.options.isSet("out")) {
|
|
110
|
+
await app.generateDocs(project, app.options.getValue("out"));
|
|
111
|
+
}
|
|
113
112
|
if (json) {
|
|
114
113
|
await app.generateJson(project, json);
|
|
115
114
|
}
|
|
116
|
-
if (!out && !json) {
|
|
117
|
-
await app.generateDocs(project, "./docs");
|
|
118
|
-
}
|
|
119
115
|
if (app.logger.hasErrors()) {
|
|
120
116
|
return ExitCodes.OutputError;
|
|
121
117
|
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
1
2
|
import { Token } from "./lexer";
|
|
2
|
-
export declare function lexBlockComment(file: string, pos?: number, end?: number): Generator<Token, undefined, undefined>;
|
|
3
|
+
export declare function lexBlockComment(file: string, pos?: number, end?: number, jsDoc?: ts.JSDoc | undefined, checker?: ts.TypeChecker | undefined): Generator<Token, undefined, undefined>;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.lexBlockComment = void 0;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
4
8
|
const lexer_1 = require("./lexer");
|
|
5
|
-
|
|
9
|
+
const ReflectionSymbolId_1 = require("../../models/reflections/ReflectionSymbolId");
|
|
10
|
+
const symbols_1 = require("../utils/symbols");
|
|
11
|
+
function* lexBlockComment(file, pos = 0, end = file.length, jsDoc = undefined, checker = undefined) {
|
|
6
12
|
// Wrapper around our real lex function to collapse adjacent text tokens.
|
|
7
13
|
let textToken;
|
|
8
|
-
for (const token of lexBlockComment2(file, pos, end)) {
|
|
14
|
+
for (const token of lexBlockComment2(file, pos, end, getLinkTags(jsDoc), checker)) {
|
|
9
15
|
if (token.kind === lexer_1.TokenSyntaxKind.Text) {
|
|
10
16
|
if (textToken) {
|
|
11
17
|
textToken.text += token.text;
|
|
@@ -28,7 +34,21 @@ function* lexBlockComment(file, pos = 0, end = file.length) {
|
|
|
28
34
|
return;
|
|
29
35
|
}
|
|
30
36
|
exports.lexBlockComment = lexBlockComment;
|
|
31
|
-
function
|
|
37
|
+
function getLinkTags(jsDoc) {
|
|
38
|
+
const result = [];
|
|
39
|
+
if (!jsDoc || typeof jsDoc.comment !== "object")
|
|
40
|
+
return result;
|
|
41
|
+
for (const part of jsDoc.comment) {
|
|
42
|
+
switch (part.kind) {
|
|
43
|
+
case typescript_1.default.SyntaxKind.JSDocLink:
|
|
44
|
+
case typescript_1.default.SyntaxKind.JSDocLinkCode:
|
|
45
|
+
case typescript_1.default.SyntaxKind.JSDocLinkPlain:
|
|
46
|
+
result.push(part);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
function* lexBlockComment2(file, pos, end, linkTags, checker) {
|
|
32
52
|
pos += 2; // Leading '/*'
|
|
33
53
|
end -= 2; // Trailing '*/'
|
|
34
54
|
if (pos < end && file[pos] === "*") {
|
|
@@ -47,6 +67,7 @@ function* lexBlockComment2(file, pos, end) {
|
|
|
47
67
|
}
|
|
48
68
|
let lineStart = true;
|
|
49
69
|
let braceStartsType = false;
|
|
70
|
+
let linkTagIndex = 0;
|
|
50
71
|
for (;;) {
|
|
51
72
|
if (pos >= end) {
|
|
52
73
|
return;
|
|
@@ -171,7 +192,9 @@ function* lexBlockComment2(file, pos, end) {
|
|
|
171
192
|
if (lookahead !== pos + 1 &&
|
|
172
193
|
(lookahead === end || /\s/.test(file[lookahead]))) {
|
|
173
194
|
braceStartsType = true;
|
|
174
|
-
|
|
195
|
+
const token = makeToken(lexer_1.TokenSyntaxKind.Tag, lookahead - pos);
|
|
196
|
+
attachLinkTagResult(token);
|
|
197
|
+
yield token;
|
|
175
198
|
break;
|
|
176
199
|
}
|
|
177
200
|
}
|
|
@@ -213,6 +236,24 @@ function* lexBlockComment2(file, pos, end) {
|
|
|
213
236
|
}
|
|
214
237
|
}
|
|
215
238
|
}
|
|
239
|
+
function attachLinkTagResult(token) {
|
|
240
|
+
// We might need to skip link tags if someone has link tags inside of an example comment
|
|
241
|
+
// pos-1 for opening brace, TS doesn't allow spaces between opening brace and @ sign as of 5.0.2
|
|
242
|
+
while (linkTagIndex < linkTags.length &&
|
|
243
|
+
linkTags[linkTagIndex].pos < token.pos - 1) {
|
|
244
|
+
linkTagIndex++;
|
|
245
|
+
}
|
|
246
|
+
if (linkTagIndex < linkTags.length &&
|
|
247
|
+
linkTags[linkTagIndex].pos === token.pos - 1) {
|
|
248
|
+
const link = linkTags[linkTagIndex];
|
|
249
|
+
if (link.name) {
|
|
250
|
+
const tsTarget = checker?.getSymbolAtLocation(link.name);
|
|
251
|
+
if (tsTarget) {
|
|
252
|
+
token.linkTarget = new ReflectionSymbolId_1.ReflectionSymbolId((0, symbols_1.resolveAliasedSymbol)(tsTarget, checker));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
216
257
|
function makeToken(kind, size) {
|
|
217
258
|
const start = pos;
|
|
218
259
|
pos += size;
|
|
@@ -2,5 +2,10 @@ import ts from "typescript";
|
|
|
2
2
|
import { ReflectionKind } from "../../models";
|
|
3
3
|
import { Logger } from "../../utils";
|
|
4
4
|
import { CommentStyle } from "../../utils/options/declaration";
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export interface DiscoveredComment {
|
|
6
|
+
file: ts.SourceFile;
|
|
7
|
+
ranges: ts.CommentRange[];
|
|
8
|
+
jsDoc: ts.JSDoc | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function discoverComment(symbol: ts.Symbol, kind: ReflectionKind, logger: Logger, commentStyle: CommentStyle): DiscoveredComment | undefined;
|
|
11
|
+
export declare function discoverSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, commentStyle: CommentStyle): DiscoveredComment | undefined;
|
|
@@ -9,6 +9,7 @@ const models_1 = require("../../models");
|
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const declaration_1 = require("../../utils/options/declaration");
|
|
11
11
|
const paths_1 = require("../../utils/paths");
|
|
12
|
+
const assert_1 = require("assert");
|
|
12
13
|
// Note: This does NOT include JSDoc syntax kinds. This is important!
|
|
13
14
|
// Comments from @typedef and @callback tags are handled specially by
|
|
14
15
|
// the JSDoc converter because we only want part of the comment when
|
|
@@ -120,7 +121,11 @@ function discoverComment(symbol, kind, logger, commentStyle) {
|
|
|
120
121
|
}
|
|
121
122
|
const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
|
|
122
123
|
if (selectedDocComment) {
|
|
123
|
-
discovered.push(
|
|
124
|
+
discovered.push({
|
|
125
|
+
file: decl.getSourceFile(),
|
|
126
|
+
ranges: selectedDocComment,
|
|
127
|
+
jsDoc: findJsDocForComment(node, selectedDocComment),
|
|
128
|
+
});
|
|
124
129
|
}
|
|
125
130
|
}
|
|
126
131
|
}
|
|
@@ -131,9 +136,9 @@ function discoverComment(symbol, kind, logger, commentStyle) {
|
|
|
131
136
|
return discovered[0];
|
|
132
137
|
default: {
|
|
133
138
|
logger.warn(`${symbol.name} has multiple declarations with a comment. An arbitrary comment will be used.`);
|
|
134
|
-
const locations = discovered.map((
|
|
135
|
-
const path = (0, paths_1.nicePath)(
|
|
136
|
-
const line = typescript_1.default.getLineAndCharacterOfPosition(
|
|
139
|
+
const locations = discovered.map(({ file, ranges: [{ pos }] }) => {
|
|
140
|
+
const path = (0, paths_1.nicePath)(file.fileName);
|
|
141
|
+
const line = typescript_1.default.getLineAndCharacterOfPosition(file, pos).line + 1;
|
|
137
142
|
return `${path}:${line}`;
|
|
138
143
|
});
|
|
139
144
|
logger.info(`The comments for ${symbol.name} are declared at:\n\t${locations.join("\n\t")}`);
|
|
@@ -147,15 +152,42 @@ function discoverSignatureComment(declaration, commentStyle) {
|
|
|
147
152
|
if (!node) {
|
|
148
153
|
return;
|
|
149
154
|
}
|
|
155
|
+
if (typescript_1.default.isJSDocSignature(node)) {
|
|
156
|
+
const comment = node.parent.parent;
|
|
157
|
+
(0, assert_1.ok)(typescript_1.default.isJSDoc(comment));
|
|
158
|
+
return {
|
|
159
|
+
file: node.getSourceFile(),
|
|
160
|
+
ranges: [
|
|
161
|
+
{
|
|
162
|
+
kind: typescript_1.default.SyntaxKind.MultiLineCommentTrivia,
|
|
163
|
+
pos: comment.pos,
|
|
164
|
+
end: comment.end,
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
jsDoc: undefined,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
150
170
|
const text = node.getSourceFile().text;
|
|
151
171
|
const comments = collectCommentRanges(typescript_1.default.getLeadingCommentRanges(text, node.pos));
|
|
152
172
|
comments.reverse();
|
|
153
173
|
const comment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
|
|
154
174
|
if (comment) {
|
|
155
|
-
return
|
|
175
|
+
return {
|
|
176
|
+
file: node.getSourceFile(),
|
|
177
|
+
ranges: comment,
|
|
178
|
+
jsDoc: findJsDocForComment(node, comment),
|
|
179
|
+
};
|
|
156
180
|
}
|
|
157
181
|
}
|
|
158
182
|
exports.discoverSignatureComment = discoverSignatureComment;
|
|
183
|
+
function findJsDocForComment(node, ranges) {
|
|
184
|
+
if (ranges[0].kind === typescript_1.default.SyntaxKind.MultiLineCommentTrivia) {
|
|
185
|
+
const jsDocs = typescript_1.default
|
|
186
|
+
.getJSDocCommentsAndTags(node)
|
|
187
|
+
.map((doc) => typescript_1.default.findAncestor(doc, typescript_1.default.isJSDoc));
|
|
188
|
+
return jsDocs.find((doc) => doc.pos === ranges[0].pos);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
159
191
|
/**
|
|
160
192
|
* Check whether the given module declaration is the topmost.
|
|
161
193
|
*
|
|
@@ -7,6 +7,6 @@ export interface CommentParserConfig {
|
|
|
7
7
|
inlineTags: Set<string>;
|
|
8
8
|
modifierTags: Set<string>;
|
|
9
9
|
}
|
|
10
|
-
export declare function getComment(symbol: ts.Symbol, kind: ReflectionKind, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle): Comment | undefined;
|
|
11
|
-
export declare function getSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle): Comment | undefined;
|
|
12
|
-
export declare function getJsDocComment(declaration: ts.JSDocPropertyLikeTag | ts.JSDocCallbackTag | ts.JSDocTypedefTag | ts.JSDocTemplateTag | ts.JSDocEnumTag, config: CommentParserConfig, logger: Logger): Comment | undefined;
|
|
10
|
+
export declare function getComment(symbol: ts.Symbol, kind: ReflectionKind, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle, checker: ts.TypeChecker): Comment | undefined;
|
|
11
|
+
export declare function getSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle, checker: ts.TypeChecker): Comment | undefined;
|
|
12
|
+
export declare function getJsDocComment(declaration: ts.JSDocPropertyLikeTag | ts.JSDocCallbackTag | ts.JSDocTypedefTag | ts.JSDocTemplateTag | ts.JSDocEnumTag, config: CommentParserConfig, logger: Logger, checker: ts.TypeChecker): Comment | undefined;
|
|
@@ -19,10 +19,10 @@ const jsDocCommentKinds = [
|
|
|
19
19
|
typescript_1.default.SyntaxKind.JSDocEnumTag,
|
|
20
20
|
];
|
|
21
21
|
const commentCache = new WeakMap();
|
|
22
|
-
function getCommentWithCache(discovered, config, logger) {
|
|
22
|
+
function getCommentWithCache(discovered, config, logger, checker) {
|
|
23
23
|
if (!discovered)
|
|
24
24
|
return;
|
|
25
|
-
const
|
|
25
|
+
const { file, ranges, jsDoc } = discovered;
|
|
26
26
|
const cache = commentCache.get(file) || new Map();
|
|
27
27
|
if (cache?.has(ranges[0].pos)) {
|
|
28
28
|
return cache.get(ranges[0].pos).clone();
|
|
@@ -30,7 +30,7 @@ function getCommentWithCache(discovered, config, logger) {
|
|
|
30
30
|
let comment;
|
|
31
31
|
switch (ranges[0].kind) {
|
|
32
32
|
case typescript_1.default.SyntaxKind.MultiLineCommentTrivia:
|
|
33
|
-
comment = (0, parser_1.parseComment)((0, blockLexer_1.lexBlockComment)(file.text, ranges[0].pos, ranges[0].end), config, file, logger);
|
|
33
|
+
comment = (0, parser_1.parseComment)((0, blockLexer_1.lexBlockComment)(file.text, ranges[0].pos, ranges[0].end, jsDoc, checker), config, file, logger);
|
|
34
34
|
break;
|
|
35
35
|
case typescript_1.default.SyntaxKind.SingleLineCommentTrivia:
|
|
36
36
|
comment = (0, parser_1.parseComment)((0, lineLexer_1.lexLineComments)(file.text, ranges), config, file, logger);
|
|
@@ -42,8 +42,8 @@ function getCommentWithCache(discovered, config, logger) {
|
|
|
42
42
|
commentCache.set(file, cache);
|
|
43
43
|
return comment.clone();
|
|
44
44
|
}
|
|
45
|
-
function getCommentImpl(commentSource, config, logger, moduleComment) {
|
|
46
|
-
const comment = getCommentWithCache(commentSource, config, logger);
|
|
45
|
+
function getCommentImpl(commentSource, config, logger, moduleComment, checker) {
|
|
46
|
+
const comment = getCommentWithCache(commentSource, config, logger, checker);
|
|
47
47
|
if (moduleComment && comment) {
|
|
48
48
|
// Module comment, make sure it is tagged with @packageDocumentation or @module.
|
|
49
49
|
// If it isn't then the comment applies to the first statement in the file, so throw it away.
|
|
@@ -61,35 +61,35 @@ function getCommentImpl(commentSource, config, logger, moduleComment) {
|
|
|
61
61
|
}
|
|
62
62
|
return comment;
|
|
63
63
|
}
|
|
64
|
-
function getComment(symbol, kind, config, logger, commentStyle) {
|
|
64
|
+
function getComment(symbol, kind, config, logger, commentStyle, checker) {
|
|
65
65
|
const declarations = symbol.declarations || [];
|
|
66
66
|
if (declarations.length &&
|
|
67
67
|
declarations.every((d) => jsDocCommentKinds.includes(d.kind))) {
|
|
68
|
-
return getJsDocComment(declarations[0], config, logger);
|
|
68
|
+
return getJsDocComment(declarations[0], config, logger, checker);
|
|
69
69
|
}
|
|
70
|
-
const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, declarations.some(typescript_1.default.isSourceFile));
|
|
70
|
+
const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, declarations.some(typescript_1.default.isSourceFile), checker);
|
|
71
71
|
if (!comment && kind === models_1.ReflectionKind.Property) {
|
|
72
|
-
return getConstructorParamPropertyComment(symbol, config, logger, commentStyle);
|
|
72
|
+
return getConstructorParamPropertyComment(symbol, config, logger, commentStyle, checker);
|
|
73
73
|
}
|
|
74
74
|
return comment;
|
|
75
75
|
}
|
|
76
76
|
exports.getComment = getComment;
|
|
77
|
-
function getConstructorParamPropertyComment(symbol, config, logger, commentStyle) {
|
|
77
|
+
function getConstructorParamPropertyComment(symbol, config, logger, commentStyle, checker) {
|
|
78
78
|
const decl = symbol.declarations?.find(typescript_1.default.isParameter);
|
|
79
79
|
if (!decl)
|
|
80
80
|
return;
|
|
81
81
|
const ctor = decl.parent;
|
|
82
|
-
const comment = getSignatureComment(ctor, config, logger, commentStyle);
|
|
82
|
+
const comment = getSignatureComment(ctor, config, logger, commentStyle, checker);
|
|
83
83
|
const paramTag = comment?.getIdentifiedTag(symbol.name, "@param");
|
|
84
84
|
if (paramTag) {
|
|
85
85
|
return new models_1.Comment(paramTag.content);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
function getSignatureComment(declaration, config, logger, commentStyle) {
|
|
89
|
-
return getCommentImpl((0, discovery_1.discoverSignatureComment)(declaration, commentStyle), config, logger, false);
|
|
88
|
+
function getSignatureComment(declaration, config, logger, commentStyle, checker) {
|
|
89
|
+
return getCommentImpl((0, discovery_1.discoverSignatureComment)(declaration, commentStyle), config, logger, false, checker);
|
|
90
90
|
}
|
|
91
91
|
exports.getSignatureComment = getSignatureComment;
|
|
92
|
-
function getJsDocComment(declaration, config, logger) {
|
|
92
|
+
function getJsDocComment(declaration, config, logger, checker) {
|
|
93
93
|
const file = declaration.getSourceFile();
|
|
94
94
|
// First, get the whole comment. We know we'll need all of it.
|
|
95
95
|
let parent = declaration.parent;
|
|
@@ -97,16 +97,17 @@ function getJsDocComment(declaration, config, logger) {
|
|
|
97
97
|
parent = parent.parent;
|
|
98
98
|
}
|
|
99
99
|
// Then parse it.
|
|
100
|
-
const comment = getCommentWithCache(
|
|
100
|
+
const comment = getCommentWithCache({
|
|
101
101
|
file,
|
|
102
|
-
[
|
|
102
|
+
ranges: [
|
|
103
103
|
{
|
|
104
104
|
kind: typescript_1.default.SyntaxKind.MultiLineCommentTrivia,
|
|
105
105
|
pos: parent.pos,
|
|
106
106
|
end: parent.end,
|
|
107
107
|
},
|
|
108
108
|
],
|
|
109
|
-
|
|
109
|
+
jsDoc: parent,
|
|
110
|
+
}, config, logger, checker);
|
|
110
111
|
// And pull out the tag we actually care about.
|
|
111
112
|
if (typescript_1.default.isJSDocEnumTag(declaration)) {
|
|
112
113
|
return new models_1.Comment(comment.getTag("@enum")?.content);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReflectionSymbolId } from "../../models";
|
|
1
2
|
export declare enum TokenSyntaxKind {
|
|
2
3
|
Text = "text",
|
|
3
4
|
NewLine = "new_line",
|
|
@@ -11,4 +12,5 @@ export interface Token {
|
|
|
11
12
|
kind: TokenSyntaxKind;
|
|
12
13
|
text: string;
|
|
13
14
|
pos: number;
|
|
15
|
+
linkTarget?: ReflectionSymbolId;
|
|
14
16
|
}
|
|
@@ -5,5 +5,5 @@ export type ExternalResolveResult = {
|
|
|
5
5
|
caption?: string;
|
|
6
6
|
};
|
|
7
7
|
export type ExternalSymbolResolver = (ref: DeclarationReference, refl: Reflection, part: Readonly<CommentDisplayPart> | undefined) => ExternalResolveResult | string | undefined;
|
|
8
|
-
export declare function resolveLinks(comment: Comment, reflection: Reflection, externalResolver: ExternalSymbolResolver): void;
|
|
9
|
-
export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver): CommentDisplayPart[];
|
|
8
|
+
export declare function resolveLinks(comment: Comment, reflection: Reflection, externalResolver: ExternalSymbolResolver, useTsResolution: boolean): void;
|
|
9
|
+
export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver, useTsResolution: boolean): CommentDisplayPart[];
|
|
@@ -9,40 +9,48 @@ const models_1 = require("../../models");
|
|
|
9
9
|
const declarationReference_1 = require("./declarationReference");
|
|
10
10
|
const declarationReferenceResolver_1 = require("./declarationReferenceResolver");
|
|
11
11
|
const urlPrefix = /^(http|ftp)s?:\/\//;
|
|
12
|
-
function resolveLinks(comment, reflection, externalResolver) {
|
|
13
|
-
comment.summary = resolvePartLinks(reflection, comment.summary, externalResolver);
|
|
12
|
+
function resolveLinks(comment, reflection, externalResolver, useTsResolution) {
|
|
13
|
+
comment.summary = resolvePartLinks(reflection, comment.summary, externalResolver, useTsResolution);
|
|
14
14
|
for (const tag of comment.blockTags) {
|
|
15
|
-
tag.content = resolvePartLinks(reflection, tag.content, externalResolver);
|
|
15
|
+
tag.content = resolvePartLinks(reflection, tag.content, externalResolver, useTsResolution);
|
|
16
16
|
}
|
|
17
17
|
if (reflection instanceof models_1.DeclarationReflection && reflection.readme) {
|
|
18
|
-
reflection.readme = resolvePartLinks(reflection, reflection.readme, externalResolver);
|
|
18
|
+
reflection.readme = resolvePartLinks(reflection, reflection.readme, externalResolver, useTsResolution);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.resolveLinks = resolveLinks;
|
|
22
|
-
function resolvePartLinks(reflection, parts, externalResolver) {
|
|
23
|
-
return parts.flatMap((part) => processPart(reflection, part, externalResolver));
|
|
22
|
+
function resolvePartLinks(reflection, parts, externalResolver, useTsResolution) {
|
|
23
|
+
return parts.flatMap((part) => processPart(reflection, part, externalResolver, useTsResolution));
|
|
24
24
|
}
|
|
25
25
|
exports.resolvePartLinks = resolvePartLinks;
|
|
26
|
-
function processPart(reflection, part, externalResolver) {
|
|
26
|
+
function processPart(reflection, part, externalResolver, useTsResolution) {
|
|
27
27
|
if (part.kind === "inline-tag") {
|
|
28
28
|
if (part.tag === "@link" ||
|
|
29
29
|
part.tag === "@linkcode" ||
|
|
30
30
|
part.tag === "@linkplain") {
|
|
31
|
-
return resolveLinkTag(reflection, part, externalResolver);
|
|
31
|
+
return resolveLinkTag(reflection, part, externalResolver, useTsResolution);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
return part;
|
|
35
35
|
}
|
|
36
|
-
function resolveLinkTag(reflection, part, externalResolver) {
|
|
36
|
+
function resolveLinkTag(reflection, part, externalResolver, useTsResolution) {
|
|
37
|
+
let defaultDisplayText = "";
|
|
37
38
|
let pos = 0;
|
|
38
39
|
const end = part.text.length;
|
|
39
40
|
while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
|
|
40
41
|
pos++;
|
|
41
42
|
}
|
|
42
|
-
// Try to parse one
|
|
43
|
-
const declRef = (0, declarationReference_1.parseDeclarationReference)(part.text, pos, end);
|
|
44
43
|
let target;
|
|
45
|
-
|
|
44
|
+
if (useTsResolution && part.target instanceof models_1.ReflectionSymbolId) {
|
|
45
|
+
target = reflection.project.getReflectionFromSymbolId(part.target);
|
|
46
|
+
if (target) {
|
|
47
|
+
pos = end;
|
|
48
|
+
defaultDisplayText =
|
|
49
|
+
part.text.replace(/^\s*[A-Z_$][\w$]*[ |]*/i, "") || target.name;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Try to parse a declaration reference if we didn't use the TS symbol for resolution
|
|
53
|
+
const declRef = !target && (0, declarationReference_1.parseDeclarationReference)(part.text, pos, end);
|
|
46
54
|
if (declRef) {
|
|
47
55
|
// Got one, great! Try to resolve the link
|
|
48
56
|
target = (0, declarationReferenceResolver_1.resolveDeclarationReference)(reflection, declRef[0]);
|
|
@@ -65,14 +73,11 @@ function resolveLinkTag(reflection, part, externalResolver) {
|
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
|
-
if (!target) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
pos = target.length;
|
|
74
|
-
defaultDisplayText = target;
|
|
75
|
-
}
|
|
76
|
+
if (!target && urlPrefix.test(part.text)) {
|
|
77
|
+
const wsIndex = part.text.search(/\s/);
|
|
78
|
+
target = wsIndex === -1 ? part.text : part.text.substring(0, wsIndex);
|
|
79
|
+
pos = target.length;
|
|
80
|
+
defaultDisplayText = target;
|
|
76
81
|
}
|
|
77
82
|
// Remaining text after an optional pipe is the link text, so advance
|
|
78
83
|
// until that's consumed.
|
|
@@ -299,9 +299,13 @@ function inlineTag(lexer, block, config, warning) {
|
|
|
299
299
|
else {
|
|
300
300
|
lexer.take(); // Close brace
|
|
301
301
|
}
|
|
302
|
-
|
|
302
|
+
const inlineTag = {
|
|
303
303
|
kind: "inline-tag",
|
|
304
304
|
tag: tagName.text,
|
|
305
305
|
text: content.join(""),
|
|
306
|
-
}
|
|
306
|
+
};
|
|
307
|
+
if (tagName.linkTarget) {
|
|
308
|
+
inlineTag.target = tagName.linkTarget;
|
|
309
|
+
}
|
|
310
|
+
block.push(inlineTag);
|
|
307
311
|
}
|
|
@@ -46,7 +46,7 @@ export declare class Context {
|
|
|
46
46
|
*/
|
|
47
47
|
constructor(converter: Converter, programs: readonly ts.Program[], project: ProjectReflection, scope?: Context["scope"]);
|
|
48
48
|
/** @internal */
|
|
49
|
-
get logger(): import("../utils
|
|
49
|
+
get logger(): import("../utils").Logger;
|
|
50
50
|
/**
|
|
51
51
|
* Return the compiler options.
|
|
52
52
|
*/
|
|
@@ -120,10 +120,10 @@ class Context {
|
|
|
120
120
|
if (exportSymbol &&
|
|
121
121
|
reflection.kind &
|
|
122
122
|
(index_1.ReflectionKind.SomeModule | index_1.ReflectionKind.Reference)) {
|
|
123
|
-
reflection.comment = (0, comments_1.getComment)(exportSymbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle);
|
|
123
|
+
reflection.comment = (0, comments_1.getComment)(exportSymbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.checker);
|
|
124
124
|
}
|
|
125
125
|
if (symbol && !reflection.comment) {
|
|
126
|
-
reflection.comment = (0, comments_1.getComment)(symbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle);
|
|
126
|
+
reflection.comment = (0, comments_1.getComment)(symbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.checker);
|
|
127
127
|
}
|
|
128
128
|
if (this.shouldBeStatic) {
|
|
129
129
|
reflection.setFlag(index_1.ReflectionFlag.Static);
|
|
@@ -32,6 +32,8 @@ export declare class Converter extends ChildableComponent<Application, Converter
|
|
|
32
32
|
validation: ValidationOptions;
|
|
33
33
|
/** @internal */
|
|
34
34
|
externalSymbolLinkMappings: Record<string, Record<string, string>>;
|
|
35
|
+
/** @internal */
|
|
36
|
+
useTsLinkResolution: boolean;
|
|
35
37
|
private _config?;
|
|
36
38
|
private _externalSymbolResolvers;
|
|
37
39
|
get config(): CommentParserConfig;
|
|
@@ -123,10 +123,10 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
|
|
|
123
123
|
}
|
|
124
124
|
resolveLinks(comment, owner) {
|
|
125
125
|
if (comment instanceof index_1.Comment) {
|
|
126
|
-
(0, linkResolver_1.resolveLinks)(comment, owner, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
|
|
126
|
+
(0, linkResolver_1.resolveLinks)(comment, owner, (ref, part, refl) => this.resolveExternalLink(ref, part, refl), this.useTsLinkResolution);
|
|
127
127
|
}
|
|
128
128
|
else {
|
|
129
|
-
return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
|
|
129
|
+
return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref, part, refl) => this.resolveExternalLink(ref, part, refl), this.useTsLinkResolution);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
@@ -166,7 +166,7 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
|
|
|
166
166
|
context.project.registerReflection(context.project, symbol);
|
|
167
167
|
context.project.comment =
|
|
168
168
|
symbol &&
|
|
169
|
-
(0, comments_1.getComment)(symbol, context.project.kind, this.config, this.application.logger, this.commentStyle);
|
|
169
|
+
(0, comments_1.getComment)(symbol, context.project.kind, this.config, this.application.logger, this.commentStyle, context.checker);
|
|
170
170
|
context.trigger(Converter_1.EVENT_CREATE_DECLARATION, context.project);
|
|
171
171
|
moduleContext = context;
|
|
172
172
|
}
|
|
@@ -334,6 +334,9 @@ __decorate([
|
|
|
334
334
|
__decorate([
|
|
335
335
|
(0, utils_1.BindOption)("externalSymbolLinkMappings")
|
|
336
336
|
], Converter.prototype, "externalSymbolLinkMappings", void 0);
|
|
337
|
+
__decorate([
|
|
338
|
+
(0, utils_1.BindOption)("useTsLinkResolution")
|
|
339
|
+
], Converter.prototype, "useTsLinkResolution", void 0);
|
|
337
340
|
Converter = Converter_1 = __decorate([
|
|
338
341
|
(0, component_1.Component)({
|
|
339
342
|
name: "converter",
|