package main import ( "encoding/json" "fmt" "net/http" ) func writeJSON(w http.ResponseWriter, v any) { w.Header().Set("Content-Type", "application/json") _ = json.NewEncoder(w).Encode(v) } func newJSONStream(w http.ResponseWriter) func(any) { w.Header().Set("Content-Type", "application/x-ndjson; charset=utf-8") w.Header().Set("Cache-Control", "no-cache") flusher, _ := w.(http.Flusher) return func(v any) { data, err := json.Marshal(v) if err != nil { data = []byte(fmt.Sprintf(`{"type":"error","message":%q}`, err.Error())) } _, _ = w.Write(data) _, _ = w.Write([]byte("\n")) if flusher != nil { flusher.Flush() } } } func pluralS(n int) string { if n == 1 { return "" } return "s" }