UNPKG

json-schema-typescript-generator

Version:
33 lines 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.oneOfGenerator = void 0; const util_1 = require("../util"); const TypeGenerator_1 = require("./TypeGenerator"); const type_generator_1 = require("./type-generator"); const oneOfGenerator = (locatedSchema, gatheredInfo, inputInfo) => { const schema = locatedSchema.schema; if (!schema.oneOf || schema.oneOf.length === 0) { return; } const lines = []; schema.oneOf.forEach((elementSchema) => { const elementLocatedSchema = (0, TypeGenerator_1.located)(elementSchema, locatedSchema); const elementContent = (0, type_generator_1.typeGenerator)(elementLocatedSchema, gatheredInfo, inputInfo); lines.push(elementContent); }); const filteredLines = (0, util_1.filtered)(lines); if (filteredLines.length === 0) { return; } else if (filteredLines.length === 1) { return filteredLines[0]; } else { gatheredInfo.oneOfTypes.add(filteredLines.length); const typeName = `OneOf_${filteredLines.length}`; const combinedTypeNames = filteredLines.join(', '); return `${typeName}<${combinedTypeNames}>`; } }; exports.oneOfGenerator = oneOfGenerator; //# sourceMappingURL=one-of-generator.js.map