mirror of https://github.com/jkjoy/sunpeiwen.git
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const codegen_1 = require("../../compile/codegen");
|
|
const util_1 = require("../../compile/util");
|
|
const error = {
|
|
message: ({ params }) => codegen_1.str `property name '${params.propertyName}' is invalid`,
|
|
params: ({ params }) => codegen_1._ `{propertyName: ${params.propertyName}}`,
|
|
};
|
|
const def = {
|
|
keyword: "propertyNames",
|
|
type: "object",
|
|
schemaType: ["object", "boolean"],
|
|
error,
|
|
code(cxt) {
|
|
const { gen, schema, data, it } = cxt;
|
|
if (util_1.alwaysValidSchema(it, schema))
|
|
return;
|
|
const valid = gen.name("valid");
|
|
gen.forIn("key", data, (key) => {
|
|
cxt.setParams({ propertyName: key });
|
|
cxt.subschema({
|
|
keyword: "propertyNames",
|
|
data: key,
|
|
dataTypes: ["string"],
|
|
propertyName: key,
|
|
compositeRule: true,
|
|
}, valid);
|
|
gen.if(codegen_1.not(valid), () => {
|
|
cxt.error(true);
|
|
if (!it.allErrors)
|
|
gen.break();
|
|
});
|
|
});
|
|
cxt.ok(valid);
|
|
},
|
|
};
|
|
exports.default = def;
|
|
//# sourceMappingURL=propertyNames.js.map
|