openapi-zod-typed-express
Version:
Simple express runtime parser and documentation swagger generator with 100% support of Typescript static types
37 lines (36 loc) • 1.41 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var zod_1 = __importDefault(require("zod"));
var runtimeSchemaValidation_1 = require("./runtimeSchemaValidation");
var zStringToDateISO = (0, runtimeSchemaValidation_1.zDual)({
parse: zod_1.default
.string()
.datetime()
.transform(function (s) { return new Date(s); })
.pipe(zod_1.default.date())
.meta({
description: 'Date in ISO string format',
}),
serialize: zod_1.default
.date()
.transform(function (d) { return d.toISOString(); })
.pipe(zod_1.default.string()),
});
var zStringToNumber = (0, runtimeSchemaValidation_1.zDual)({
parse: zod_1.default.string().transform(Number).pipe(zod_1.default.number()),
serialize: zod_1.default.number().transform(String).pipe(zod_1.default.string()),
});
var zToArrayIfNot = function (item, zBaseType) {
if (zBaseType === void 0) { zBaseType = zod_1.default.any(); }
return zod_1.default
.union([zBaseType, zod_1.default.array(zBaseType)])
.transform(function (val) {
if (val === null || val === undefined)
return [];
return Array.isArray(val) ? val : [val];
})
.pipe(zod_1.default.array(item));
};
;