@redocly/respect-core
Version:
API testing framework core
45 lines • 1.92 kB
JavaScript
import { red, yellow } from 'colorette';
export function getWorkflowsToRun({ workflows, workflowsToRun, workflowsToSkip, logger, }) {
let filteredWorkflows = [];
if (workflowsToRun && workflowsToRun.length) {
filteredWorkflows = filterWorkflowsToRun(workflows, workflowsToRun, logger);
}
else if (workflowsToSkip && workflowsToSkip.length) {
filteredWorkflows = filterWorkflowsToSkip(workflows, workflowsToSkip, logger);
}
else {
filteredWorkflows = workflows;
}
return filteredWorkflows;
}
function filterWorkflowsToSkip(workflows, workflowsToSkip, logger) {
const workflowsToRun = workflows.filter((workflow) => !workflowsToSkip.includes(workflow.workflowId));
if (!workflowsToRun.length) {
logger.output(`${red('All workflows are skipped')}`);
logger.printNewLine();
return [];
}
logger.output(`${yellow(`Following workflows are skipped: ${workflowsToSkip.join(', ')}`)}`);
logger.printNewLine();
return workflowsToRun;
}
function filterWorkflowsToRun(workflows, workflowsToRun, logger) {
const filteredWorkflows = filterWorkflowsByIds(workflows, workflowsToRun);
if (!filteredWorkflows.length) {
throw new Error(`Following workflows don't exist: ${workflowsToRun.join(', ')}`);
}
if (filteredWorkflows.length === workflowsToRun.length) {
return filteredWorkflows;
}
else {
const notExistingWorkflows = workflowsToRun.filter((workflowId) => {
return !workflows.find((workflow) => workflow.workflowId === workflowId);
});
logger.output(`Following workflows don't exist: ${notExistingWorkflows.join(', ')}`);
return filteredWorkflows;
}
}
function filterWorkflowsByIds(workflows, workflowIds) {
return workflows.filter((workflow) => workflowIds.includes(workflow.workflowId));
}
//# sourceMappingURL=get-workflows-to-run.js.map