chunked_json.sjs (981B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 const key = "json-viewer-chunked-response"; 6 function setResponse(response) { 7 setObjectState(key, response); 8 } 9 function getResponse() { 10 let response; 11 getObjectState(key, v => { 12 response = v; 13 }); 14 return response; 15 } 16 17 function handleRequest(request, response) { 18 const { queryString } = request; 19 if (!queryString) { 20 response.processAsync(); 21 setResponse(response); 22 response.setHeader("Content-Type", "application/json"); 23 // Write something so that the JSON viewer app starts loading. 24 response.write(" "); 25 return; 26 } 27 const [command, value] = queryString.split("="); 28 switch (command) { 29 case "write": 30 getResponse().write(value); 31 break; 32 case "close": 33 getResponse().finish(); 34 setResponse(null); 35 break; 36 } 37 response.setHeader("Content-Type", "text/plain"); 38 response.write("ok"); 39 }