aboutsummaryrefslogtreecommitdiff
path: root/src/server/Initialization.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Initialization.ts')
-rw-r--r--src/server/Initialization.ts29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/server/Initialization.ts b/src/server/Initialization.ts
index 74770153d..1fb949221 100644
--- a/src/server/Initialization.ts
+++ b/src/server/Initialization.ts
@@ -19,7 +19,7 @@ import * as fs from 'fs';
import * as request from 'request';
import RouteSubscriber from './RouteSubscriber';
import { publicDirectory } from '.';
-import { logPort } from './ActionUtilities';
+import { logPort, addBeforeExitHandler } from './ActionUtilities';
import { timeMap } from './ApiManagers/UserManager';
import { blue, yellow } from 'colors';
@@ -27,18 +27,18 @@ import { blue, yellow } from 'colors';
from being exposed. */
export type RouteSetter = (server: RouteManager) => void;
export interface InitializationOptions {
- listenAtPort: number;
+ serverPort: number;
routeSetter: RouteSetter;
}
export default async function InitializeServer(options: InitializationOptions) {
- const { listenAtPort, routeSetter } = options;
- const server = buildWithMiddleware(express());
+ const { serverPort, routeSetter } = options;
+ const app = buildWithMiddleware(express());
- server.use(express.static(publicDirectory));
- server.use("/images", express.static(publicDirectory));
+ app.use(express.static(publicDirectory));
+ app.use("/images", express.static(publicDirectory));
- server.use("*", ({ user, originalUrl }, _res, next) => {
+ app.use("*", ({ user, originalUrl }, _res, next) => {
if (!originalUrl.includes("Heartbeat")) {
const userEmail = user?.email;
if (userEmail) {
@@ -48,19 +48,20 @@ export default async function InitializeServer(options: InitializationOptions) {
next();
});
- server.use(wdm(compiler, { publicPath: config.output.publicPath }));
- server.use(whm(compiler));
+ app.use(wdm(compiler, { publicPath: config.output.publicPath }));
+ app.use(whm(compiler));
- registerAuthenticationRoutes(server);
- registerCorsProxy(server);
+ registerAuthenticationRoutes(app);
+ registerCorsProxy(app);
const isRelease = determineEnvironment();
- routeSetter(new RouteManager(server, isRelease));
+ routeSetter(new RouteManager(app, isRelease));
- server.listen(listenAtPort, () => {
- logPort("server", listenAtPort);
+ const server = app.listen(serverPort, () => {
+ logPort("server", serverPort);
console.log();
});
+ addBeforeExitHandler(async () => { await new Promise<Error>(resolve => server.close(resolve)); });
return isRelease;
}