2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.intRange = void 0;
4 const codegen_1 = require("../../compile/codegen");
5 const timestamp_1 = require("../../runtime/timestamp");
6 const util_1 = require("../../compile/util");
7 const metadata_1 = require("./metadata");
8 const error_1 = require("./error");
12 int16: [-32768, 32767, 5],
13 uint16: [0, 65535, 5],
14 int32: [-2147483648, 2147483647, 10],
15 uint32: [0, 4294967295, 10],
18 message: (cxt) => (0, error_1.typeErrorMessage)(cxt, cxt.schema),
19 params: (cxt) => (0, error_1.typeErrorParams)(cxt, cxt.schema),
21 function timestampCode(cxt) {
22 const { gen, data, it } = cxt;
23 const { timestamp, allowDate } = it.opts;
24 if (timestamp === "date")
25 return (0, codegen_1._) `${data} instanceof Date `;
26 const vts = (0, util_1.useFunc)(gen, timestamp_1.default);
27 const allowDateArg = allowDate ? (0, codegen_1._) `, true` : codegen_1.nil;
28 const validString = (0, codegen_1._) `typeof ${data} == "string" && ${vts}(${data}${allowDateArg})`;
29 return timestamp === "string" ? validString : (0, codegen_1.or)((0, codegen_1._) `${data} instanceof Date`, validString);
36 (0, metadata_1.checkMetadata)(cxt);
37 const { data, schema, parentSchema, it } = cxt;
42 cond = (0, codegen_1._) `typeof ${data} == ${schema}`;
45 cond = timestampCode(cxt);
50 cond = (0, codegen_1._) `typeof ${data} == "number"`;
54 cond = (0, codegen_1._) `typeof ${data} == "number" && isFinite(${data}) && !(${data} % 1)`;
55 if (!it.opts.int32range && (sch === "int32" || sch === "uint32")) {
57 cond = (0, codegen_1._) `${cond} && ${data} >= 0`;
60 const [min, max] = exports.intRange[sch];
61 cond = (0, codegen_1._) `${cond} && ${data} >= ${min} && ${data} <= ${max}`;
65 cxt.pass(parentSchema.nullable ? (0, codegen_1.or)((0, codegen_1._) `${data} === null`, cond) : cond);
68 exports.default = def;
69 //# sourceMappingURL=type.js.map