openapi-diff
Version:
A CLI tool to identify differences between Swagger/OpenAPI specs.
40 lines (39 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseOpenApi3ResponseHeaders = void 0;
const parseHeaderRequiredProperty = (header, pathBuilder) => {
const requiredOriginalValue = header.required;
const requiredParsedValue = requiredOriginalValue || false;
return {
originalValue: {
originalPath: pathBuilder.withChild('required').build(),
value: requiredOriginalValue
},
value: requiredParsedValue
};
};
const parseHeader = (header, pathBuilder) => {
return {
originalValue: {
originalPath: pathBuilder.build(),
value: header
},
required: parseHeaderRequiredProperty(header, pathBuilder)
};
};
const isSupportedHeader = (headerName) => headerName.toLowerCase() !== 'content-type';
const parseHeaders = (headersMap, pathBuilder) => {
return Object.keys(headersMap)
.filter(isSupportedHeader)
.reduce((accumulator, headerName) => {
const originalPath = pathBuilder.withChild(headerName);
accumulator[headerName] = parseHeader(headersMap[headerName], originalPath);
return accumulator;
}, {});
};
const parseOpenApi3ResponseHeaders = (response, pathBuilder) => {
const headers = response.headers || {};
const originalPath = pathBuilder.withChild('headers');
return parseHeaders(headers, originalPath);
};
exports.parseOpenApi3ResponseHeaders = parseOpenApi3ResponseHeaders;