diff --git a/pkg/filters/quickjs/debug.go b/pkg/filters/quickjs/debug.go new file mode 100644 index 0000000..f9ceda9 --- /dev/null +++ b/pkg/filters/quickjs/debug.go @@ -0,0 +1,39 @@ +package quickjs + +import ( + "net/http" + "strings" + "time" +) + +type DebugData struct { + Status int `json:"status"` + Header http.Header `json:"header"` + Body string `json:"body"` + Logs []DebugDataLog `json:"logs"` +} + +type DebugDataLog struct { + Level string `json:"level"` + Time time.Time `json:"time"` + Message string `json:"message"` +} + +// debugResponseWriter 用于在 debug 模式下捕获响应输出 +type debugResponseWriter struct { + buffer *strings.Builder + header http.Header + status int +} + +func (w *debugResponseWriter) Header() http.Header { + return w.header +} + +func (w *debugResponseWriter) Write(data []byte) (int, error) { + return w.buffer.Write(data) +} + +func (w *debugResponseWriter) WriteHeader(statusCode int) { + w.status = statusCode +} diff --git a/pkg/filters/quickjs/quickjs.go b/pkg/filters/quickjs/quickjs.go index ae432f5..9c4ee7d 100644 --- a/pkg/filters/quickjs/quickjs.go +++ b/pkg/filters/quickjs/quickjs.go @@ -79,25 +79,6 @@ var FilterInstQuickJS core.FilterInstance = func(config core.FilterParams) (core }, nil } -// debugResponseWriter 用于在 debug 模式下捕获响应输出 -type debugResponseWriter struct { - buffer *strings.Builder - header http.Header - status int -} - -func (w *debugResponseWriter) Header() http.Header { - return w.header -} - -func (w *debugResponseWriter) Write(data []byte) (int, error) { - return w.buffer.Write(data) -} - -func (w *debugResponseWriter) WriteHeader(statusCode int) { - w.status = statusCode -} - // renderDebugPage 渲染调试页面 func renderDebugPage(writer http.ResponseWriter, outputBuffer, logBuffer *strings.Builder, jsError error) error { writer.Header().Set("Content-Type", "text/html; charset=utf-8")