1/* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4/* globals getState, setState */ 5/* exported handleRequest */ 6 7"use strict"; 8 9function _getUrl(request, counter) { 10 const { scheme, host, path } = request; 11 12 const newPath = path.substr(0, path.lastIndexOf("/") + 1); 13 const index = counter <= 2 ? 1 : 2; 14 const url = `${scheme}://${host}${newPath}/code_reload_${index}.js`; 15 return url 16} 17 18function handleRequest(request, response) { 19 response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 20 response.setHeader("Pragma", "no-cache"); 21 response.setHeader("Expires", "0"); 22 response.setHeader("Access-Control-Allow-Origin", "*", false); 23 response.setHeader("Content-Type", "text/javascript", false); 24 25 // Redirect to a different file each time. 26 let counter = 1 + (+getState("counter") % 4); 27 const newUrl = _getUrl(request, counter); 28 29 response.setStatusLine(request.httpVersion, 302, "Found"); 30 response.setHeader("Location", newUrl); 31 setState("counter", "" + counter); 32} 33