UNPKG

test-openapi

Version:
97 lines (57 loc) 2.5 kB
"use strict";require("core-js/modules/es.array.flat");require("core-js/modules/es.array.iterator");require("core-js/modules/es.array.unscopables.flat");require("core-js/modules/es.promise");Object.defineProperty(exports,"__esModule",{value:true});exports.loadTasks=void 0;var _fs=require("fs"); var _util=require("util"); var _fastGlob=_interopRequireDefault(require("fast-glob")); var _jsYaml=require("js-yaml"); var _lodash=require("lodash"); var _error=require("../errors/error.js"); var _handler=require("../errors/handler.js"); var _file=require("./validate/file.js"); var _inline=require("./validate/inline.js"); var _scope=require("./scope.js");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}} const loadTasks=async function({tasks}){ const fileTasks=await loadFileTasks({tasks}); const inlineTasks=loadInlineTasks({tasks}); const tasksA=[...fileTasks,...inlineTasks]; const tasksB=tasksA.map(_scope.addKey); const tasksC=(0,_lodash.sortBy)(tasksB,"scope"); return tasksC; };exports.loadTasks=loadTasks; const loadFileTasks=async function({tasks}){ const tasksA=tasks.filter(task=>typeof task==="string"); const paths=await(0,_fastGlob.default)(tasksA); (0,_scope.validateScopes)({paths}); const tasksB=await Promise.all(paths.map(path=>loadTaskFile({path}))); const tasksC=tasksB.flat(); return tasksC; }; const loadTaskFile=async function({path}){ const content=await eReadFile(path); const tasks=eParseTaskFile({path,content}); (0,_file.validateFileTasks)({tasks,path}); const tasksA=(0,_scope.addScopes)({tasks,path}); return tasksA; }; const readFileHandler=function({message},path){ throw new _error.TestOpenApiError(`Could not load task file '${path}': ${message}`); }; const eReadFile=(0,_handler.addErrorHandler)((0,_util.promisify)(_fs.readFile),readFileHandler); const parseTaskFile=function({path,content}){ return(0,_jsYaml.load)(content,{...YAML_OPTS,filename:path}); }; const YAML_OPTS={ schema:_jsYaml.JSON_SCHEMA, json:true, onWarning(error){ throw error; }}; const parseTaskFileHandler=function({message},{path}){ throw new _error.TestOpenApiError( `Task file '${path}' is not valid YAML nor JSON: ${message}`); }; const eParseTaskFile=(0,_handler.addErrorHandler)(parseTaskFile,parseTaskFileHandler); const loadInlineTasks=function({tasks}){ const tasksA=tasks.filter(task=>typeof task!=="string"); (0,_inline.validateInlineTasks)({tasks:tasksA}); return tasksA; }; //# sourceMappingURL=load.js.map