From 8a7daa9b695001ee0a3d4ed8a2c81a322f2a57ea Mon Sep 17 00:00:00 2001 From: Deep Singhvi Date: Tue, 16 Apr 2024 07:43:14 -0400 Subject: [PATCH] (fix): make sure versioned tabbed config works (#3387) --- packages/cli/configuration/fern/definition/docs.yml | 1 + .../src/docs-yml/ParsedDocsConfiguration.ts | 1 + .../configuration/src/docs-yml/parseDocsConfiguration.ts | 1 + .../sdk/api/resources/docs/types/VersionFileConfig.ts | 1 + .../resources/docs/types/VersionFileConfig.ts | 9 ++++++++- .../remote-workspace-runner/src/publishDocs.ts | 1 + 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/cli/configuration/fern/definition/docs.yml b/packages/cli/configuration/fern/definition/docs.yml index c7eb0802c8b..a47ef619709 100644 --- a/packages/cli/configuration/fern/definition/docs.yml +++ b/packages/cli/configuration/fern/definition/docs.yml @@ -119,6 +119,7 @@ types: VersionFileConfig: properties: + tabs: optional> navigation: NavigationConfig NavigationConfig: diff --git a/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts b/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts index f1f3641a5c2..6f5156afa09 100644 --- a/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts +++ b/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts @@ -112,6 +112,7 @@ export interface VersionedDocsNavigation { } export interface VersionInfo { + tabs?: Record; navigation: UntabbedDocsNavigation | TabbedDocsNavigation; version: string; availability: VersionAvailability | undefined; diff --git a/packages/cli/configuration/src/docs-yml/parseDocsConfiguration.ts b/packages/cli/configuration/src/docs-yml/parseDocsConfiguration.ts index 5ab9787a234..438f57b455d 100644 --- a/packages/cli/configuration/src/docs-yml/parseDocsConfiguration.ts +++ b/packages/cli/configuration/src/docs-yml/parseDocsConfiguration.ts @@ -339,6 +339,7 @@ async function getNavigationConfiguration({ context }); versionedNavbars.push({ + tabs: result.tabs, version: version.displayName, navigation, availability: version.availability, diff --git a/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/VersionFileConfig.ts b/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/VersionFileConfig.ts index 7c15c4f10d3..b8622ddb7e2 100644 --- a/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/VersionFileConfig.ts +++ b/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/VersionFileConfig.ts @@ -5,5 +5,6 @@ import * as FernDocsConfig from "../../.."; export interface VersionFileConfig { + tabs?: Record; navigation: FernDocsConfig.NavigationConfig; } diff --git a/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/VersionFileConfig.ts b/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/VersionFileConfig.ts index 7dbc91662a7..07dc8cef562 100644 --- a/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/VersionFileConfig.ts +++ b/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/VersionFileConfig.ts @@ -10,11 +10,18 @@ export const VersionFileConfig: core.serialization.ObjectSchema< serializers.VersionFileConfig.Raw, FernDocsConfig.VersionFileConfig > = core.serialization.object({ - navigation: core.serialization.lazy(async () => (await import("../../..")).NavigationConfig), + tabs: core.serialization + .record( + core.serialization.lazy(async () => (await import("../../..")).TabId), + core.serialization.lazyObject(async () => (await import("../../..")).TabConfig) + ) + .optional(), + navigation: core.serialization.lazy(async () => (await import("../../..")).NavigationConfig) }); export declare namespace VersionFileConfig { interface Raw { + tabs?: Record | null; navigation: serializers.NavigationConfig.Raw; } } diff --git a/packages/cli/generation/remote-generation/remote-workspace-runner/src/publishDocs.ts b/packages/cli/generation/remote-generation/remote-workspace-runner/src/publishDocs.ts index 60a675ac130..88e46b7490f 100644 --- a/packages/cli/generation/remote-generation/remote-workspace-runner/src/publishDocs.ts +++ b/packages/cli/generation/remote-generation/remote-workspace-runner/src/publishDocs.ts @@ -448,6 +448,7 @@ async function convertNavigationConfig({ async (version): Promise => { const convertedNavigation = await convertUnversionedNavigationConfig({ navigationConfig: version.navigation, + tabs: version.tabs, parsedDocsConfig, organization, fernWorkspaces,