@jsonjoy.com/json-type
Version:
High-performance JSON Pointer implementation
22 lines • 935 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DiscriminatorCodegen = void 0;
const json_expression_1 = require("@jsonjoy.com/json-expression");
const Vars_1 = require("@jsonjoy.com/json-expression/lib/Vars");
const operators_1 = require("@jsonjoy.com/json-expression/lib/operators");
const util_1 = require("../util");
class DiscriminatorCodegen {
}
exports.DiscriminatorCodegen = DiscriminatorCodegen;
DiscriminatorCodegen.get = (0, util_1.lazyKeyedFactory)((or) => {
const expr = or.schema.discriminator;
if (!expr || (expr[0] === 'num' && expr[1] === 0))
throw new Error('NO_DISCRIMINATOR');
const codegen = new json_expression_1.JsonExpressionCodegen({
expression: expr,
operators: operators_1.operatorsMap,
});
const generated = codegen.run().compile();
return (data) => +generated(new Vars_1.Vars(data));
});
//# sourceMappingURL=index.js.map