create project
This commit is contained in:
56
kitabcitab/node_modules/next/dist/esm/server/lib/start-server.js
generated
vendored
Normal file
56
kitabcitab/node_modules/next/dist/esm/server/lib/start-server.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
import { warn } from "../../build/output/log";
|
||||
import http from "http";
|
||||
import next from "../next";
|
||||
import cluster from "cluster";
|
||||
import v8 from "v8";
|
||||
const MAXIMUM_HEAP_SIZE_ALLOWED = v8.getHeapStatistics().heap_size_limit / 1024 / 1024 * 0.9;
|
||||
export function startServer(opts) {
|
||||
let requestHandler;
|
||||
const server = http.createServer((req, res)=>{
|
||||
return requestHandler(req, res).finally(()=>{
|
||||
if (cluster.worker && process.memoryUsage().heapUsed / 1024 / 1024 > MAXIMUM_HEAP_SIZE_ALLOWED) {
|
||||
cluster.worker.kill();
|
||||
}
|
||||
});
|
||||
});
|
||||
if (opts.keepAliveTimeout) {
|
||||
server.keepAliveTimeout = opts.keepAliveTimeout;
|
||||
}
|
||||
return new Promise((resolve, reject)=>{
|
||||
let port = opts.port;
|
||||
let retryCount = 0;
|
||||
server.on("error", (err)=>{
|
||||
if (port && opts.allowRetry && err.code === "EADDRINUSE" && retryCount < 10) {
|
||||
warn(`Port ${port} is in use, trying ${port + 1} instead.`);
|
||||
port += 1;
|
||||
retryCount += 1;
|
||||
server.listen(port, opts.hostname);
|
||||
} else {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
let upgradeHandler;
|
||||
if (!opts.dev) {
|
||||
server.on("upgrade", (req, socket, upgrade)=>{
|
||||
upgradeHandler(req, socket, upgrade);
|
||||
});
|
||||
}
|
||||
server.on("listening", ()=>{
|
||||
const addr = server.address();
|
||||
const hostname = !opts.hostname || opts.hostname === "0.0.0.0" ? "localhost" : opts.hostname;
|
||||
const app = next({
|
||||
...opts,
|
||||
hostname,
|
||||
customServer: false,
|
||||
httpServer: server,
|
||||
port: addr && typeof addr === "object" ? addr.port : port
|
||||
});
|
||||
requestHandler = app.getRequestHandler();
|
||||
upgradeHandler = app.getUpgradeHandler();
|
||||
resolve(app);
|
||||
});
|
||||
server.listen(port, opts.hostname);
|
||||
});
|
||||
}
|
||||
|
||||
//# sourceMappingURL=start-server.js.map
|
||||
Reference in New Issue
Block a user