/// <reference types="@fastly/js-compute" />

addEventListener("fetch", (event) => event.respondWith(handleRequest(event)));

async function handleRequest(event) {
  
  let base64GifPixel =
    "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";

  return new Response(base64ToArrayBuffer(base64GifPixel), {
    status: 200,
    headers: new Headers({ "Content-Type": "image/gif" }),
  });

  /*
    https://stackoverflow.com/a/21797381 
    First we decode the base64 string (atob),
    then we create new array of 8-bit 
    unsigned integers with the same length
    as the decoded string.
    After that we iterate the string and 
    populate the array with Unicode value
    of each character in the string
  */
  function base64ToArrayBuffer(base64) {
    var binaryString = atob(base64);
    var bytes = new Uint8Array(binaryString.length);
    for (var i = 0; i < binaryString.length; i++) {
      bytes[i] = binaryString.charCodeAt(i);
    }
    return bytes.buffer;
  }
  
}