typedoc 0.24.8 → 0.25.1
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 +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -1
- package/dist/lib/application.d.ts +13 -11
- package/dist/lib/application.js +455 -347
- package/dist/lib/cli.js +29 -22
- package/dist/lib/converter/comments/blockLexer.js +10 -1
- package/dist/lib/converter/comments/declarationReference.js +2 -0
- package/dist/lib/converter/comments/declarationReferenceResolver.js +2 -1
- package/dist/lib/converter/comments/discovery.js +0 -1
- package/dist/lib/converter/comments/linkResolver.d.ts +5 -2
- package/dist/lib/converter/comments/linkResolver.js +21 -13
- package/dist/lib/converter/comments/parser.js +7 -12
- package/dist/lib/converter/comments/tagName.d.ts +8 -0
- package/dist/lib/converter/comments/tagName.js +62 -0
- package/dist/lib/converter/context.js +1 -2
- package/dist/lib/converter/converter.d.ts +12 -10
- package/dist/lib/converter/converter.js +440 -309
- package/dist/lib/converter/factories/index-signature.js +2 -1
- package/dist/lib/converter/factories/signature.js +3 -4
- package/dist/lib/converter/plugins/CategoryPlugin.d.ts +8 -8
- package/dist/lib/converter/plugins/CategoryPlugin.js +294 -200
- package/dist/lib/converter/plugins/CommentPlugin.d.ts +8 -5
- package/dist/lib/converter/plugins/CommentPlugin.js +434 -305
- package/dist/lib/converter/plugins/GroupPlugin.d.ts +3 -3
- package/dist/lib/converter/plugins/GroupPlugin.js +216 -145
- package/dist/lib/converter/plugins/ImplementsPlugin.js +240 -192
- package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +2 -0
- package/dist/lib/converter/plugins/InheritDocPlugin.js +202 -132
- package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +1 -1
- package/dist/lib/converter/plugins/LinkResolverPlugin.js +111 -43
- package/dist/lib/converter/plugins/PackagePlugin.d.ts +6 -4
- package/dist/lib/converter/plugins/PackagePlugin.js +192 -96
- package/dist/lib/converter/plugins/SourcePlugin.d.ts +6 -5
- package/dist/lib/converter/plugins/SourcePlugin.js +239 -132
- package/dist/lib/converter/plugins/TypePlugin.js +148 -101
- package/dist/lib/converter/symbols.js +16 -4
- package/dist/lib/converter/types.js +16 -1
- package/dist/lib/converter/utils/nodes.d.ts +2 -2
- package/dist/lib/converter/utils/repository.d.ts +15 -5
- package/dist/lib/converter/utils/repository.js +29 -12
- package/dist/lib/models/ReflectionGroup.d.ts +4 -2
- package/dist/lib/models/ReflectionGroup.js +3 -1
- package/dist/lib/models/comments/comment.d.ts +9 -2
- package/dist/lib/models/comments/comment.js +2 -0
- package/dist/lib/models/reflections/ReflectionSymbolId.js +1 -1
- package/dist/lib/models/reflections/abstract.d.ts +6 -1
- package/dist/lib/models/reflections/abstract.js +15 -2
- package/dist/lib/models/reflections/container.d.ts +3 -0
- package/dist/lib/models/reflections/container.js +4 -1
- package/dist/lib/models/reflections/declaration.d.ts +1 -0
- package/dist/lib/models/reflections/declaration.js +1 -0
- package/dist/lib/models/reflections/index.d.ts +1 -1
- package/dist/lib/models/reflections/kind.d.ts +4 -4
- package/dist/lib/models/reflections/kind.js +5 -7
- package/dist/lib/models/reflections/parameter.d.ts +3 -0
- package/dist/lib/models/reflections/parameter.js +3 -0
- package/dist/lib/models/reflections/project.d.ts +1 -0
- package/dist/lib/models/reflections/project.js +3 -1
- package/dist/lib/models/reflections/reference.d.ts +1 -0
- package/dist/lib/models/reflections/reference.js +1 -0
- package/dist/lib/models/reflections/signature.d.ts +3 -0
- package/dist/lib/models/reflections/signature.js +3 -0
- package/dist/lib/models/reflections/type-parameter.d.ts +3 -0
- package/dist/lib/models/reflections/type-parameter.js +3 -0
- package/dist/lib/models/sources/file.d.ts +2 -0
- package/dist/lib/models/sources/file.js +5 -0
- package/dist/lib/models/types.d.ts +24 -0
- package/dist/lib/models/types.js +21 -0
- package/dist/lib/output/components.d.ts +1 -0
- package/dist/lib/output/components.js +10 -3
- package/dist/lib/output/events.d.ts +2 -2
- package/dist/lib/output/index.d.ts +1 -1
- package/dist/lib/output/plugins/AssetsPlugin.d.ts +1 -1
- package/dist/lib/output/plugins/AssetsPlugin.js +112 -44
- package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts +2 -1
- package/dist/lib/output/plugins/JavascriptIndexPlugin.js +174 -99
- package/dist/lib/output/plugins/NavigationPlugin.d.ts +6 -0
- package/dist/lib/output/plugins/NavigationPlugin.js +109 -0
- package/dist/lib/output/plugins/index.d.ts +2 -1
- package/dist/lib/output/plugins/index.js +5 -3
- package/dist/lib/output/renderer.d.ts +10 -8
- package/dist/lib/output/renderer.js +317 -203
- package/dist/lib/output/theme.d.ts +1 -1
- package/dist/lib/output/theme.js +64 -18
- package/dist/lib/output/themes/MarkedPlugin.d.ts +4 -4
- package/dist/lib/output/themes/MarkedPlugin.js +224 -145
- package/dist/lib/output/themes/default/DefaultTheme.d.ts +14 -1
- package/dist/lib/output/themes/default/DefaultTheme.js +68 -0
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +43 -44
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +16 -11
- package/dist/lib/output/themes/default/layouts/default.js +2 -0
- package/dist/lib/output/themes/default/partials/comment.d.ts +1 -1
- package/dist/lib/output/themes/default/partials/comment.js +16 -14
- package/dist/lib/output/themes/default/partials/footer.js +1 -1
- package/dist/lib/output/themes/default/partials/header.js +2 -2
- package/dist/lib/output/themes/default/partials/icon.d.ts +4 -1
- package/dist/lib/output/themes/default/partials/icon.js +40 -38
- package/dist/lib/output/themes/default/partials/member.js +1 -1
- package/dist/lib/output/themes/default/partials/member.signature.body.js +2 -2
- package/dist/lib/output/themes/default/partials/navigation.d.ts +1 -1
- package/dist/lib/output/themes/default/partials/navigation.js +36 -56
- package/dist/lib/output/themes/default/partials/parameter.js +3 -3
- package/dist/lib/output/themes/lib.d.ts +1 -2
- package/dist/lib/output/themes/lib.js +1 -11
- package/dist/lib/serialization/schema.d.ts +37 -1
- package/dist/lib/utils/component.d.ts +1 -1
- package/dist/lib/utils/component.js +3 -1
- package/dist/lib/utils/entry-point.d.ts +0 -6
- package/dist/lib/utils/entry-point.js +27 -113
- package/dist/lib/utils/events.js +1 -1
- package/dist/lib/utils/general.js +1 -1
- package/dist/lib/utils/index.d.ts +1 -1
- package/dist/lib/utils/index.js +2 -1
- package/dist/lib/utils/jsx.d.ts +1 -1
- package/dist/lib/utils/jsx.js +24 -15
- package/dist/lib/utils/options/declaration.d.ts +5 -1
- package/dist/lib/utils/options/declaration.js +1 -1
- package/dist/lib/utils/options/index.d.ts +1 -1
- package/dist/lib/utils/options/index.js +2 -1
- package/dist/lib/utils/options/options.d.ts +22 -9
- package/dist/lib/utils/options/options.js +27 -15
- package/dist/lib/utils/options/readers/tsconfig.js +2 -7
- package/dist/lib/utils/options/readers/typedoc.d.ts +4 -2
- package/dist/lib/utils/options/readers/typedoc.js +33 -7
- package/dist/lib/utils/options/sources/typedoc.js +25 -4
- package/dist/lib/utils/options/tsdoc-defaults.d.ts +1 -1
- package/dist/lib/utils/options/tsdoc-defaults.js +4 -0
- package/dist/lib/utils/package-manifest.d.ts +0 -25
- package/dist/lib/utils/package-manifest.js +7 -148
- package/dist/lib/utils/perf.d.ts +1 -1
- package/dist/lib/utils/perf.js +36 -31
- package/dist/lib/utils/sort.js +0 -1
- package/dist/lib/validation/links.js +10 -2
- package/package.json +12 -12
- package/static/main.js +4 -3
- package/static/style.css +26 -10
- package/tsdoc.json +16 -0
|
@@ -40,7 +40,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
|
|
|
40
40
|
context.memberSignatures(item))) : item.type ? (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
|
|
41
41
|
utils_1.JSX.createElement("li", { class: "tsd-parameter" },
|
|
42
42
|
utils_1.JSX.createElement("h5", null,
|
|
43
|
-
|
|
43
|
+
context.reflectionFlags(item),
|
|
44
44
|
!!item.flags.isRest && utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "..."),
|
|
45
45
|
utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
|
|
46
46
|
utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" },
|
|
@@ -54,7 +54,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
|
|
|
54
54
|
item.getSignature && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
|
|
55
55
|
utils_1.JSX.createElement("li", { class: "tsd-parameter" },
|
|
56
56
|
utils_1.JSX.createElement("h5", null,
|
|
57
|
-
|
|
57
|
+
context.reflectionFlags(item.getSignature),
|
|
58
58
|
utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "get "),
|
|
59
59
|
utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
|
|
60
60
|
utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "(): "),
|
|
@@ -64,7 +64,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
|
|
|
64
64
|
item.setSignature && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
|
|
65
65
|
utils_1.JSX.createElement("li", { class: "tsd-parameter" },
|
|
66
66
|
utils_1.JSX.createElement("h5", null,
|
|
67
|
-
|
|
67
|
+
context.reflectionFlags(item.setSignature),
|
|
68
68
|
utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "set "),
|
|
69
69
|
utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
|
|
70
70
|
utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "("),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DefaultThemeRenderContext } from "..";
|
|
2
|
-
import {
|
|
2
|
+
import { Reflection, TypeParameterReflection } from "../../models";
|
|
3
3
|
import { JSX } from "../../utils";
|
|
4
4
|
export declare function stringify(data: unknown): string;
|
|
5
5
|
export declare function getDisplayName(refl: Reflection): string;
|
|
@@ -15,7 +15,6 @@ export declare function getKindClass(refl: Reflection): string;
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function wbr(str: string): (string | JSX.Element)[];
|
|
17
17
|
export declare function join<T>(joiner: JSX.Children, list: readonly T[], cb: (x: T) => JSX.Children): JSX.Element;
|
|
18
|
-
export declare function renderFlags(flags: ReflectionFlags, comment: Comment | undefined): JSX.Element;
|
|
19
18
|
export declare function classNames(names: Record<string, boolean | null | undefined>, extraCss?: string): string | undefined;
|
|
20
19
|
export declare function hasTypeParameters(reflection: Reflection): reflection is Reflection & {
|
|
21
20
|
typeParameters: TypeParameterReflection[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.renderName = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.
|
|
3
|
+
exports.renderName = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.join = exports.wbr = exports.getKindClass = exports.toStyleClass = exports.getDisplayName = exports.stringify = void 0;
|
|
4
4
|
const models_1 = require("../../models");
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
6
|
function stringify(data) {
|
|
@@ -62,16 +62,6 @@ function join(joiner, list, cb) {
|
|
|
62
62
|
return utils_1.JSX.createElement(utils_1.JSX.Fragment, null, result);
|
|
63
63
|
}
|
|
64
64
|
exports.join = join;
|
|
65
|
-
function renderFlags(flags, comment) {
|
|
66
|
-
const allFlags = [...flags];
|
|
67
|
-
if (comment) {
|
|
68
|
-
allFlags.push(...Array.from(comment.modifierTags, (tag) => tag.replace(/@([a-z])/, (x) => x[1].toUpperCase())));
|
|
69
|
-
}
|
|
70
|
-
return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, allFlags.map((item) => (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
|
|
71
|
-
utils_1.JSX.createElement("code", { class: "tsd-tag ts-flag" + item }, item),
|
|
72
|
-
" ")))));
|
|
73
|
-
}
|
|
74
|
-
exports.renderFlags = renderFlags;
|
|
75
65
|
function classNames(names, extraCss) {
|
|
76
66
|
const css = Object.keys(names)
|
|
77
67
|
.filter((key) => names[key])
|
|
@@ -57,9 +57,11 @@ export interface ReflectionGroup extends S<M.ReflectionGroup, "title" | "categor
|
|
|
57
57
|
export interface ReflectionCategory extends S<M.ReflectionCategory, "title"> {
|
|
58
58
|
children?: M.ReflectionCategory["children"][number]["id"][];
|
|
59
59
|
}
|
|
60
|
+
/** @category Reflections */
|
|
60
61
|
export type SomeReflection = {
|
|
61
62
|
[K in keyof M.ReflectionVariant]: ModelToObject<M.ReflectionVariant[K]>;
|
|
62
63
|
}[keyof M.ReflectionVariant];
|
|
64
|
+
/** @category Reflections */
|
|
63
65
|
export interface ReferenceReflection extends Omit<DeclarationReflection, "variant">, S<M.ReferenceReflection, "variant"> {
|
|
64
66
|
/**
|
|
65
67
|
* -1 if the reference refers to a symbol that does not exist in the documentation.
|
|
@@ -67,25 +69,34 @@ export interface ReferenceReflection extends Omit<DeclarationReflection, "varian
|
|
|
67
69
|
*/
|
|
68
70
|
target: number;
|
|
69
71
|
}
|
|
72
|
+
/** @category Reflections */
|
|
70
73
|
export interface SignatureReflection extends Omit<Reflection, "variant">, S<M.SignatureReflection, "variant" | "sources" | "parameters" | "type" | "overwrites" | "inheritedFrom" | "implementationOf"> {
|
|
71
74
|
typeParameter?: ModelToObject<M.SignatureReflection["typeParameters"]>;
|
|
72
75
|
}
|
|
76
|
+
/** @category Reflections */
|
|
73
77
|
export interface ParameterReflection extends Omit<Reflection, "variant">, S<M.ParameterReflection, "variant" | "type" | "defaultValue"> {
|
|
74
78
|
variant: "param";
|
|
75
79
|
}
|
|
80
|
+
/** @category Reflections */
|
|
76
81
|
export interface DeclarationReflection extends Omit<ContainerReflection, "variant">, S<M.DeclarationReflection, "variant" | "packageVersion" | "sources" | "relevanceBoost" | "type" | "signatures" | "indexSignature" | "defaultValue" | "overwrites" | "inheritedFrom" | "implementationOf" | "extendedTypes" | "extendedBy" | "implementedTypes" | "implementedBy" | "getSignature" | "setSignature" | "typeParameters"> {
|
|
77
82
|
}
|
|
83
|
+
/** @category Reflections */
|
|
78
84
|
export interface TypeParameterReflection extends Omit<Reflection, "variant">, S<M.TypeParameterReflection, "variant" | "type" | "default" | "varianceModifier"> {
|
|
79
85
|
}
|
|
86
|
+
/** @category Reflections */
|
|
80
87
|
export interface ProjectReflection extends Omit<ContainerReflection, "variant">, S<M.ProjectReflection, "variant" | "packageName" | "packageVersion" | "readme"> {
|
|
81
88
|
symbolIdMap: Record<number, ReflectionSymbolId>;
|
|
82
89
|
}
|
|
90
|
+
/** @category Reflections */
|
|
83
91
|
export interface ContainerReflection extends Reflection, S<M.ContainerReflection, "children" | "groups" | "categories"> {
|
|
84
92
|
}
|
|
93
|
+
/** @category Reflections */
|
|
85
94
|
export interface Reflection extends S<M.Reflection, "id" | "variant" | "name" | "kind" | "comment"> {
|
|
86
95
|
flags: ReflectionFlags;
|
|
87
96
|
}
|
|
97
|
+
/** @category Types */
|
|
88
98
|
export type SomeType = ModelToObject<M.SomeType>;
|
|
99
|
+
/** @category Types */
|
|
89
100
|
export type TypeKindMap = {
|
|
90
101
|
array: ArrayType;
|
|
91
102
|
conditional: ConditionalType;
|
|
@@ -108,51 +119,72 @@ export type TypeKindMap = {
|
|
|
108
119
|
union: UnionType;
|
|
109
120
|
unknown: UnknownType;
|
|
110
121
|
};
|
|
122
|
+
/** @category Types */
|
|
111
123
|
export interface ArrayType extends Type, S<M.ArrayType, "type" | "elementType"> {
|
|
112
124
|
}
|
|
125
|
+
/** @category Types */
|
|
113
126
|
export interface ConditionalType extends Type, S<M.ConditionalType, "type" | "checkType" | "extendsType" | "trueType" | "falseType"> {
|
|
114
127
|
}
|
|
128
|
+
/** @category Types */
|
|
115
129
|
export interface IndexedAccessType extends Type, S<M.IndexedAccessType, "type" | "indexType" | "objectType"> {
|
|
116
130
|
}
|
|
131
|
+
/** @category Types */
|
|
117
132
|
export interface InferredType extends Type, S<M.InferredType, "type" | "name" | "constraint"> {
|
|
118
133
|
}
|
|
134
|
+
/** @category Types */
|
|
119
135
|
export interface IntersectionType extends Type, S<M.IntersectionType, "type" | "types"> {
|
|
120
136
|
}
|
|
137
|
+
/** @category Types */
|
|
121
138
|
export interface IntrinsicType extends Type, S<M.IntrinsicType, "type" | "name"> {
|
|
122
139
|
}
|
|
140
|
+
/** @category Types */
|
|
123
141
|
export interface OptionalType extends Type, S<M.OptionalType, "type" | "elementType"> {
|
|
124
142
|
}
|
|
143
|
+
/** @category Types */
|
|
125
144
|
export interface PredicateType extends Type, S<M.PredicateType, "type" | "name" | "asserts" | "targetType"> {
|
|
126
145
|
}
|
|
146
|
+
/** @category Types */
|
|
127
147
|
export interface QueryType extends Type, S<M.QueryType, "type" | "queryType"> {
|
|
128
148
|
}
|
|
149
|
+
/** @category Types */
|
|
129
150
|
export interface ReferenceType extends Type, S<M.ReferenceType, "type" | "name" | "typeArguments" | "package" | "externalUrl"> {
|
|
130
151
|
target: number | ReflectionSymbolId;
|
|
131
152
|
qualifiedName?: string;
|
|
132
153
|
refersToTypeParameter?: boolean;
|
|
133
154
|
}
|
|
155
|
+
/** @category Types */
|
|
134
156
|
export interface ReflectionType extends Type, S<M.ReflectionType, "type" | "declaration"> {
|
|
135
157
|
}
|
|
158
|
+
/** @category Types */
|
|
136
159
|
export interface RestType extends Type, S<M.RestType, "type" | "elementType"> {
|
|
137
160
|
}
|
|
161
|
+
/** @category Types */
|
|
138
162
|
export interface LiteralType extends Type, S<M.LiteralType, "type" | "value"> {
|
|
139
163
|
}
|
|
164
|
+
/** @category Types */
|
|
140
165
|
export interface TupleType extends Type, S<M.TupleType, "type"> {
|
|
141
166
|
elements?: ModelToObject<M.TupleType["elements"]>;
|
|
142
167
|
}
|
|
168
|
+
/** @category Types */
|
|
143
169
|
export interface NamedTupleMemberType extends Type, S<M.NamedTupleMember, "type" | "name" | "isOptional" | "element"> {
|
|
144
170
|
}
|
|
171
|
+
/** @category Types */
|
|
145
172
|
export interface TemplateLiteralType extends Type, S<M.TemplateLiteralType, "type" | "head"> {
|
|
146
173
|
tail: [SomeType, string][];
|
|
147
174
|
}
|
|
175
|
+
/** @category Types */
|
|
148
176
|
export interface MappedType extends Type, S<M.MappedType, "type" | "parameter" | "parameterType" | "templateType" | "readonlyModifier" | "optionalModifier" | "nameType"> {
|
|
149
177
|
}
|
|
178
|
+
/** @category Types */
|
|
150
179
|
export interface TypeOperatorType extends Type, S<M.TypeOperatorType, "type" | "operator" | "target"> {
|
|
151
180
|
}
|
|
181
|
+
/** @category Types */
|
|
152
182
|
export interface UnionType extends Type, S<M.UnionType, "type" | "types"> {
|
|
153
183
|
}
|
|
184
|
+
/** @category Types */
|
|
154
185
|
export interface UnknownType extends Type, S<M.UnknownType, "type" | "name"> {
|
|
155
186
|
}
|
|
187
|
+
/** @category Types */
|
|
156
188
|
export interface Type {
|
|
157
189
|
}
|
|
158
190
|
type BoolKeys<T> = {
|
|
@@ -160,13 +192,16 @@ type BoolKeys<T> = {
|
|
|
160
192
|
}[keyof T];
|
|
161
193
|
export interface ReflectionFlags extends Partial<S<M.ReflectionFlags, BoolKeys<M.ReflectionFlags>>> {
|
|
162
194
|
}
|
|
195
|
+
/** @category Comments */
|
|
163
196
|
export interface Comment extends Partial<S<M.Comment, "blockTags" | "label">> {
|
|
164
197
|
summary: CommentDisplayPart[];
|
|
165
|
-
modifierTags?: string[];
|
|
198
|
+
modifierTags?: `@${string}`[];
|
|
166
199
|
}
|
|
200
|
+
/** @category Comments */
|
|
167
201
|
export interface CommentTag extends S<M.CommentTag, "tag" | "name"> {
|
|
168
202
|
content: CommentDisplayPart[];
|
|
169
203
|
}
|
|
204
|
+
/** @category Comments */
|
|
170
205
|
export type CommentDisplayPart = {
|
|
171
206
|
kind: "text";
|
|
172
207
|
text: string;
|
|
@@ -177,6 +212,7 @@ export type CommentDisplayPart = {
|
|
|
177
212
|
/**
|
|
178
213
|
* If `target` is a number, it is a reflection ID. If a string, it is a URL.
|
|
179
214
|
* `target` will only be set for `@link`, `@linkcode`, and `@linkplain` tags.
|
|
215
|
+
* @category Comments
|
|
180
216
|
*/
|
|
181
217
|
export interface InlineTagDisplayPart {
|
|
182
218
|
kind: "inline-tag";
|
|
@@ -23,7 +23,7 @@ export interface ComponentOptions {
|
|
|
23
23
|
/**
|
|
24
24
|
* Class decorator applied to Components
|
|
25
25
|
*/
|
|
26
|
-
export declare function Component(options: ComponentOptions):
|
|
26
|
+
export declare function Component(options: ComponentOptions): (target: Function, _context: unknown) => void;
|
|
27
27
|
export declare class ComponentEvent extends Event {
|
|
28
28
|
owner: ComponentHost;
|
|
29
29
|
component: AbstractComponent<ComponentHost>;
|
|
@@ -7,7 +7,9 @@ const childMappings = [];
|
|
|
7
7
|
* Class decorator applied to Components
|
|
8
8
|
*/
|
|
9
9
|
function Component(options) {
|
|
10
|
-
|
|
10
|
+
// _context is ClassDecoratorContext, but that then requires a public constructor
|
|
11
|
+
// which Application does not have.
|
|
12
|
+
return (target, _context) => {
|
|
11
13
|
const proto = target.prototype;
|
|
12
14
|
if (!(proto instanceof AbstractComponent)) {
|
|
13
15
|
throw new Error("The `Component` decorator can only be used with a subclass of `AbstractComponent`.");
|
|
@@ -21,12 +21,6 @@ export declare const EntryPointStrategy: {
|
|
|
21
21
|
* use the merge option to produce final output.
|
|
22
22
|
*/
|
|
23
23
|
readonly Packages: "packages";
|
|
24
|
-
/**
|
|
25
|
-
* Will be removed in 0.25, this was called packages mode in 0.24.
|
|
26
|
-
* Alternative resolution mode useful for monorepos. With this mode, TypeDoc will look for a package.json
|
|
27
|
-
* and tsconfig.json under each provided entry point. The `main` field of each package will be documented.
|
|
28
|
-
*/
|
|
29
|
-
readonly LegacyPackages: "legacy-packages";
|
|
30
24
|
/**
|
|
31
25
|
* Merges multiple previously generated output from TypeDoc's --json output together into a single project.
|
|
32
26
|
*/
|
|
@@ -30,7 +30,6 @@ exports.getExpandedEntryPointsForPaths = exports.getPackageDirectories = exports
|
|
|
30
30
|
const path_1 = require("path");
|
|
31
31
|
const typescript_1 = __importDefault(require("typescript"));
|
|
32
32
|
const FS = __importStar(require("fs"));
|
|
33
|
-
const Path = __importStar(require("path"));
|
|
34
33
|
const package_manifest_1 = require("./package-manifest");
|
|
35
34
|
const paths_1 = require("./paths");
|
|
36
35
|
const fs_1 = require("./fs");
|
|
@@ -55,12 +54,6 @@ exports.EntryPointStrategy = {
|
|
|
55
54
|
* use the merge option to produce final output.
|
|
56
55
|
*/
|
|
57
56
|
Packages: "packages",
|
|
58
|
-
/**
|
|
59
|
-
* Will be removed in 0.25, this was called packages mode in 0.24.
|
|
60
|
-
* Alternative resolution mode useful for monorepos. With this mode, TypeDoc will look for a package.json
|
|
61
|
-
* and tsconfig.json under each provided entry point. The `main` field of each package will be documented.
|
|
62
|
-
*/
|
|
63
|
-
LegacyPackages: "legacy-packages",
|
|
64
57
|
/**
|
|
65
58
|
* Merges multiple previously generated output from TypeDoc's --json output together into a single project.
|
|
66
59
|
*/
|
|
@@ -72,6 +65,7 @@ function getEntryPoints(logger, options) {
|
|
|
72
65
|
return [];
|
|
73
66
|
}
|
|
74
67
|
const entryPoints = options.getValue("entryPoints");
|
|
68
|
+
const exclude = options.getValue("exclude");
|
|
75
69
|
// May be set explicitly to be an empty array to only include a readme for a package
|
|
76
70
|
// See #2264
|
|
77
71
|
if (entryPoints.length === 0) {
|
|
@@ -81,13 +75,10 @@ function getEntryPoints(logger, options) {
|
|
|
81
75
|
const strategy = options.getValue("entryPointStrategy");
|
|
82
76
|
switch (strategy) {
|
|
83
77
|
case exports.EntryPointStrategy.Resolve:
|
|
84
|
-
result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, logger), options);
|
|
78
|
+
result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options);
|
|
85
79
|
break;
|
|
86
80
|
case exports.EntryPointStrategy.Expand:
|
|
87
|
-
result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, logger), options);
|
|
88
|
-
break;
|
|
89
|
-
case exports.EntryPointStrategy.LegacyPackages:
|
|
90
|
-
result = getEntryPointsForLegacyPackages(logger, entryPoints, options);
|
|
81
|
+
result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options);
|
|
91
82
|
break;
|
|
92
83
|
case exports.EntryPointStrategy.Merge:
|
|
93
84
|
case exports.EntryPointStrategy.Packages:
|
|
@@ -106,18 +97,23 @@ exports.getEntryPoints = getEntryPoints;
|
|
|
106
97
|
function getWatchEntryPoints(logger, options, program) {
|
|
107
98
|
let result;
|
|
108
99
|
const entryPoints = options.getValue("entryPoints");
|
|
109
|
-
|
|
100
|
+
const exclude = options.getValue("exclude");
|
|
101
|
+
const strategy = options.getValue("entryPointStrategy");
|
|
102
|
+
switch (strategy) {
|
|
110
103
|
case exports.EntryPointStrategy.Resolve:
|
|
111
|
-
result = getEntryPointsForPaths(logger, entryPoints, options, [
|
|
112
|
-
program,
|
|
113
|
-
]);
|
|
104
|
+
result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options, [program]);
|
|
114
105
|
break;
|
|
115
106
|
case exports.EntryPointStrategy.Expand:
|
|
116
|
-
result = getExpandedEntryPointsForPaths(logger, entryPoints, options, [program]);
|
|
107
|
+
result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options, [program]);
|
|
117
108
|
break;
|
|
118
109
|
case exports.EntryPointStrategy.Packages:
|
|
119
110
|
logger.error("Watch mode does not support 'packages' style entry points.");
|
|
120
111
|
break;
|
|
112
|
+
case exports.EntryPointStrategy.Merge:
|
|
113
|
+
logger.error("Watch mode does not support 'merge' style entry points.");
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
(0, general_1.assertNever)(strategy);
|
|
121
117
|
}
|
|
122
118
|
if (result && result.length === 0) {
|
|
123
119
|
logger.error("Unable to find any entry points.");
|
|
@@ -141,7 +137,7 @@ function getModuleName(fileName, baseDir) {
|
|
|
141
137
|
* Converts a list of file-oriented paths in to DocumentationEntryPoints for conversion.
|
|
142
138
|
* This is in contrast with the package-oriented `getEntryPointsForPackages`
|
|
143
139
|
*/
|
|
144
|
-
function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(logger, options)) {
|
|
140
|
+
function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(inputFiles, logger, options)) {
|
|
145
141
|
const baseDir = options.getValue("basePath") || (0, fs_1.deriveRootDir)(inputFiles);
|
|
146
142
|
const entryPoints = [];
|
|
147
143
|
entryLoop: for (const fileOrDir of inputFiles.map(paths_1.normalizePath)) {
|
|
@@ -169,32 +165,39 @@ function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntry
|
|
|
169
165
|
}
|
|
170
166
|
return entryPoints;
|
|
171
167
|
}
|
|
172
|
-
function getExpandedEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(logger, options)) {
|
|
168
|
+
function getExpandedEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(inputFiles, logger, options)) {
|
|
173
169
|
return getEntryPointsForPaths(logger, expandInputFiles(logger, inputFiles, options), options, programs);
|
|
174
170
|
}
|
|
175
171
|
exports.getExpandedEntryPointsForPaths = getExpandedEntryPointsForPaths;
|
|
176
|
-
function expandGlobs(inputFiles, logger) {
|
|
172
|
+
function expandGlobs(inputFiles, exclude, logger) {
|
|
173
|
+
const excludePatterns = (0, paths_1.createMinimatch)(exclude);
|
|
177
174
|
const base = (0, fs_1.deriveRootDir)(inputFiles);
|
|
178
175
|
const result = inputFiles.flatMap((entry) => {
|
|
179
176
|
const result = (0, fs_1.glob)(entry, base, {
|
|
180
177
|
includeDirectories: true,
|
|
181
178
|
followSymlinks: true,
|
|
182
179
|
});
|
|
180
|
+
const filtered = result.filter((file) => file === entry || !(0, paths_1.matchesAny)(excludePatterns, file));
|
|
183
181
|
if (result.length === 0) {
|
|
184
182
|
logger.warn(`The entrypoint glob ${(0, paths_1.nicePath)(entry)} did not match any files.`);
|
|
185
183
|
}
|
|
184
|
+
else if (filtered.length === 0) {
|
|
185
|
+
logger.warn(`The entrypoint glob ${(0, paths_1.nicePath)(entry)} did not match any files after applying exclude patterns.`);
|
|
186
|
+
}
|
|
186
187
|
else {
|
|
187
|
-
logger.verbose(`Expanded ${(0, paths_1.nicePath)(entry)} to:\n\t${
|
|
188
|
+
logger.verbose(`Expanded ${(0, paths_1.nicePath)(entry)} to:\n\t${filtered
|
|
188
189
|
.map(paths_1.nicePath)
|
|
189
190
|
.join("\n\t")}`);
|
|
190
191
|
}
|
|
191
|
-
return
|
|
192
|
+
return filtered;
|
|
192
193
|
});
|
|
193
194
|
return result;
|
|
194
195
|
}
|
|
195
|
-
function getEntryPrograms(logger, options) {
|
|
196
|
+
function getEntryPrograms(inputFiles, logger, options) {
|
|
196
197
|
const rootProgram = typescript_1.default.createProgram({
|
|
197
|
-
rootNames: options.getFileNames()
|
|
198
|
+
rootNames: options.getFileNames().length
|
|
199
|
+
? options.getFileNames()
|
|
200
|
+
: inputFiles,
|
|
198
201
|
options: options.getCompilerOptions(),
|
|
199
202
|
projectReferences: options.getProjectReferences(),
|
|
200
203
|
});
|
|
@@ -268,92 +271,3 @@ function expandInputFiles(logger, entryPoints, options) {
|
|
|
268
271
|
});
|
|
269
272
|
return files;
|
|
270
273
|
}
|
|
271
|
-
/**
|
|
272
|
-
* Expand the provided packages configuration paths, determining the entry points
|
|
273
|
-
* and creating the ts.Programs for any which are found.
|
|
274
|
-
* @param logger
|
|
275
|
-
* @param packageGlobPaths
|
|
276
|
-
* @returns The information about the discovered programs, undefined if an error occurs.
|
|
277
|
-
*/
|
|
278
|
-
function getEntryPointsForLegacyPackages(logger, packageGlobPaths, options) {
|
|
279
|
-
const results = [];
|
|
280
|
-
for (const packagePath of getPackageDirectories(logger, options, packageGlobPaths)) {
|
|
281
|
-
const packageJsonPath = (0, path_1.resolve)(packagePath, "package.json");
|
|
282
|
-
const packageJson = (0, package_manifest_1.loadPackageManifest)(logger, packageJsonPath);
|
|
283
|
-
const includeVersion = options.getValue("includeVersion");
|
|
284
|
-
const typedocPackageConfig = packageJson
|
|
285
|
-
? (0, package_manifest_1.extractTypedocConfigFromPackageManifest)(logger, packageJsonPath)
|
|
286
|
-
: undefined;
|
|
287
|
-
if (packageJson === undefined) {
|
|
288
|
-
logger.error(`Could not load package manifest ${packageJsonPath}`);
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
const packageEntryPoint = (0, package_manifest_1.getTsEntryPointForPackage)(logger, packageJsonPath, packageJson);
|
|
292
|
-
if (packageEntryPoint === undefined) {
|
|
293
|
-
logger.error(`Could not determine TS entry point for package ${packageJsonPath}`);
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
if (packageEntryPoint === package_manifest_1.ignorePackage) {
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
const tsconfigFile = typescript_1.default.findConfigFile(packageEntryPoint, typescript_1.default.sys.fileExists, typedocPackageConfig?.tsconfig);
|
|
300
|
-
if (tsconfigFile === undefined) {
|
|
301
|
-
logger.error(`Could not determine tsconfig.json for source file ${packageEntryPoint} (it must be on an ancestor path)`);
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
// Consider deduplicating this with similar code in src/lib/utils/options/readers/tsconfig.ts
|
|
305
|
-
let fatalError = false;
|
|
306
|
-
const parsedCommandLine = typescript_1.default.getParsedCommandLineOfConfigFile(tsconfigFile, {}, {
|
|
307
|
-
...typescript_1.default.sys,
|
|
308
|
-
onUnRecoverableConfigFileDiagnostic: (error) => {
|
|
309
|
-
logger.diagnostic(error);
|
|
310
|
-
fatalError = true;
|
|
311
|
-
},
|
|
312
|
-
});
|
|
313
|
-
if (!parsedCommandLine) {
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
logger.diagnostics(parsedCommandLine.errors);
|
|
317
|
-
if (fatalError) {
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
320
|
-
const program = typescript_1.default.createProgram({
|
|
321
|
-
rootNames: parsedCommandLine.fileNames,
|
|
322
|
-
options: options.fixCompilerOptions(parsedCommandLine.options),
|
|
323
|
-
projectReferences: parsedCommandLine.projectReferences,
|
|
324
|
-
});
|
|
325
|
-
const sourceFile = program.getSourceFile(packageEntryPoint);
|
|
326
|
-
if (sourceFile === undefined) {
|
|
327
|
-
logger.error(`Entry point "${packageEntryPoint}" does not appear to be built by/included in the tsconfig found at "${tsconfigFile}"`);
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
const packageName = packageJson["name"];
|
|
331
|
-
results.push({
|
|
332
|
-
displayName: typedocPackageConfig?.displayName ?? packageName,
|
|
333
|
-
version: includeVersion
|
|
334
|
-
? packageJson["version"]?.replace(/^v/, "")
|
|
335
|
-
: void 0,
|
|
336
|
-
readmeFile: discoverReadmeFile(logger, Path.join(packageJsonPath, ".."), typedocPackageConfig?.readmeFile),
|
|
337
|
-
program,
|
|
338
|
-
sourceFile,
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
return results;
|
|
342
|
-
}
|
|
343
|
-
function discoverReadmeFile(logger, packageDir, userReadme) {
|
|
344
|
-
if (userReadme?.endsWith("none")) {
|
|
345
|
-
return;
|
|
346
|
-
}
|
|
347
|
-
if (userReadme) {
|
|
348
|
-
if (!FS.existsSync(Path.join(packageDir, userReadme))) {
|
|
349
|
-
logger.warn(`Failed to find ${userReadme} in ${(0, paths_1.nicePath)(packageDir)}`);
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
return Path.resolve(Path.join(packageDir, userReadme));
|
|
353
|
-
}
|
|
354
|
-
for (const file of FS.readdirSync(packageDir)) {
|
|
355
|
-
if (file.toLowerCase() === "readme.md") {
|
|
356
|
-
return Path.resolve(Path.join(packageDir, file));
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
package/dist/lib/utils/events.js
CHANGED
|
@@ -66,7 +66,7 @@ function eventsApi(iteratee, events, name, callback, options) {
|
|
|
66
66
|
*/
|
|
67
67
|
function onApi(events, name, callback, options) {
|
|
68
68
|
if (callback) {
|
|
69
|
-
const handlers = (events[name]
|
|
69
|
+
const handlers = (events[name] ||= []);
|
|
70
70
|
const context = options.context, ctx = options.ctx, listening = options.listening, priority = options.priority;
|
|
71
71
|
if (listening) {
|
|
72
72
|
listening.count++;
|
|
@@ -42,7 +42,7 @@ const loadSymbol = Symbol.for("typedoc_loads");
|
|
|
42
42
|
const pathSymbol = Symbol.for("typedoc_paths");
|
|
43
43
|
const g = globalThis;
|
|
44
44
|
g[loadSymbol] = (g[loadSymbol] || 0) + 1;
|
|
45
|
-
g[pathSymbol]
|
|
45
|
+
g[pathSymbol] ||= [];
|
|
46
46
|
// transform /abs/path/to/typedoc/dist/lib/utils/general -> /abs/path/to/typedoc
|
|
47
47
|
g[pathSymbol].push((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(__dirname))));
|
|
48
48
|
function hasBeenLoadedMultipleTimes() {
|
|
@@ -8,7 +8,7 @@ export type { IfInternal, NeverIfInternal, Chars } from "./general";
|
|
|
8
8
|
export { assertNever } from "./general";
|
|
9
9
|
export { ConsoleLogger, Logger, LogLevel } from "./loggers";
|
|
10
10
|
export { DefaultMap } from "./map";
|
|
11
|
-
export { ArgumentsReader, BindOption, CommentStyle, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, } from "./options";
|
|
11
|
+
export { ArgumentsReader, Option, BindOption, CommentStyle, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, } from "./options";
|
|
12
12
|
export type { ArrayDeclarationOption, BooleanDeclarationOption, DeclarationOption, DeclarationOptionBase, DeclarationOptionToOptionType, KeyToDeclaration, MapDeclarationOption, MixedDeclarationOption, NumberDeclarationOption, FlagsDeclarationOption, ObjectDeclarationOption, OptionsReader, StringDeclarationOption, TypeDocOptionMap, TypeDocOptions, ValidationOptions, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, JsDocCompatibility, } from "./options";
|
|
13
13
|
export { loadPlugins } from "./plugins";
|
|
14
14
|
export { getSortFunction } from "./sort";
|
package/dist/lib/utils/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.MinimalSourceFile = exports.Validation = exports.renderElement = exports.Raw = exports.Fragment = exports.JSX = exports.EventHooks = exports.getSortFunction = exports.loadPlugins = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.DefaultMap = exports.LogLevel = exports.Logger = exports.ConsoleLogger = exports.assertNever = exports.normalizePath = exports.discoverPackageJson = exports.discoverInParentDir = exports.writeFileSync = exports.writeFile = exports.readFile = exports.getCommonDirectory = exports.copySync = exports.copy = exports.isFile = exports.EventDispatcher = exports.Event = exports.Component = exports.ChildableComponent = exports.AbstractComponent = exports.unique = exports.removeIfPresent = exports.removeIf = exports.partition = exports.insertPrioritySorted = exports.filterMap = void 0;
|
|
29
|
+
exports.MinimalSourceFile = exports.Validation = exports.renderElement = exports.Raw = exports.Fragment = exports.JSX = exports.EventHooks = exports.getSortFunction = exports.loadPlugins = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.CommentStyle = exports.BindOption = exports.Option = exports.ArgumentsReader = exports.DefaultMap = exports.LogLevel = exports.Logger = exports.ConsoleLogger = exports.assertNever = exports.normalizePath = exports.discoverPackageJson = exports.discoverInParentDir = exports.writeFileSync = exports.writeFile = exports.readFile = exports.getCommonDirectory = exports.copySync = exports.copy = exports.isFile = exports.EventDispatcher = exports.Event = exports.Component = exports.ChildableComponent = exports.AbstractComponent = exports.unique = exports.removeIfPresent = exports.removeIf = exports.partition = exports.insertPrioritySorted = exports.filterMap = void 0;
|
|
30
30
|
var array_1 = require("./array");
|
|
31
31
|
Object.defineProperty(exports, "filterMap", { enumerable: true, get: function () { return array_1.filterMap; } });
|
|
32
32
|
Object.defineProperty(exports, "insertPrioritySorted", { enumerable: true, get: function () { return array_1.insertPrioritySorted; } });
|
|
@@ -64,6 +64,7 @@ var map_1 = require("./map");
|
|
|
64
64
|
Object.defineProperty(exports, "DefaultMap", { enumerable: true, get: function () { return map_1.DefaultMap; } });
|
|
65
65
|
var options_1 = require("./options");
|
|
66
66
|
Object.defineProperty(exports, "ArgumentsReader", { enumerable: true, get: function () { return options_1.ArgumentsReader; } });
|
|
67
|
+
Object.defineProperty(exports, "Option", { enumerable: true, get: function () { return options_1.Option; } });
|
|
67
68
|
Object.defineProperty(exports, "BindOption", { enumerable: true, get: function () { return options_1.BindOption; } });
|
|
68
69
|
Object.defineProperty(exports, "CommentStyle", { enumerable: true, get: function () { return options_1.CommentStyle; } });
|
|
69
70
|
Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return options_1.Options; } });
|
package/dist/lib/utils/jsx.d.ts
CHANGED
|
@@ -44,4 +44,4 @@ export declare function createElement(tag: typeof Fragment | string | JsxCompone
|
|
|
44
44
|
export declare function setRenderSettings(options: {
|
|
45
45
|
pretty: boolean;
|
|
46
46
|
}): void;
|
|
47
|
-
export declare
|
|
47
|
+
export declare const renderElement: (element: JsxElement | null | undefined) => string;
|
package/dist/lib/utils/jsx.js
CHANGED
|
@@ -76,8 +76,8 @@ function setRenderSettings(options) {
|
|
|
76
76
|
renderPretty = options.pretty;
|
|
77
77
|
}
|
|
78
78
|
exports.setRenderSettings = setRenderSettings;
|
|
79
|
-
function renderElement(element) {
|
|
80
|
-
if (!element) {
|
|
79
|
+
const renderElement = function renderElement(element) {
|
|
80
|
+
if (!element || typeof element === "boolean") {
|
|
81
81
|
return "";
|
|
82
82
|
}
|
|
83
83
|
const { tag, props, children } = element;
|
|
@@ -87,22 +87,27 @@ function renderElement(element) {
|
|
|
87
87
|
}
|
|
88
88
|
return renderElement(tag(Object.assign({ children }, props)));
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
let html = "";
|
|
91
91
|
if (tag !== jsx_elements_1.JsxFragment) {
|
|
92
92
|
if (blockElements.has(tag) && renderPretty) {
|
|
93
|
-
html
|
|
93
|
+
html += "\n";
|
|
94
94
|
}
|
|
95
|
-
html
|
|
95
|
+
html += "<";
|
|
96
|
+
html += tag;
|
|
96
97
|
for (const [key, val] of Object.entries(props ?? {})) {
|
|
97
98
|
if (val == null)
|
|
98
99
|
continue;
|
|
99
100
|
if (typeof val == "boolean") {
|
|
100
101
|
if (val) {
|
|
101
|
-
html
|
|
102
|
+
html += " ";
|
|
103
|
+
html += key;
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
else {
|
|
105
|
-
html
|
|
107
|
+
html += " ";
|
|
108
|
+
html += key;
|
|
109
|
+
html += "=";
|
|
110
|
+
html += JSON.stringify(val);
|
|
106
111
|
}
|
|
107
112
|
}
|
|
108
113
|
}
|
|
@@ -110,23 +115,27 @@ function renderElement(element) {
|
|
|
110
115
|
if (children.length) {
|
|
111
116
|
hasChildren = true;
|
|
112
117
|
if (tag !== jsx_elements_1.JsxFragment)
|
|
113
|
-
html
|
|
118
|
+
html += ">";
|
|
114
119
|
renderChildren(children);
|
|
115
120
|
}
|
|
116
121
|
if (tag !== jsx_elements_1.JsxFragment) {
|
|
117
122
|
if (!hasChildren) {
|
|
118
123
|
if (voidElements.has(tag)) {
|
|
119
|
-
html
|
|
124
|
+
html += "/>";
|
|
120
125
|
}
|
|
121
126
|
else {
|
|
122
|
-
html
|
|
127
|
+
html += "></";
|
|
128
|
+
html += tag;
|
|
129
|
+
html += ">";
|
|
123
130
|
}
|
|
124
131
|
}
|
|
125
132
|
else {
|
|
126
|
-
html
|
|
133
|
+
html += "</";
|
|
134
|
+
html += tag;
|
|
135
|
+
html += ">";
|
|
127
136
|
}
|
|
128
137
|
}
|
|
129
|
-
return html
|
|
138
|
+
return html;
|
|
130
139
|
function renderChildren(children) {
|
|
131
140
|
for (const child of children) {
|
|
132
141
|
if (!child)
|
|
@@ -135,12 +144,12 @@ function renderElement(element) {
|
|
|
135
144
|
renderChildren(child);
|
|
136
145
|
}
|
|
137
146
|
else if (typeof child === "string" || typeof child === "number") {
|
|
138
|
-
html
|
|
147
|
+
html += (0, html_1.escapeHtml)(child.toString());
|
|
139
148
|
}
|
|
140
149
|
else {
|
|
141
|
-
html
|
|
150
|
+
html += renderElement(child);
|
|
142
151
|
}
|
|
143
152
|
}
|
|
144
153
|
}
|
|
145
|
-
}
|
|
154
|
+
};
|
|
146
155
|
exports.renderElement = renderElement;
|