Skip to content

Commit 7babee4

Browse files
authored
improvement(api-markdown-documenter): Make uriRoot parameter optional (#23634)
The `uriRoot` parameter is an option for changing the root path for all generated links. A sensible default for this parameter is nothing (i.e. `""`). This PR makes the parameter optional, and simplifies a couple of test cases by omitting that value.
1 parent 61736c5 commit 7babee4

10 files changed

+26
-16
lines changed

tools/api-markdown-documenter/CHANGELOG.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
- The default suite structure has been updated as follows:
66
- `Package` and `Namespace` items now generate documents _inside_ of their own folder hierarchy, yielding documents named "index".
77
- `Enum` and `TypeAlias` items now generate their own documents (rather than being rendered as sections under their parent document).
8+
- `uriRoot` parameter is now optional.
9+
The default value is "".
810

911
### ⚠ BREAKING CHANGES
1012

@@ -32,7 +34,7 @@ const apiModel = await loadModel({
3234

3335
const transformConfig = {
3436
apiModel,
35-
uriRoot: ".",
37+
uriRoot: "",
3638
};
3739

3840
await MarkdownRenderer.renderApiModel(transformConfig, {}, { outputDirectoryPath });
@@ -53,7 +55,7 @@ const apiModel = await loadModel({
5355

5456
await MarkdownRenderer.renderApiModel({
5557
apiModel,
56-
uriRoot: ".",
58+
uriRoot: "", // Note: this parameter is also now optional. Default: "".
5759
outputDirectoryPath,
5860
});
5961
```

tools/api-markdown-documenter/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ const apiModel = await loadModel({
8686

8787
await MarkdownRenderer.renderApiModel({
8888
apiModel,
89-
uriRoot: ".",
9089
outputDirectoryPath,
9190
});
9291
```

tools/api-markdown-documenter/api-report/api-markdown-documenter.alpha.api.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,19 @@ export { ApiItemKind }
5252
export interface ApiItemTransformationConfiguration extends ApiItemTransformationConfigurationBase, DocumentationSuiteConfiguration, Required<LoggingConfiguration> {
5353
readonly defaultSectionLayout: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
5454
readonly transformations: ApiItemTransformations;
55+
readonly uriRoot: string;
5556
}
5657

5758
// @public @sealed
5859
export interface ApiItemTransformationConfigurationBase {
5960
readonly apiModel: ApiModel;
60-
readonly uriRoot: string;
6161
}
6262

6363
// @public
6464
export interface ApiItemTransformationOptions extends ApiItemTransformationConfigurationBase, DocumentationSuiteOptions, LoggingConfiguration {
6565
readonly defaultSectionLayout?: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
6666
readonly transformations?: Partial<ApiItemTransformations>;
67+
readonly uriRoot?: string | undefined;
6768
}
6869

6970
// @public

tools/api-markdown-documenter/api-report/api-markdown-documenter.beta.api.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,19 @@ export { ApiItemKind }
5252
export interface ApiItemTransformationConfiguration extends ApiItemTransformationConfigurationBase, DocumentationSuiteConfiguration, Required<LoggingConfiguration> {
5353
readonly defaultSectionLayout: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
5454
readonly transformations: ApiItemTransformations;
55+
readonly uriRoot: string;
5556
}
5657

5758
// @public @sealed
5859
export interface ApiItemTransformationConfigurationBase {
5960
readonly apiModel: ApiModel;
60-
readonly uriRoot: string;
6161
}
6262

6363
// @public
6464
export interface ApiItemTransformationOptions extends ApiItemTransformationConfigurationBase, DocumentationSuiteOptions, LoggingConfiguration {
6565
readonly defaultSectionLayout?: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
6666
readonly transformations?: Partial<ApiItemTransformations>;
67+
readonly uriRoot?: string | undefined;
6768
}
6869

6970
// @public

tools/api-markdown-documenter/api-report/api-markdown-documenter.public.api.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,19 @@ export { ApiItemKind }
5252
export interface ApiItemTransformationConfiguration extends ApiItemTransformationConfigurationBase, DocumentationSuiteConfiguration, Required<LoggingConfiguration> {
5353
readonly defaultSectionLayout: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
5454
readonly transformations: ApiItemTransformations;
55+
readonly uriRoot: string;
5556
}
5657

5758
// @public @sealed
5859
export interface ApiItemTransformationConfigurationBase {
5960
readonly apiModel: ApiModel;
60-
readonly uriRoot: string;
6161
}
6262

6363
// @public
6464
export interface ApiItemTransformationOptions extends ApiItemTransformationConfigurationBase, DocumentationSuiteOptions, LoggingConfiguration {
6565
readonly defaultSectionLayout?: (apiItem: ApiItem, childSections: SectionNode[] | undefined, config: ApiItemTransformationConfiguration) => SectionNode[];
6666
readonly transformations?: Partial<ApiItemTransformations>;
67+
readonly uriRoot?: string | undefined;
6768
}
6869

6970
// @public

tools/api-markdown-documenter/examples/RenderHtml.ts

-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,5 @@ const apiModel = await loadModel({
1515

1616
await HtmlRenderer.renderApiModel({
1717
apiModel,
18-
uriRoot: ".",
1918
outputDirectoryPath,
2019
});

tools/api-markdown-documenter/examples/RenderMarkdown.ts

-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,5 @@ const apiModel = await loadModel({
1515

1616
await MarkdownRenderer.renderApiModel({
1717
apiModel,
18-
uriRoot: ".",
1918
outputDirectoryPath,
2019
});

tools/api-markdown-documenter/src/api-item-transforms/configuration/Configuration.ts

+16-6
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,6 @@ export interface ApiItemTransformationConfigurationBase {
4040
* If you need to generate a model from API reports on disk, see {@link loadModel}.
4141
*/
4242
readonly apiModel: ApiModel;
43-
44-
/**
45-
* Default root URI used when generating content links.
46-
*/
47-
readonly uriRoot: string;
4843
}
4944

5045
/**
@@ -60,6 +55,14 @@ export interface ApiItemTransformationConfiguration
6055
extends ApiItemTransformationConfigurationBase,
6156
DocumentationSuiteConfiguration,
6257
Required<LoggingConfiguration> {
58+
/**
59+
* Default root URI used when generating content links.
60+
*
61+
* @example
62+
* For a generated document `foo/bar` and a `uriRoot` of `docs`, any generated links to that document would be `docs/foo/bar`.
63+
*/
64+
readonly uriRoot: string;
65+
6366
/**
6467
* {@inheritDoc ApiItemTransformations}
6568
*/
@@ -92,6 +95,13 @@ export interface ApiItemTransformationOptions
9295
extends ApiItemTransformationConfigurationBase,
9396
DocumentationSuiteOptions,
9497
LoggingConfiguration {
98+
/**
99+
* {@inheritDoc ApiItemTransformationConfiguration.uriRoot}
100+
*
101+
* @defaultValue ""
102+
*/
103+
readonly uriRoot?: string | undefined;
104+
95105
/**
96106
* Optional overrides for the default transformations.
97107
*/
@@ -124,7 +134,7 @@ export function getApiItemTransformationConfigurationWithDefaults(
124134
...documentationSuiteOptions,
125135
transformations,
126136
apiModel: options.apiModel,
127-
uriRoot: options.uriRoot,
137+
uriRoot: options.uriRoot ?? "",
128138
logger,
129139
defaultSectionLayout,
130140
};

tools/api-markdown-documenter/src/test/HtmlEndToEnd.test.ts

-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ const testConfigs = new Map<
7373
[
7474
"deep-config",
7575
{
76-
uriRoot: "",
7776
hierarchy: HierarchyConfigurations.deep,
7877
},
7978
],

tools/api-markdown-documenter/src/test/MarkdownEndToEnd.test.ts

-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ const testConfigs = new Map<
7373
[
7474
"deep-config",
7575
{
76-
uriRoot: "",
7776
hierarchy: HierarchyConfigurations.deep,
7877
},
7978
],

0 commit comments

Comments
 (0)