UNPKG

open-api-mocker

Version:

A mock server based in Open API Specification

46 lines (31 loc) 797 B
'use strict'; const Tag = require('./tag'); const TagsStruct = require('./structs'); const extractExtensions = require('../utils/extract-extensions'); const enhanceStructValidationError = require('../utils/enhance-struct-validation-error'); class Parser { parse(schema) { const { tags } = schema; this.validateTags(tags); if(!tags || !tags.length) return []; return tags .map(this.parseTag.bind(this)); } validateTags(tags) { try { return TagsStruct(tags); } catch(e) { throw enhanceStructValidationError(e, 'tags'); } } parseTag({ name, description, externalDocs, ...otherProps }) { const extensionProps = extractExtensions(otherProps); return new Tag({ name, description, externalDocs }, extensionProps); } } module.exports = Parser;