package output import ( "context" "fmt" "github.com/hits/ExploreDNS/internal/traverse" ) func RunTraversal(ctx context.Context, traverser *traverse.Traverser, cfg *Config, formatter Formatter, domain string) ([]traverse.TraversalResult, error) { if traverser == nil { return nil, fmt.Errorf("traverser is required") } if cfg == nil { cfg = DefaultConfig() } if formatter == nil { formatter = NewFormatter(cfg, nil) } traverser.SetHooks(AttachHooks(cfg, formatter)) results, err := traverser.Traverse(ctx, domain) if err != nil { return results, err } if err := formatter.WriteSummary(results); err != nil { return results, err } if err := formatter.Flush(); err != nil { return results, err } return results, nil }