@eulerstream/euler-websocket-sdk
Version:
Browser & Node.JS cross-compatible module for the Euler Stream WebSocket service.
34 lines • 1.31 kB
JavaScript
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
;