import express from "express"
import http from "http"
import peer from "peer"
const { ExpressPeerServer } = peer

const port = process.env.PORT || 3000

const app = express()

let server = http.createServer(app)

const options = {
  port: port,
  path: "/api",
  debug: true,
}

const peerserver = ExpressPeerServer(server, options)

peerserver.on("connection", (client) => {
  console.log(`Client connected: ${client.getId()}`)
})

peerserver.on("disconnect", (client) => {
  console.log(`Client disconnected: ${client.getId()}`)
})

app.use("/", peerserver)
app.use(
  "/",
  express.static("public", {
    setHeaders: (_response, file_path) => {
      // Log access
      console.log(Date.now(), file_path, "accessed")
    },
  }),
)

server.listen(port, () => {
  const host = server.address().address
  const port = server.address().port

  console.log(
    "Started PeerServer on %s, port: %s, path: %s",
    host,
    port,
    options.path || "/",
  )
})