[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/0xdevalias/github-docs/main/server.js [Back]  [Original]

require('./lib/check-node-version')
require('./lib/handle-exceptions')
require('./lib/feature-flags')

const express = require('express')
const portUsed = require('port-used')
const warmServer = require('./lib/warm-server')
const port = Number(process.env.PORT) || 4000
const app = express()

require('./middleware')(app)

// prevent the app from starting up during tests
/* istanbul ignore next */
if (!module.parent) {
  // check that the development server is not already running
  portUsed.check(port).then(async status => {
    if (status === false) {
      // If in a deployed environment, warm the server at the start
      if (process.env.NODE_ENV === 'production') {
        // If in a true production environment, wait for the cache to be fully warmed.
        if (process.env.HEROKU_PRODUCTION_APP || process.env.GITHUB_ACTIONS) {
          await warmServer()
        }
      }

      // workaround for https://github.com/expressjs/express/issues/1101
      const server = require('http').createServer(app)
      server.listen(port, () => console.log(`app running on http://localhost:${port}`))
        .on('error', () => server.close())
    } else {
      console.log(`\n\n\nPort ${port} is not available. You may already have a server running.`)
      console.log('Try running `killall node` to shut down all your running node processes.\n\n\n')
      console.log('\x07') // system 'beep' sound
      process.exit(1)
    }
  })
}

module.exports = app

Web Proxy Viewer  |  New URL  |  Original Page