| import { ZodType, } from "zod"; |
| export var McpZodTypeKind; |
| (function (McpZodTypeKind) { |
| McpZodTypeKind["Completable"] = "McpCompletable"; |
| })(McpZodTypeKind || (McpZodTypeKind = {})); |
| export class Completable extends ZodType { |
| _parse(input) { |
| const { ctx } = this._processInputParams(input); |
| const data = ctx.data; |
| return this._def.type._parse({ |
| data, |
| path: ctx.path, |
| parent: ctx, |
| }); |
| } |
| unwrap() { |
| return this._def.type; |
| } |
| } |
| Completable.create = (type, params) => { |
| return new Completable({ |
| type, |
| typeName: McpZodTypeKind.Completable, |
| complete: params.complete, |
| ...processCreateParams(params), |
| }); |
| }; |
| |
| |
| |
| export function completable(schema, complete) { |
| return Completable.create(schema, { ...schema._def, complete }); |
| } |
| |
| |
| function processCreateParams(params) { |
| if (!params) |
| return {}; |
| const { errorMap, invalid_type_error, required_error, description } = params; |
| if (errorMap && (invalid_type_error || required_error)) { |
| throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); |
| } |
| if (errorMap) |
| return { errorMap: errorMap, description }; |
| const customMap = (iss, ctx) => { |
| var _a, _b; |
| const { message } = params; |
| if (iss.code === "invalid_enum_value") { |
| return { message: message !== null && message !== void 0 ? message : ctx.defaultError }; |
| } |
| if (typeof ctx.data === "undefined") { |
| return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError }; |
| } |
| if (iss.code !== "invalid_type") |
| return { message: ctx.defaultError }; |
| return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError }; |
| }; |
| return { errorMap: customMap, description }; |
| } |
| |