//import { decode } from "base-64"
import { decode, encode, encodeUrl } from "@borderless/base64"
import utf8 from "utf8"

function handler(event) {
  const url = event.request.url
  const rx = /views\/([^\/]*)/
  const [, data] = url.match(rx)
  const text = utf8.decode(String.fromCodePoint(...decode(data)));
  console.log(`Decoded path segment: ${text}`)

  const toEncode = `from=06/07/2013 query=\"Καλώς ορίσατε\"`

  // The base64 encoding of this text would include characters invalid in a URL path.
  const invalidSegment = encode(new TextEncoder().encode(toEncode))
  console.log("Encoded `" + toEncode +"` without Base64Url: " + invalidSegment)

  // Use a function or library that supports Base64Url to encode base64 URL segments. 
  const validSegment = encodeUrl(new TextEncoder().encode(toEncode))
  console.log("Encoded `" + toEncode +"` with Base64Url: " + validSegment)
  
  let headers = new Headers({ "Content-Type": "text/plain" })

  return new Response(text, {
    headers,
  })
}

addEventListener("fetch", (event) => event.respondWith(handler(event)))