json-schema-to-joi
Version:
Converts JSON schema to Joi typescript code
46 lines • 1.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateAllOfJoi = exports.resolveJoiAllOfSchema = void 0;
const types_1 = require("./types");
const resolve_1 = require("./resolve");
const generate_1 = require("./generate");
const any_1 = require("./any");
function resolveJoiAllOfSchema(schema, options) {
const joiSchema = types_1.createJoiItem('allOf');
joiSchema.items = schema.allOf.map((item) => {
if ((item.properties || item.required) && item.type === undefined) {
item.type = 'object';
}
return resolve_1.resolveJSONSchema(item, options);
});
any_1.resolveJoiAnyMeta(joiSchema, schema);
return joiSchema;
}
exports.resolveJoiAllOfSchema = resolveJoiAllOfSchema;
function generateAllOfJoi(schema) {
const content = generate_1.openJoi([
201,
'allOf()'
]);
content.push(...[
'.items',
"(",
"[",
]);
if (schema.items) {
schema.items.forEach((item) => {
content.push(...[
...generate_1.generateJoiStatement(item),
",",
]);
});
}
content.push(...[
"]",
")",
...any_1.generateAnyJoi(schema),
]);
return generate_1.closeJoi(content);
}
exports.generateAllOfJoi = generateAllOfJoi;
//# sourceMappingURL=allOf.js.map
;