UNPKG

@redocly/respect-core

Version:
45 lines 1.92 kB
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