Skip to content

Commit

Permalink
refactor: do not depend on the parser builder too much
Browse files Browse the repository at this point in the history
  • Loading branch information
gabotechs committed Jan 31, 2024
1 parent 6e4436d commit 5d4abb5
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 27 deletions.
6 changes: 5 additions & 1 deletion cmd/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ func CheckCmd() *cobra.Command {
if err != nil {
return err
}
return check.Check(parserBuilder, &cfg.Check)
parser, err := parserBuilder(args)
if err != nil {
return err
}
return check.Check(parser, &cfg.Check)
},
}
}
7 changes: 6 additions & 1 deletion cmd/tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,13 @@ func TreeCmd() *cobra.Command {
return err
}

parser, err := parserBuilder(files)
if err != nil {
return err
}

if jsonFormat {
rendered, err := dep_tree.PrintStructured(files, parserBuilder)
rendered, err := dep_tree.PrintStructured(files, parser)
fmt.Println(rendered)
return err
} else {
Expand Down
8 changes: 2 additions & 6 deletions internal/check/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,9 @@ import (
"github.com/gabotechs/dep-tree/internal/utils"
)

func Check[T any](parserBuilder dep_tree.NodeParserBuilder[T], cfg *Config) error {
parser, err := parserBuilder(cfg.Entrypoints)
if err != nil {
return err
}
func Check[T any](parser dep_tree.NodeParser[T], cfg *Config) error {
dt := dep_tree.NewDepTree(parser, cfg.Entrypoints).WithStdErrLoader()
err = dt.LoadGraph()
err := dt.LoadGraph()
if err != nil {
return err
}
Expand Down
6 changes: 1 addition & 5 deletions internal/check/check_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,7 @@ func TestCheck(t *testing.T) {
t.Run(tt.Name, func(t *testing.T) {
a := require.New(t)

parserBuilder := func(s []string) (dep_tree.NodeParser[[]int], error) {
return &dep_tree.TestParser{Spec: tt.Spec}, nil
}

err := Check(parserBuilder, tt.Config)
err := Check[[]int](&dep_tree.TestParser{Spec: tt.Spec}, tt.Config)
if tt.Failures != nil {
msg := err.Error()
failures := strings.Split(msg, "\n")
Expand Down
2 changes: 1 addition & 1 deletion internal/dep_tree/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func (dt *DepTree[T]) LoadCycles() {
}
}
// Then, remove the cycles computed without taking entrypoints into account.
// These are not as nice as the rule for which cycles are trimmed is more arbitrary.
// These are not as nice, as the rule for determining which cycles are trimmed is more arbitrary.
for _, cycle := range dt.Graph.RemoveJohnsonCycles() {
dt.Cycles.Set(cycle.Cause, cycle)
}
Expand Down
11 changes: 2 additions & 9 deletions internal/dep_tree/structured.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,17 +83,10 @@ func (dt *DepTree[T]) RenderStructured() ([]byte, error) {

func PrintStructured[T any](
files []string,
parserBuilder NodeParserBuilder[T],
parser NodeParser[T],
) (string, error) {
parser, err := parserBuilder(files)
if err != nil {
return "", err
}
dt := NewDepTree(parser, files)
if err != nil {
return "", err
}
err = dt.LoadDeps()
err := dt.LoadDeps()
if err != nil {
return "", err
}
Expand Down
6 changes: 2 additions & 4 deletions internal/dep_tree/structured_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,9 @@ func TestDepTree_RenderStructuredGraph(t *testing.T) {
t.Run(tt.Name, func(t *testing.T) {
a := require.New(t)

rendered, err := PrintStructured(
rendered, err := PrintStructured[[]int](
[]string{"0"},
func(s []string) (NodeParser[[]int], error) {
return &TestParser{Spec: tt.Spec}, nil
},
&TestParser{Spec: tt.Spec},
)
a.NoError(err)

Expand Down

0 comments on commit 5d4abb5

Please sign in to comment.