NapCatQQ/src/common/coerce.ts
手瓜一十雪 bd3e06520f fix
2025-04-17 09:56:12 +08:00

14 lines
457 B
TypeScript

import { z } from 'zod';
const boolean = () => z.preprocess(
val => typeof val === 'string' && (val.toLowerCase() === 'false' || val === '0') ? false : Boolean(val),
z.boolean()
);
const number = () => z.preprocess(
val => typeof val !== 'number' ? Number(val) : val,
z.number()
);
const string = () => z.preprocess(
val => typeof val !== 'string' ? String(val) : val,
z.string()
);
export const coerce = { boolean, number, string };