UNPKG

json-schema-to-joi

Version:

Converts JSON schema to Joi typescript code

46 lines 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateOneOfJoi = exports.resolveJoiOneOfSchema = void 0; const types_1 = require("./types"); const resolve_1 = require("./resolve"); const generate_1 = require("./generate"); const any_1 = require("./any"); function resolveJoiOneOfSchema(schema, options) { const joiSchema = types_1.createJoiItem('oneOf'); joiSchema.items = schema.oneOf.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.resolveJoiOneOfSchema = resolveJoiOneOfSchema; function generateOneOfJoi(schema) { const content = generate_1.openJoi([ 201, 'oneOf()' ]); 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.generateOneOfJoi = generateOneOfJoi; //# sourceMappingURL=oneOf.js.map