json-schema-typescript-generator
Version:
Generate typescript types from json schemas
33 lines • 1.29 kB
JavaScript
;
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