diff --git a/backend/src/main.go b/backend/src/main.go index b5d39fcb..65a31049 100644 --- a/backend/src/main.go +++ b/backend/src/main.go @@ -30,7 +30,8 @@ type TransformRequest struct { } type TransformResponse struct { - Result string `json:"result"` + Result string `json:"result"` + DurationMs int64 `json:"duration_ms"` } type AppConfig struct { @@ -177,6 +178,7 @@ func main() { cmd := exec.Command("java", cmdArgs...) var stderr bytes.Buffer cmd.Stderr = &stderr + start := time.Now() timeout := time.Second * 10 errChan := make(chan error, 1) @@ -200,7 +202,8 @@ func main() { return } - c.JSON(http.StatusOK, TransformResponse{Result: string(result)}) + duration := time.Since(start).Milliseconds() + c.JSON(http.StatusOK, TransformResponse{Result: string(result), DurationMs: duration}) }) r.GET("/", func(c *gin.Context) { diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 3e611e9e..49468536 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -82,6 +82,7 @@ export default function App() { const [editorFocused, setEditorFocused] = useState(false); const [result, setResult] = useState(""); const [error, setError] = useState(""); + const [duration, setDuration] = useState(null); const [user, setUser] = useState(null); const [auth, setAuth] = useState(null); @@ -126,15 +127,18 @@ export default function App() { if (!res.ok) { const txt = await res.text(); setError(txt || res.statusText); + setDuration(null); setResult(""); return; } const data = await res.json(); setResult(data.result); + setDuration(data.duration_ms); setError(""); } catch (e) { setError(String(e)); setResult(""); + setDuration(null); } }, 500); @@ -429,7 +433,13 @@ export default function App() {