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