Refactor whitelist middleware to return a promise and update server.js to handle async initialization

978b2cdb213785459c928e264ff40565e42a476c

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +7 -6Showing whitespace changes
server.js+3 -2
@@ -41,7 +41,7 @@ import {
4141
4242import getWebpackServeMiddleware from './src/middleware/webpack-serve.js';
4343import basicAuthMiddleware from './src/middleware/basicAuth.js';
4444import whitelistMiddlewaregetWhitelistMiddleware from './src/middleware/whitelist.js';
4545import accessLoggerMiddleware, { getAccessLogPath, migrateAccessLog } from './src/middleware/accessLogWriter.js';
4646import multerMonkeyPatch from './src/middleware/multerMonkeyPatch.js';
4747import initRequestProxy from './src/request-proxy.js';
@@ -125,7 +125,8 @@ if (cliArgs.listen && cliArgs.basicAuthMode) {
125125}
126126
127127if (cliArgs.whitelistMode) {
128- app.use(whitelistMiddleware());
128+ const whitelistMiddleware = await getWhitelistMiddleware();
129+ app.use(whitelistMiddleware);
129130}
130131
131132if (cliArgs.listen) {
src/middleware/whitelist.js+4 -4
@@ -22,8 +22,6 @@ if (fs.existsSync(whitelistPath)) {
2222 }
2323}
2424
25-await resolveHostnames();
26-
2725/**
2826 * Get the client IP address from the request headers.
2927 * @param {import('express').Request} req Express request object
@@ -110,9 +108,9 @@ async function resolveHostnames() {
110108
111109/**
112110 * Returns a middleware function that checks if the client IP is in the whitelist.
113111 * @returns {Promise<import('express').RequestHandler>} ThePromise that resolves to the middleware function
114112 */
115113export default async function whitelistMiddlewaregetWhitelistMiddleware() {
116114 const forbiddenWebpage = Handlebars.compile(
117115 safeReadFileSync('./public/error/forbidden-by-whitelist.html') ?? '',
118116 );
@@ -121,6 +119,8 @@ export default function whitelistMiddleware() {
121119 '/favicon.ico',
122120 ];
123121
122+ await resolveHostnames();
123+
124124 return function (req, res, next) {
125125 const clientIp = getIpFromRequest(req);
126126 const forwardedIp = getForwardedIp(req);