const equal_1 = require("../../runtime/equal");
const error = {
message: "must be equal to constant",
- params: ({ schemaCode }) => codegen_1._ `{allowedValue: ${schemaCode}}`,
+ params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,
};
const def = {
keyword: "const",
$data: true,
error,
code(cxt) {
- const { gen, data, schemaCode } = cxt;
- // TODO optimize for scalar values in schema
- cxt.fail$data(codegen_1._ `!${util_1.useFunc(gen, equal_1.default)}(${data}, ${schemaCode})`);
+ const { gen, data, $data, schemaCode, schema } = cxt;
+ if ($data || (schema && typeof schema == "object")) {
+ cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);
+ }
+ else {
+ cxt.fail((0, codegen_1._) `${schema} !== ${data}`);
+ }
},
};
exports.default = def;