test-openapi
Version:
Automated client requests
97 lines (57 loc) • 2.5 kB
JavaScript
;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