123456789101112131415161718192021222324252627282930 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.dynamicAnchor = void 0;
- const codegen_1 = require("../../compile/codegen");
- const names_1 = require("../../compile/names");
- const compile_1 = require("../../compile");
- const ref_1 = require("../core/ref");
- const def = {
- keyword: "$dynamicAnchor",
- schemaType: "string",
- code: (cxt) => dynamicAnchor(cxt, cxt.schema),
- };
- function dynamicAnchor(cxt, anchor) {
- const { gen, it } = cxt;
- it.schemaEnv.root.dynamicAnchors[anchor] = true;
- const v = (0, codegen_1._) `${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor)}`;
- const validate = it.errSchemaPath === "#" ? it.validateName : _getValidate(cxt);
- gen.if((0, codegen_1._) `!${v}`, () => gen.assign(v, validate));
- }
- exports.dynamicAnchor = dynamicAnchor;
- function _getValidate(cxt) {
- const { schemaEnv, schema, self } = cxt.it;
- const { root, baseId, localRefs, meta } = schemaEnv.root;
- const { schemaId } = self.opts;
- const sch = new compile_1.SchemaEnv({ schema, schemaId, root, baseId, localRefs, meta });
- compile_1.compileSchema.call(self, sch);
- return (0, ref_1.getValidate)(cxt, sch);
- }
- exports.default = def;
- //# sourceMappingURL=dynamicAnchor.js.map
|