lib/components/parser.js
'use strict'; const ParserError = require('../errors/parser-error');const Components = require('./components');const ComponentsStruct = require('./structs');const extractExtensions = require('../utils/extract-extensions'); class Parser { parse(schema) { const { components } = schema; this.validateComponents(components); return this.parseComponents(components || {}); } validateComponents(components) { try { return ComponentsStruct(components); } catch(e) { throw new ParserError(e.message, 'components'); } } parseComponents({ schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, links, callbacks, ...otherProps }) { const extensionProps = extractExtensions(otherProps); Identical blocks of code found in 2 locations. Consider refactoring. return new Components({ schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, links, callbacks }, extensionProps); } } module.exports = Parser;