github.com/kubeshop/testkube@v1.17.23/pkg/executor/output/writer.go (about) 1 package output 2 3 import ( 4 "encoding/json" 5 "io" 6 7 "github.com/kubeshop/testkube/pkg/executor/env" 8 ) 9 10 // NewJSONWrapWriter returns new NewJSONWrapWriter instance 11 func NewJSONWrapWriter(writer io.Writer, envMngr env.Interface) *JSONWrapWriter { 12 return &JSONWrapWriter{ 13 encoder: json.NewEncoder(writer), 14 envManager: envMngr, 15 } 16 } 17 18 // JSONWrapWriter wraps bytes stream into json Output of type line 19 type JSONWrapWriter struct { 20 encoder *json.Encoder 21 envManager env.Interface 22 } 23 24 // Write io.Writer method implementation 25 func (w *JSONWrapWriter) Write(p []byte) (int, error) { 26 if w.envManager != nil { 27 p = w.envManager.ObfuscateSecrets(p) 28 } 29 return len(p), w.encoder.Encode(NewOutputLine(p)) 30 }