From dd84b9d64fb98746a230cd24233ff50a562c39c9 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:44 +0800 Subject: --- cli/internal/nodes/packagetask.go | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 cli/internal/nodes/packagetask.go (limited to 'cli/internal/nodes') diff --git a/cli/internal/nodes/packagetask.go b/cli/internal/nodes/packagetask.go new file mode 100644 index 0000000..e2dcb27 --- /dev/null +++ b/cli/internal/nodes/packagetask.go @@ -0,0 +1,45 @@ +// Package nodes defines the nodes that are present in the execution graph used by turbo. +package nodes + +import ( + "fmt" + + "github.com/vercel/turbo/cli/internal/fs" + "github.com/vercel/turbo/cli/internal/util" +) + +// PackageTask represents running a particular task in a particular package +type PackageTask struct { + TaskID string + Task string + PackageName string + Pkg *fs.PackageJSON + EnvMode util.EnvMode + TaskDefinition *fs.TaskDefinition + Dir string + Command string + Outputs []string + ExcludedOutputs []string + LogFile string + Hash string +} + +// OutputPrefix returns the prefix to be used for logging and ui for this task +func (pt *PackageTask) OutputPrefix(isSinglePackage bool) string { + if isSinglePackage { + return pt.Task + } + return fmt.Sprintf("%v:%v", pt.PackageName, pt.Task) +} + +// HashableOutputs returns the package-relative globs for files to be considered outputs +// of this task +func (pt *PackageTask) HashableOutputs() fs.TaskOutputs { + inclusionOutputs := []string{fmt.Sprintf(".turbo/turbo-%v.log", pt.Task)} + inclusionOutputs = append(inclusionOutputs, pt.TaskDefinition.Outputs.Inclusions...) + + return fs.TaskOutputs{ + Inclusions: inclusionOutputs, + Exclusions: pt.TaskDefinition.Outputs.Exclusions, + } +} -- cgit v1.2.3-70-g09d2