Skip to content

Commit c6fef0a

Browse files
authored
Ensure docPath corresponds to docsPluginId when pluginId is passed (#277)
1 parent add3e20 commit c6fef0a

File tree

1 file changed

+19
-8
lines changed
  • packages/docusaurus-plugin-openapi-docs/src

1 file changed

+19
-8
lines changed

packages/docusaurus-plugin-openapi-docs/src/index.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,20 @@ export default function pluginOpenAPIDocs(
7979
const presets: any = siteConfig.presets;
8080
const plugins: any = siteConfig.plugins;
8181
const presetsPlugins = presets.concat(plugins);
82-
const docData: any = getDocsPluginConfig(presetsPlugins, docsPluginId);
83-
const docRouteBasePath = docData ? docData.routeBasePath : undefined;
84-
const docPath = docData ? (docData.path ? docData.path : "docs") : undefined;
82+
let docData: any = getDocsPluginConfig(presetsPlugins, docsPluginId);
83+
let docRouteBasePath = docData ? docData.routeBasePath : undefined;
84+
let docPath = docData ? (docData.path ? docData.path : "docs") : undefined;
8585

86-
async function generateApiDocs(options: APIOptions) {
86+
async function generateApiDocs(options: APIOptions, pluginId: any) {
8787
let { specPath, outputDir, template, sidebarOptions } = options;
8888

89+
// Override docPath if pluginId provided
90+
if (pluginId) {
91+
docData = getDocsPluginConfig(presetsPlugins, pluginId);
92+
docRouteBasePath = docData ? docData.routeBasePath : undefined;
93+
docPath = docData ? (docData.path ? docData.path : "docs") : undefined;
94+
}
95+
8996
const contentPath = isURL(specPath)
9097
? specPath
9198
: path.resolve(siteDir, specPath);
@@ -414,10 +421,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
414421
const pluginId = options.pluginId;
415422
const pluginInstances = getPluginInstances(plugins);
416423
let targetConfig: any;
424+
let targetDocsPluginId: any;
417425
if (pluginId) {
418426
try {
419427
const pluginConfig = getPluginConfig(plugins, pluginId);
420428
targetConfig = pluginConfig.config ?? {};
429+
targetDocsPluginId = pluginConfig.docsPluginId;
421430
} catch {
422431
console.error(
423432
chalk.red(`OpenAPI docs plugin ID '${pluginId}' not found.`)
@@ -445,15 +454,15 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
445454
);
446455
} else {
447456
Object.keys(targetConfig).forEach(async function (key) {
448-
await generateApiDocs(targetConfig[key]);
457+
await generateApiDocs(targetConfig[key], targetDocsPluginId);
449458
});
450459
}
451460
} else if (!targetConfig[id]) {
452461
console.error(
453462
chalk.red(`ID '${id}' does not exist in OpenAPI docs config.`)
454463
);
455464
} else {
456-
await generateApiDocs(targetConfig[id]);
465+
await generateApiDocs(targetConfig[id], targetDocsPluginId);
457466
}
458467
});
459468

@@ -470,10 +479,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
470479
const pluginId = options.pluginId;
471480
const pluginInstances = getPluginInstances(plugins);
472481
let targetConfig: any;
482+
let targetDocsPluginId: any;
473483
if (pluginId) {
474484
try {
475485
const pluginConfig = getPluginConfig(plugins, pluginId);
476486
targetConfig = pluginConfig.config ?? {};
487+
targetDocsPluginId = pluginConfig.docsPluginId;
477488
} catch {
478489
console.error(
479490
chalk.red(`OpenAPI docs plugin ID '${pluginId}' not found.`)
@@ -526,7 +537,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
526537
...parentConfig,
527538
...versionConfig,
528539
};
529-
await generateApiDocs(mergedConfig);
540+
await generateApiDocs(mergedConfig, targetDocsPluginId);
530541
});
531542
}
532543
} else if (!versions[versionId]) {
@@ -542,7 +553,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
542553
...versionConfig,
543554
};
544555
await generateVersions(mergedVersions, parentConfig.outputDir);
545-
await generateApiDocs(mergedConfig);
556+
await generateApiDocs(mergedConfig, targetDocsPluginId);
546557
}
547558
});
548559

0 commit comments

Comments
 (0)