#!/usr/bin/env node /** * Module dependencies. */ import debugLib from "debug"; import http from "http"; import app from "../app"; import { port } from "../config"; const debug = debugLib("musictopus:server"); const server = http.createServer(app); /** * Event listener for HTTP server "error" event. * @param {*} error */ function onError(error) { if (error.syscall !== "listen") { throw error; } const bind = typeof port === "string" ? `Pipe ${port}` : `Port ${port}`; switch (error.code) { case "EACCES": console.error(`${bind} requires elevated privileges`); process.exit(1); break; case "EADDRINUSE": console.error(`${bind} is already in use`); process.exit(1); break; default: throw error; } } /** * Event listener for HTTP server "listening" event. */ function onListening() { const addr = server.address(); const bind = typeof addr === "string" ? `pipe ${addr}` : `port ${addr.port}`; debug(`Listening on ${bind}`); } server.listen(port); server.on("error", onError); server.on("listening", onListening);