UNPKG

test-openapi

Version:
49 lines (32 loc) 1.35 kB
"use strict";require("core-js/modules/es.array.iterator");Object.defineProperty(exports,"__esModule",{value:true});exports.loadOpenApiSpec=void 0;var _swaggerParser=_interopRequireDefault(require("swagger-parser")); var _error=require("../../../errors/error.js"); var _handler=require("../../../errors/handler.js");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}} const eLoadOpenApiSpec=function({spec}){ return _swaggerParser.default.validate(spec); }; const loadSpecHandler=function({message,details}){ if(!Array.isArray(details)){ fetchSpecHandler({message}); } invalidSpecHandler({details}); }; const loadOpenApiSpec=(0,_handler.addErrorHandler)( eLoadOpenApiSpec, loadSpecHandler);exports.loadOpenApiSpec=loadOpenApiSpec; const fetchSpecHandler=function({message}){ throw new _error.TestOpenApiError( `OpenAPI specification could not be loaded: ${message}`); }; const invalidSpecHandler=function({details,details:[{path}]}){ const message=details.map(getErrorMessage).join(`\n${INDENT}`); throw new _error.TestOpenApiError( `OpenAPI specification is invalid at ${path.join( ".") }:\n${INDENT}${message}`); }; const INDENT_LENGTH=4; const INDENT=" ".repeat(INDENT_LENGTH); const getErrorMessage=function({path,message}){ return`At '${path.join(".")}': ${message}`; }; //# sourceMappingURL=load.js.map