Updated the files.
This commit is contained in:
parent
1553e6b971
commit
753967d4f5
23418 changed files with 3784666 additions and 0 deletions
75
my-app/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
generated
vendored
Executable file
75
my-app/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
generated
vendored
Executable file
|
@ -0,0 +1,75 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const code_1 = require("../code");
|
||||
const codegen_1 = require("../../compile/codegen");
|
||||
const util_1 = require("../../compile/util");
|
||||
const util_2 = require("../../compile/util");
|
||||
const def = {
|
||||
keyword: "patternProperties",
|
||||
type: "object",
|
||||
schemaType: "object",
|
||||
code(cxt) {
|
||||
const { gen, schema, data, parentSchema, it } = cxt;
|
||||
const { opts } = it;
|
||||
const patterns = (0, code_1.allSchemaProperties)(schema);
|
||||
const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));
|
||||
if (patterns.length === 0 ||
|
||||
(alwaysValidPatterns.length === patterns.length &&
|
||||
(!it.opts.unevaluated || it.props === true))) {
|
||||
return;
|
||||
}
|
||||
const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;
|
||||
const valid = gen.name("valid");
|
||||
if (it.props !== true && !(it.props instanceof codegen_1.Name)) {
|
||||
it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);
|
||||
}
|
||||
const { props } = it;
|
||||
validatePatternProperties();
|
||||
function validatePatternProperties() {
|
||||
for (const pat of patterns) {
|
||||
if (checkProperties)
|
||||
checkMatchingProperties(pat);
|
||||
if (it.allErrors) {
|
||||
validateProperties(pat);
|
||||
}
|
||||
else {
|
||||
gen.var(valid, true); // TODO var
|
||||
validateProperties(pat);
|
||||
gen.if(valid);
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkMatchingProperties(pat) {
|
||||
for (const prop in checkProperties) {
|
||||
if (new RegExp(pat).test(prop)) {
|
||||
(0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);
|
||||
}
|
||||
}
|
||||
}
|
||||
function validateProperties(pat) {
|
||||
gen.forIn("key", data, (key) => {
|
||||
gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {
|
||||
const alwaysValid = alwaysValidPatterns.includes(pat);
|
||||
if (!alwaysValid) {
|
||||
cxt.subschema({
|
||||
keyword: "patternProperties",
|
||||
schemaProp: pat,
|
||||
dataProp: key,
|
||||
dataPropType: util_2.Type.Str,
|
||||
}, valid);
|
||||
}
|
||||
if (it.opts.unevaluated && props !== true) {
|
||||
gen.assign((0, codegen_1._) `${props}[${key}]`, true);
|
||||
}
|
||||
else if (!alwaysValid && !it.allErrors) {
|
||||
// can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)
|
||||
// or if all properties were evaluated (props === true)
|
||||
gen.if((0, codegen_1.not)(valid), () => gen.break());
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
exports.default = def;
|
||||
//# sourceMappingURL=patternProperties.js.map
|
Loading…
Add table
Add a link
Reference in a new issue