UNPKG

@storm-software/build-tools

Version:

A comprehensive set of tools for building and managing projects within a Storm workspace. Includes builders such as rollup, rolldown, tsup, and unbuild, along with various utilities.

76 lines (74 loc) 2.16 kB
// src/utilities/task-graph.ts import { createTaskGraph, mapTargetDefaultsToDependencies } from "nx/src/tasks-runner/create-task-graph"; function getAllWorkspaceTaskGraphs(nxJson, projectGraph) { const defaultDependencyConfigs = mapTargetDefaultsToDependencies( nxJson.targetDefaults ); const taskGraphs = {}; const taskGraphErrors = {}; for (const projectName in projectGraph.nodes) { const project = projectGraph.nodes[projectName]; const targets = Object.keys(project?.data.targets ?? {}); for (const target of targets) { const taskId = createTaskId(projectName, target); try { taskGraphs[taskId] = createTaskGraph( projectGraph, defaultDependencyConfigs, [projectName], [target], void 0, {} ); } catch (err) { taskGraphs[taskId] = { tasks: {}, dependencies: {}, continuousDependencies: {}, roots: [] }; taskGraphErrors[taskId] = err.message; } const configurations = Object.keys( project?.data?.targets?.[target]?.configurations || {} ); if (configurations.length > 0) { for (const configuration of configurations) { const taskId2 = createTaskId(projectName, target, configuration); try { taskGraphs[taskId2] = createTaskGraph( projectGraph, defaultDependencyConfigs, [projectName], [target], configuration, {} ); } catch (err) { taskGraphs[taskId2] = { tasks: {}, dependencies: {}, continuousDependencies: {}, roots: [] }; taskGraphErrors[taskId2] = err.message; } } } } } return { taskGraphs, errors: taskGraphErrors }; } function createTaskId(projectId, targetId, configurationId) { if (configurationId) { return `${projectId}:${targetId}:${configurationId}`; } return `${projectId}:${targetId}`; } export { getAllWorkspaceTaskGraphs, createTaskId };