feat: implement output formatting and display (HAN-383)
CI / test (pull_request) Failing after 2m2s

Add text and JSON formatters with real-time progress via traverser hooks,
summary statistics, and CLI integration for --show-* and --json flags.

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
Gary Hansen
2026-06-08 02:21:13 +10:00
co-authored by multica-agent
parent 876542b2de
commit 5a54834c5f
13 changed files with 1359 additions and 180 deletions
+36
View File
@@ -0,0 +1,36 @@
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
}