support site config .extends being an array

pull/3137/head
Jacob Hummer 2 years ago committed by GitHub
parent a31e143afa
commit 77a349954c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -84,10 +84,18 @@ const sidebar: DefaultTheme.Config['sidebar'] = {
}
export default defineConfig({
extends: [
{
title: 'Example',
description: 'An example app using VitePress.',
description: 'An example app using VitePress.'
},
{
themeConfig: {
sidebar
}
}
],
themeConfig: {
sidebar,
search: {
provider: 'local',
options: {

@ -180,8 +180,13 @@ async function resolveConfigExtends(
): Promise<UserConfig> {
const resolved = await (typeof config === 'function' ? config() : config)
if (resolved.extends) {
const base = await resolveConfigExtends(resolved.extends)
return mergeConfig(base, resolved)
const extendsRaw = [resolved.extends].flat()
const manyBases = await Promise.all(
extendsRaw.map((config) => resolveConfigExtends(config))
)
// or reduceRight() depending on which side gets priority
const singleBase = manyBases.reduce((prev, curr) => mergeConfig(prev, curr))
return mergeConfig(singleBase, resolved)
}
return resolved
}

@ -56,7 +56,7 @@ export interface TransformPageContext {
export interface UserConfig<ThemeConfig = any>
extends LocaleSpecificConfig<ThemeConfig> {
extends?: RawConfigExports<ThemeConfig>
extends?: RawConfigExports<ThemeConfig> | RawConfigExports<ThemeConfig>[]
base?: string
srcDir?: string

Loading…
Cancel
Save