diff --git a/package.json b/package.json index 13bdf55..252bcbb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package", "name": "@kevisual/router", - "version": "0.0.75", + "version": "0.0.76", "description": "", "type": "module", "main": "./dist/router.js", @@ -21,7 +21,6 @@ "keywords": [], "author": "abearxiong", "license": "MIT", - "packageManager": "pnpm@10.30.0", "devDependencies": { "@kevisual/code-builder": "^0.0.6", "@kevisual/context": "^0.0.6", diff --git a/src/route.ts b/src/route.ts index c70d6ba..0877ec1 100644 --- a/src/route.ts +++ b/src/route.ts @@ -245,14 +245,20 @@ export class Route { + if (args && typeof args === 'object' && typeof args.shape === 'object') { + return args.shape as z.ZodRawShape; + } + return args || {}; +}; + export const toJSONSchema = (route: RouteInfo) => { const pickValues = pick(route, pickValue as any); if (pickValues?.metadata?.args) { - const args = pickValues.metadata.args; - if (args && typeof args === 'object' && args.toJSONSchema && typeof args.toJSONSchema === 'function') { - pickValues.metadata.args = args.toJSONSchema(); - return pickValues; - } + let args = pickValues.metadata.args; + // 如果 args 本身是一个 zod object schema,先提取 shape + args = extractArgs(args); + const keys = Object.keys(args); const newArgs: { [key: string]: any } = {}; for (let key of keys) {