diff --git a/package.json b/package.json index 88a5af1..3202ca1 100644 --- a/package.json +++ b/package.json @@ -97,16 +97,18 @@ "@fortawesome/fontawesome-svg-core": "^1.2.25", "@fortawesome/free-solid-svg-icons": "^5.11.2", "compression": "^1.7.4", + "etag": "^1.8.1", "express": "^4.17.1", "express-winston": "^4.0.5", "file-type": "^12.3.0", + "fresh": "^0.5.2", "fs-extra": "^9.0.1", "helmet": "^4.1.0", "json5": "^2.1.3", "lodash": "^4.17.20", "node-pty": "^0.9.0", + "parseurl": "^1.3.3", "sass": "^1.26.10", - "serve-favicon": "^2.5.0", "socket.io": "^2.3.0", "socket.io-client": "^2.3.0", "toastify-js": "^1.9.1", @@ -118,7 +120,9 @@ "devDependencies": { "@types/chai": "^4.2.12", "@types/compression": "^1.7.0", + "@types/etag": "^1.8.0", "@types/express": "^4.17.8", + "@types/fresh": "^0.5.0", "@types/fs-extra": "^9.0.1", "@types/helmet": "^0.0.48", "@types/jsdom": "^12.2.4", @@ -126,7 +130,7 @@ "@types/mocha": "^8.0.3", "@types/morgan": "^1.7.37", "@types/node": "^14.6.3", - "@types/serve-favicon": "^2.5.0", + "@types/parseurl": "^1.3.1", "@types/sinon": "^7.5.1", "@types/socket.io": "^2.1.11", "@types/socket.io-client": "^1.4.33", diff --git a/src/server/socketServer.ts b/src/server/socketServer.ts index e5fb112..748d885 100644 --- a/src/server/socketServer.ts +++ b/src/server/socketServer.ts @@ -32,7 +32,7 @@ export async function server( .use(`${basePath}/client`, serveStatic('client')) .use(winston.logger(logger)) .use(compression()) - .use(favicon) + .use(favicon(basePath)) .use(redirect) .use(policies(allowIframe)) .get(basePath, client) diff --git a/src/server/socketServer/html.ts b/src/server/socketServer/html.ts index 47785ed..ccdf72d 100644 --- a/src/server/socketServer/html.ts +++ b/src/server/socketServer/html.ts @@ -1,4 +1,4 @@ -import type express from 'express'; +import type { Request, Response, RequestHandler } from 'express'; import { isDev } from '../../shared/env.js'; const jsFiles = isDev ? ['dev', 'wetty'] : ['wetty']; @@ -6,6 +6,7 @@ const cssFiles = ['styles', 'options', 'overlay', 'terminal']; const render = ( title: string, + favicon: string, css: string[], js: string[], ): string => ` @@ -14,6 +15,7 @@ const render = ( +