rsnext/packages/next/server/lib/start-server.ts

23 lines
657 B
TypeScript

import http from 'http'
import next from '../next'
export default async function start(
serverOptions: any,
port?: number,
hostname?: string
) {
const app = next({
...serverOptions,
customServer: false,
})
const srv = http.createServer(app.getRequestHandler())
await new Promise((resolve, reject) => {
// This code catches EADDRINUSE error if the port is already in use
srv.on('error', reject)
srv.on('listening', () => resolve())
srv.listen(port, hostname)
})
// It's up to caller to run `app.prepare()`, so it can notify that the server
// is listening before starting any intensive operations.
return app
}