test-openapi
Version:
Automated client requests
63 lines (38 loc) • 1.55 kB
JavaScript
;require("core-js/modules/es.string.replace");Object.defineProperty(exports,"__esModule",{value:true});exports.validateScopes=exports.addKey=exports.getScope=exports.addScopes=void 0;var _path=require("path");
var _lodash=require("lodash");
var _error=require("../errors/error.js");
const addScopes=function({tasks,path}){
const scope=getScope(path);
const tasksA=tasks.map(task=>({...task,scope}));
return tasksA;
};exports.addScopes=addScopes;
const getScope=function(path){
const filename=(0,_path.basename)(path);
const scope=filename.replace(/\.[\0-\t\x0B\f\x0E-\u2027\u202A-\u{10FFFF}]*/u,"");
return scope;
};exports.getScope=getScope;
const addKey=function({scope,name,...task}){
const taskA=(0,_lodash.omit)(task,"key");
if(scope===undefined){
return{key:name,name,...taskA};
}
const key=`${scope}/${name}`;
return{key,scope,name,...task};
};exports.addKey=addKey;
const validateScopes=function({paths}){
const scopes=paths.map(getScope);
scopes.forEach((scope,index)=>
validateScope({scope,index,scopes,paths}));
};exports.validateScopes=validateScopes;
const validateScope=function({scope,index,scopes,paths}){
const scopesA=scopes.slice(index+1);
const duplicateScopeIndex=scopesA.indexOf(scope);
if(duplicateScopeIndex===-1){
return;
}
const path=paths[index];
const duplicatePath=paths[duplicateScopeIndex+index+1];
throw new _error.TestOpenApiError(
`Each task file name must be unique, but the two following files are not: '${path}' and '${duplicatePath}'`);
};
//# sourceMappingURL=scope.js.map