feat: async plugin creator functions (#6166)

This commit is contained in:
Sébastien Lorber 2021-12-22 19:10:49 +01:00 committed by GitHub
parent f8a670966e
commit b393700a61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 90 additions and 79 deletions

View file

@ -115,7 +115,7 @@ describe('sidebar', () => {
const siteDir = path.join(__dirname, '__fixtures__', 'simple-site');
const context = await loadContext(siteDir);
const sidebarPath = path.join(siteDir, 'wrong-sidebars.json');
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
sidebarPath,
@ -129,7 +129,7 @@ describe('sidebar', () => {
const context = await loadContext(siteDir);
await expect(async () => {
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
sidebarPath: 'wrong-path-sidebar.json',
@ -148,7 +148,7 @@ describe('sidebar', () => {
test('site with undefined sidebar', async () => {
const siteDir = path.join(__dirname, '__fixtures__', 'site-with-doc-label');
const context = await loadContext(siteDir);
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
sidebarPath: undefined,
@ -177,7 +177,7 @@ describe('sidebar', () => {
test('site with disabled sidebar', async () => {
const siteDir = path.join(__dirname, '__fixtures__', 'site-with-doc-label');
const context = await loadContext(siteDir);
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
sidebarPath: false,
@ -196,7 +196,7 @@ describe('empty/no docs website', () => {
test('no files in docs folder', async () => {
const context = await loadContext(siteDir);
await fs.ensureDir(path.join(siteDir, 'docs'));
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {}),
);
@ -209,14 +209,14 @@ describe('empty/no docs website', () => {
test('docs folder does not exist', async () => {
const context = await loadContext(siteDir);
expect(() =>
await expect(
pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: `path/doesnt/exist`,
}),
),
).toThrowError(
).rejects.toThrowError(
`The docs folder does not exist for version "current". A docs folder is expected to be found at ${
process.platform === 'win32'
? 'path\\doesnt\\exist'
@ -231,7 +231,7 @@ describe('simple website', () => {
const siteDir = path.join(__dirname, '__fixtures__', 'simple-site');
const context = await loadContext(siteDir);
const sidebarPath = path.join(siteDir, 'sidebars.json');
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',
@ -349,7 +349,7 @@ describe('versioned website', () => {
const context = await loadContext(siteDir);
const sidebarPath = path.join(siteDir, 'sidebars.json');
const routeBasePath = 'docs';
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
routeBasePath,
@ -494,7 +494,7 @@ describe('versioned website (community)', () => {
const sidebarPath = path.join(siteDir, 'community_sidebars.json');
const routeBasePath = 'community';
const pluginId = 'community';
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
id: 'community',
@ -607,7 +607,7 @@ describe('site with doc label', () => {
const siteDir = path.join(__dirname, '__fixtures__', 'site-with-doc-label');
const context = await loadContext(siteDir);
const sidebarPath = path.join(siteDir, 'sidebars.json');
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',
@ -645,7 +645,7 @@ describe('site with full autogenerated sidebar', () => {
'site-with-autogenerated-sidebar',
);
const context = await loadContext(siteDir);
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',
@ -697,7 +697,7 @@ describe('site with partial autogenerated sidebars', () => {
'site-with-autogenerated-sidebar',
);
const context = await loadContext(siteDir, {});
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',
@ -749,7 +749,7 @@ describe('site with partial autogenerated sidebars 2 (fix #4638)', () => {
'site-with-autogenerated-sidebar',
);
const context = await loadContext(siteDir, {});
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',
@ -783,7 +783,7 @@ describe('site with custom sidebar items generator', () => {
'site-with-autogenerated-sidebar',
);
const context = await loadContext(siteDir);
const plugin = pluginContentDocs(
const plugin = await pluginContentDocs(
context,
normalizePluginOptions(OptionsSchema, {
path: 'docs',

View file

@ -58,10 +58,10 @@ import type {PropTagsListPage} from '@docusaurus/plugin-content-docs';
import {createSidebarsUtils} from './sidebars/utils';
import {getCategoryGeneratedIndexMetadataList} from './categoryGeneratedIndex';
export default function pluginContentDocs(
export default async function pluginContentDocs(
context: LoadContext,
options: PluginOptions,
): Plugin<LoadedContent> {
): Promise<Plugin<LoadedContent>> {
const {siteDir, generatedFilesDir, baseUrl, siteConfig} = context;
const versionsMetadata = readVersionsMetadata({context, options});