diff --git a/bun.lockb b/bun.lockb index b602fbb..0b44cbc 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/internal/x/composables/useFetch.ts b/internal/x/composables/useFetch.ts index 3f3150c..4791bf1 100644 --- a/internal/x/composables/useFetch.ts +++ b/internal/x/composables/useFetch.ts @@ -2,6 +2,7 @@ import { ref, onMounted, onServerPrefetch, Ref } from 'vue' import { getCurrentInstance } from 'vue' import type { SSRContext } from './ssrContext' import { resolveSSRContext } from './ssrContext' +import { $fetch } from 'ofetch' // 全局数据缓存,用于 SSR 数据共享 const globalCache = new Map() @@ -99,7 +100,7 @@ export function useFetch( } // 执行请求 - const response = await fetch(fetchUrl, requestInit) + const response = await $fetch(fetchUrl, requestInit) if (!response.ok) { throw new Error(`HTTP ${response.status}: ${response.statusText}`) diff --git a/packages/client/auto-imports.d.ts b/packages/client/auto-imports.d.ts index 459aa18..5af6981 100644 --- a/packages/client/auto-imports.d.ts +++ b/packages/client/auto-imports.d.ts @@ -6,6 +6,7 @@ // biome-ignore lint: disable export {} declare global { + const $fetch: typeof import('ofetch')['$fetch'] const EffectScope: typeof import('vue')['EffectScope'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const clearSSRContext: typeof import('../../internal/x/composables/ssrContext')['clearSSRContext'] @@ -120,6 +121,7 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface GlobalComponents {} interface ComponentCustomProperties { + readonly $fetch: UnwrapRef readonly EffectScope: UnwrapRef readonly acceptHMRUpdate: UnwrapRef readonly clearSSRContext: UnwrapRef diff --git a/packages/client/components.d.ts b/packages/client/components.d.ts index cb7b8d4..dd1270d 100644 --- a/packages/client/components.d.ts +++ b/packages/client/components.d.ts @@ -9,7 +9,6 @@ export {} declare module 'vue' { export interface GlobalComponents { AiDemo: typeof import('./src/components/AiDemo/index.vue')['default'] - AXBubble: typeof import('ant-design-x-vue')['Bubble'] ClientOnly: typeof import('./../../internal/x/components/ClientOnly.vue')['default'] CookieDemo: typeof import('./src/components/CookieDemo.vue')['default'] DataFetch: typeof import('./src/components/DataFetch.vue')['default'] diff --git a/packages/client/package.json b/packages/client/package.json index ca92079..ad13702 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -21,6 +21,7 @@ "htmlparser2": "^10.0.0", "marked": "^16.3.0", "maz-ui": "^4.1.6", + "ofetch": "^1.4.1", "quill": "^2.0.3", "unplugin-auto-import": "^20.2.0", "unplugin-vue-router": "^0.15.0", diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts index 1949a3d..e285888 100644 --- a/packages/client/vite.config.ts +++ b/packages/client/vite.config.ts @@ -57,7 +57,13 @@ export default defineConfig({ dtsMode: "overwrite", resolvers: [MazModulesResolver()], ignore: ["**/_*/**/*"], - imports: ['vue', 'vue-router', 'pinia', VueRouterAutoImports, unheadVueComposablesImports], + imports: ['vue', 'vue-router', 'pinia', VueRouterAutoImports, unheadVueComposablesImports, + { + 'ofetch': [ + ['$fetch'] + ] + } + ], dirs: ['./src/composables/**/*', '../../internal/x/composables/**', "./src/store/**/*"], vueTemplate: true, }),