From 08259abbf4b0725cd32d2200463b21675e432469 Mon Sep 17 00:00:00 2001 From: Dongsheng Zhao Date: Thu, 2 Jan 2025 19:04:42 +0800 Subject: [PATCH] fix: theme default types --- packages/docs-site/tsconfig.json | 1 + packages/theme-default/types.d.ts | 2 +- packages/vite/__tests__/real-world.svelte | 61 +++++++++++++++++------ 3 files changed, 48 insertions(+), 16 deletions(-) diff --git a/packages/docs-site/tsconfig.json b/packages/docs-site/tsconfig.json index 3088dfe1..094ef751 100644 --- a/packages/docs-site/tsconfig.json +++ b/packages/docs-site/tsconfig.json @@ -5,6 +5,7 @@ "module": "nodenext", "moduleResolution": "nodenext", "resolveJsonModule": true, + "allowImportingTsExtensions": true, "allowJs": true, "checkJs": true, "strict": true, diff --git a/packages/theme-default/types.d.ts b/packages/theme-default/types.d.ts index 240edb33..e7c256a8 100644 --- a/packages/theme-default/types.d.ts +++ b/packages/theme-default/types.d.ts @@ -21,7 +21,7 @@ declare module 'virtual:sveltepress/theme-default' { } export interface DefaultThemeOptions { - navbar: Array + navbar?: Array github?: string logo?: string sidebar?: Record diff --git a/packages/vite/__tests__/real-world.svelte b/packages/vite/__tests__/real-world.svelte index 675e8be9..201a8140 100644 --- a/packages/vite/__tests__/real-world.svelte +++ b/packages/vite/__tests__/real-world.svelte @@ -8,22 +8,53 @@
  • Config highlighter.twoslash to true
-
import { defaultTheme } from '@sveltepress/theme-default'
-import { sveltepress } from '@sveltepress/vite'
-import { defineConfig } from 'vite'
 
-export default defineConfig({
-  plugins: [
-    sveltepress({
-      theme: defaultTheme({
-        highlighter: { // [svp! ++]
-          twoslash: true // [svp! ++]
-        } // [svp! ++]
-      })
-    })
-  ]
-})
-
+
vite.config.(js|ts)
+ +
+
+
+
+
+
+
+ +
import { defaultTheme{#snippet floatingContent()}const defaultTheme: ThemeDefault{/snippet} } from '@sveltepress/theme-default'
+import { sveltepress{#snippet floatingContent()}const sveltepress: (options?: SveltepressVitePluginOptions) => PluginOption{/snippet} } from '@sveltepress/vite'
+import { defineConfig{#snippet floatingContent()}function defineConfig(config: UserConfig): UserConfig (+3 overloads)

Type helper to make it easier to use vite.config.ts +accepts a direct

+

UserConfig

+

object, or a function that returns it. +The function receives a

+

ConfigEnv

+

object.

{/snippet}
} from 'vite'
+ +export default defineConfig{#snippet floatingContent()}function defineConfig(config: UserConfig): UserConfig (+3 overloads)

Type helper to make it easier to use vite.config.ts +accepts a direct

+

UserConfig

+

object, or a function that returns it. +The function receives a

+

ConfigEnv

+

object.

{/snippet}
({
+ plugins{#snippet floatingContent()}UserConfig.plugins?: PluginOption[] | undefined

Array of vite plugins to use.

{/snippet}
: [
+ sveltepress{#snippet floatingContent()}function sveltepress(options?: SveltepressVitePluginOptions): PluginOption{/snippet}({ + theme{#snippet floatingContent()}SveltepressVitePluginOptions.theme?: ResolvedTheme | undefined{/snippet}: defaultTheme{#snippet floatingContent()}function defaultTheme(themeOptions?: DefaultThemeOptions | undefined): ResolvedTheme{/snippet}({ + highlighter{#snippet floatingContent()}
DefaultThemeOptions.highlighter?: {
+    languages?: BundledLanguage[];
+    themeLight?: string;
+    themeDark?: string;
+    twoslash?: boolean | CreateTwoslashSvelteOptions;
+} | undefined
{/snippet}
: {
+ twoslash{#snippet floatingContent()}twoslash?: boolean | CreateTwoslashSvelteOptions | undefined{/snippet}: true + } + }) + }) + ] +})
+
+ ts +
+ + +
+

Basic type annotation