jormaechea/open-api-mocker

View on GitHub
lib/components/parser.js

Summary

Maintainability
A
35 mins
Test Coverage
A
100%
'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;