UNPKG

openapi-diff

Version:

A CLI tool to identify differences between Swagger/OpenAPI specs.

40 lines (39 loc) 1.49 kB
"use strict"; 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;