UNPKG

@eulerstream/euler-websocket-sdk

Version:

Browser & Node.JS cross-compatible module for the Euler Stream WebSocket service.

34 lines 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.coerceNumber = exports.coerceBoolean = void 0; const zod_1 = require("zod"); /** * Creates a Zod schema that coerces string values to boolean. * @param options The options for the coercion, including a default value. */ const coerceBoolean = (options) => { const coerceBoolean = zod_1.z .enum(['true', 'false', '1', '0']) .transform(val => val === 'true' || val === '1'); return coerceBoolean.default(String(options.default)); }; exports.coerceBoolean = coerceBoolean; /** * Creates a Zod schema that coerces string values to number. * @param options The options for the coercion, including min, max, and default values. */ const coerceNumber = (options) => { return zod_1.z .string() .default(String(options.default)) .refine((val) => !isNaN(Number(val)), { message: "Invalid number" }) .transform((val) => Number(val)) .refine((num) => options.min === undefined || num >= options.min, { message: `Must be >= ${options.min}`, }) .refine((num) => options.max === undefined || num <= options.max, { message: `Must be <= ${options.max}`, }); }; exports.coerceNumber = coerceNumber; //# sourceMappingURL=zod-extra.js.map