@infinite-debugger/swagger-to-ts
Version:
swagger-to-ts is a powerful library that allows you to generate TypeScript code from Swagger documentation or OpenAPI specifications. It simplifies the process of integrating API definitions into your TypeScript projects, saving you time and effort.
41 lines • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prefixModelsAndModelReferences = void 0;
const lodash_1 = require("lodash");
const models_1 = require("../models");
const prefixModelsAndModelReferences = ({ openAPISpecification: inputOpenAPISpecification, prefix, }) => {
const openAPISpecification = (0, lodash_1.cloneDeep)(inputOpenAPISpecification);
//#region Prefix models
Object.entries(openAPISpecification.components.schemas).forEach(([key, value]) => {
if (!models_1.ENVIRONMENT_DEFINED_MODELS.includes(key)) {
delete openAPISpecification.components.schemas[key];
openAPISpecification.components.schemas[`${prefix}${key}`] = value;
}
});
//#endregion
//#region Prefix model references
const prefixPropertyValues = (obj) => {
if (typeof obj !== 'object' || obj === null) {
return;
}
if (Array.isArray(obj)) {
return obj.forEach((item) => prefixPropertyValues(item));
}
Object.entries(obj).forEach(([key, value]) => {
if (typeof value === 'string') {
const match = /^#\/components\/schemas\/(\w+)$/g.exec(value);
if (match && !models_1.ENVIRONMENT_DEFINED_MODELS.includes(match[1])) {
obj[key] = `#/components/schemas/${prefix}${match[1]}`;
}
}
else if (typeof value === 'object' && value !== null) {
prefixPropertyValues(value);
}
});
};
prefixPropertyValues(openAPISpecification);
//#endregion
return openAPISpecification;
};
exports.prefixModelsAndModelReferences = prefixModelsAndModelReferences;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxQcmVmaXhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvTW9kZWxQcmVmaXhlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsc0NBQTZFO0FBT3RFLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxFQUM3QyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFDL0MsTUFBTSxHQUNnQyxFQUFFLEVBQUU7SUFDMUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLGtCQUFTLEVBQUMseUJBQXlCLENBQUMsQ0FBQztJQUVsRSx1QkFBdUI7SUFDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUM3RCxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDZixJQUFJLENBQUMsbUNBQTBCLENBQUMsUUFBUSxDQUFDLEdBQVUsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sb0JBQW9CLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDRixZQUFZO0lBRVosaUNBQWlDO0lBQ2pDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFRLEVBQVEsRUFBRTtRQUM5QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQzNDLE9BQU87U0FDUjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxLQUFLLElBQUksQ0FBQyxtQ0FBMEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxDQUFDLEVBQUU7b0JBQ2xFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyx3QkFBd0IsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN4RDthQUNGO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3RELG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzNDLFlBQVk7SUFDWixPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMsQ0FBQztBQTFDVyxRQUFBLDhCQUE4QixrQ0EwQ3pDIn0=