Buckets:
ktongue/docker_container / .cache /opencode /node_modules /ajv /dist /vocabularies /validation /enum.js
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| const codegen_1 = require("../../compile/codegen"); | |
| const util_1 = require("../../compile/util"); | |
| const equal_1 = require("../../runtime/equal"); | |
| const error = { | |
| message: "must be equal to one of the allowed values", | |
| params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`, | |
| }; | |
| const def = { | |
| keyword: "enum", | |
| schemaType: "array", | |
| $data: true, | |
| error, | |
| code(cxt) { | |
| const { gen, data, $data, schema, schemaCode, it } = cxt; | |
| if (!$data && schema.length === 0) | |
| throw new Error("enum must have non-empty array"); | |
| const useLoop = schema.length >= it.opts.loopEnum; | |
| let eql; | |
| const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default))); | |
| let valid; | |
| if (useLoop || $data) { | |
| valid = gen.let("valid"); | |
| cxt.block$data(valid, loopEnum); | |
| } | |
| else { | |
| /* istanbul ignore if */ | |
| if (!Array.isArray(schema)) | |
| throw new Error("ajv implementation error"); | |
| const vSchema = gen.const("vSchema", schemaCode); | |
| valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i))); | |
| } | |
| cxt.pass(valid); | |
| function loopEnum() { | |
| gen.assign(valid, false); | |
| gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())); | |
| } | |
| function equalCode(vSchema, i) { | |
| const sch = schema[i]; | |
| return typeof sch === "object" && sch !== null | |
| ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])` | |
| : (0, codegen_1._) `${data} === ${sch}`; | |
| } | |
| }, | |
| }; | |
| exports.default = def; | |
| //# sourceMappingURL=enum.js.map |
Xet Storage Details
- Size:
- 1.9 kB
- Xet hash:
- 669493b53f7bd72e765fcf0167d04c3422ab06f47c46edcfb219f9c58c22642e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.