Просмотр исходного кода

📦 build(deps): 降级zod依赖版本至3.24.2

- 将zod从3.25.64降级到3.24.2以解决兼容性问题
- 更新相关依赖@hono/zod-openapi和@hono/zod-validator以匹配zod版本

✨ feat(client): 添加axiosFetch工具函数

- 实现基于axios的fetch兼容函数
- 支持请求方法、URL、 headers和请求体的处理
- 统一错误处理并返回标准Response对象

♻️ refactor(server): 统一zod导入路径

- 将zod导入从直接引用改为从@hono/zod-openapi导入
- 修改文件包括silver-talents-admin/get.ts、silver-talents/search.ts和user-preferences/my-preference.ts
yourname 7 месяцев назад
Родитель
Сommit
7bdf0e4e2a

+ 18 - 15
pnpm-lock.yaml

@@ -31,10 +31,10 @@ importers:
         version: 0.19.1(hono@4.7.11)(miniflare@4.20250604.0)(wrangler@4.19.2)
       '@hono/zod-openapi':
         specifier: ^0.19.7
-        version: 0.19.8(hono@4.7.11)(zod@3.25.64)
+        version: 0.19.8(hono@4.7.11)(zod@3.24.2)
       '@hono/zod-validator':
         specifier: ^0.4.3
-        version: 0.4.3(hono@4.7.11)(zod@3.25.64)
+        version: 0.4.3(hono@4.7.11)(zod@3.24.2)
       '@tanstack/react-query':
         specifier: ^5.77.2
         version: 5.80.7(react@19.1.0)
@@ -116,6 +116,9 @@ importers:
       uuid:
         specifier: ^11.1.0
         version: 11.1.0
+      zod:
+        specifier: ^3.24.2
+        version: 3.24.2
     devDependencies:
       '@types/debug':
         specifier: ^4.1.12
@@ -2929,8 +2932,8 @@ packages:
   zod@3.22.3:
     resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
 
-  zod@3.25.64:
-    resolution: {integrity: sha512-hbP9FpSZf7pkS7hRVUrOjhwKJNyampPgtXKc3AN6DsWtoHsg2Sb4SQaS4Tcay380zSwd2VPo9G9180emBACp5g==}
+  zod@3.24.2:
+    resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
 
 snapshots:
 
@@ -3003,10 +3006,10 @@ snapshots:
       resize-observer-polyfill: 1.5.1
       throttle-debounce: 5.0.2
 
-  '@asteasolutions/zod-to-openapi@7.3.3(zod@3.25.64)':
+  '@asteasolutions/zod-to-openapi@7.3.3(zod@3.24.2)':
     dependencies:
       openapi3-ts: 4.4.0
-      zod: 3.25.64
+      zod: 3.24.2
 
   '@babel/code-frame@7.27.1':
     dependencies:
@@ -3469,22 +3472,22 @@ snapshots:
       miniflare: 4.20250604.0
       wrangler: 4.19.2
 
-  '@hono/zod-openapi@0.19.8(hono@4.7.11)(zod@3.25.64)':
+  '@hono/zod-openapi@0.19.8(hono@4.7.11)(zod@3.24.2)':
     dependencies:
-      '@asteasolutions/zod-to-openapi': 7.3.3(zod@3.25.64)
-      '@hono/zod-validator': 0.7.0(hono@4.7.11)(zod@3.25.64)
+      '@asteasolutions/zod-to-openapi': 7.3.3(zod@3.24.2)
+      '@hono/zod-validator': 0.7.0(hono@4.7.11)(zod@3.24.2)
       hono: 4.7.11
-      zod: 3.25.64
+      zod: 3.24.2
 
-  '@hono/zod-validator@0.4.3(hono@4.7.11)(zod@3.25.64)':
+  '@hono/zod-validator@0.4.3(hono@4.7.11)(zod@3.24.2)':
     dependencies:
       hono: 4.7.11
-      zod: 3.25.64
+      zod: 3.24.2
 
-  '@hono/zod-validator@0.7.0(hono@4.7.11)(zod@3.25.64)':
+  '@hono/zod-validator@0.7.0(hono@4.7.11)(zod@3.24.2)':
     dependencies:
       hono: 4.7.11
-      zod: 3.25.64
+      zod: 3.24.2
 
   '@img/sharp-darwin-arm64@0.33.5':
     optionalDependencies:
@@ -5603,4 +5606,4 @@ snapshots:
 
   zod@3.22.3: {}
 
-  zod@3.25.64: {}
+  zod@3.24.2: {}

+ 28 - 0
src/client/utils/axios.ts

@@ -0,0 +1,28 @@
+import axios from 'axios'
+
+export const axiosFetch: typeof fetch = async (input, init) => {
+  const config: any = {
+    method: init?.method || 'GET',
+    url: input instanceof Request ? input.url : input as string,
+    headers: init?.headers ? Object.fromEntries(new Map(init.headers as any)) : {},
+    data: init?.body,
+  }
+
+  try {
+    const response = await axios(config)
+    return new Response(JSON.stringify(response.data), {
+      status: response.status,
+      statusText: response.statusText,
+      headers: response.headers as any,
+    })
+  } catch (error: any) {
+    if (error.response) {
+      return new Response(JSON.stringify(error.response.data), {
+        status: error.response.status,
+        statusText: error.response.statusText,
+        headers: error.response.headers as any,
+      })
+    }
+    throw error
+  }
+}

+ 1 - 1
src/server/api/silver-talents-admin/get.ts

@@ -1,5 +1,5 @@
 import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
-import { z } from 'zod';
+import { z } from '@hono/zod-openapi';
 import { SilverUserProfileSchema } from '@/server/modules/silver-users/silver-user-profile.entity';
 import { ErrorSchema } from '@/server/utils/errorHandler';
 import { AppDataSource } from '@/server/data-source';

+ 1 - 1
src/server/api/silver-talents/search.ts

@@ -1,5 +1,5 @@
 import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
-import { z } from 'zod';
+import { z } from '@hono/zod-openapi';
 import { SilverTalentSchema, SearchSilverTalentDto } from '@/server/modules/silver-users/silver-talent.dto';
 import { SilverTalentService } from '@/server/modules/silver-users/silver-talent.service';
 import { AppDataSource } from '@/server/data-source';

+ 1 - 1
src/server/api/user-preferences/my-preference.ts

@@ -1,5 +1,5 @@
 import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
-import { z } from 'zod';
+import { z } from '@hono/zod-openapi';
 import { UserPreferenceSchema } from '@/server/modules/silver-users/user-preference.dto';
 import { ErrorSchema } from '@/server/utils/errorHandler';
 import { AppDataSource } from '@/server/data-source';