Skip to content

Commit 4b57b46

Browse files
committed
Merge branch 'nakrovati-rebuild-server-on-fastify'
2 parents 7d761a3 + 4fa2d86 commit 4b57b46

24 files changed

+1941
-1460
lines changed

server/.eslintrc.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"root": true,
3+
"env": {
4+
"node": true,
5+
"es2024": true
6+
},
7+
"extends": "eslint:recommended",
8+
"parserOptions": {
9+
"sourceType": "module"
10+
}
11+
}

server/.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package-lock.json

server/app.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import Fastify from "fastify";
2+
import frameworksRouter from "./src/frameworks/frameworksRouter.js";
3+
import cspRouter from "./src/csp/cspRouter.js";
4+
import staticRouter from "./src/static/staticRouter.js";
5+
6+
/**
7+
* Builds the server but does not start it. Need it for testing API
8+
* @param {import("fastify").FastifyServerOptions} options
9+
* @returns {import("fastify").FastifyInstance}
10+
*/
11+
function buildServer(options = {}) {
12+
const fastify = Fastify(options);
13+
14+
fastify.addHook("onRequest", (request, reply, done) => {
15+
if (request.url.endsWith("index.html")) {
16+
reply.header("Cross-Origin-Embedder-Policy", "require-corp");
17+
reply.header("Cross-Origin-Opener-Policy", "same-origin");
18+
}
19+
done();
20+
});
21+
22+
fastify.register(staticRouter);
23+
fastify.register(frameworksRouter);
24+
fastify.register(cspRouter, { prefix: "/csp" });
25+
26+
return fastify;
27+
}
28+
29+
export { buildServer };

server/csp/cspControllers.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

server/csp/cspRouter.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

server/frameworks/frameworksControllers.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

server/frameworks/frameworksRouter.js

Lines changed: 0 additions & 23 deletions
This file was deleted.

server/frameworks/helpers/index.js

Lines changed: 0 additions & 97 deletions
This file was deleted.

server/frameworks/utils/isFrameworkDir.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

server/index.js

Lines changed: 8 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,13 @@
1-
import express from "express";
2-
import path from "path";
3-
import { cwd } from "process";
1+
import { buildServer } from "./app.js";
42

5-
import { addSiteIsolationForIndex } from "./middlewares/addSiteIsolationForIndex.js";
6-
import frameworksRouter from "./frameworks/frameworksRouter.js";
7-
import cspRouter from "./csp/cspRouter.js";
8-
import { isCSPEnabled } from "./csp/cspControllers.js";
9-
import { frameworksDirectory } from "./config/directories.js";
10-
11-
const app = express();
123
const PORT = 8080;
134

14-
const webDriverResultDirectory = path.join(cwd(), "..", "webdriver-ts-results");
15-
16-
app.use(express.json());
17-
app.use(addSiteIsolationForIndex);
18-
19-
app.use(
20-
"/frameworks",
21-
express.static(frameworksDirectory, {
22-
setHeaders: (res, path) => {
23-
if (isCSPEnabled && path.endsWith("index.html")) {
24-
console.log("adding CSP to ", path);
25-
res.setHeader(
26-
"Content-Security-Policy",
27-
"default-src 'self'; report-uri /csp"
28-
);
29-
}
30-
},
31-
})
32-
);
33-
app.use("/webdriver-ts-results", express.static(webDriverResultDirectory));
34-
app.use("/css", express.static(path.join(frameworksDirectory, "..", "css")));
35-
36-
app.use(frameworksRouter);
37-
app.use(cspRouter);
38-
39-
app.get("/index.html", (req, res) => {
40-
const indexHTMLPath = path.join(cwd(), "..", "index.html");
41-
res.sendFile(indexHTMLPath);
42-
});
5+
const server = buildServer();
436

44-
app.listen(PORT, () => {
7+
try {
8+
await server.listen({ port: PORT });
459
console.log(`Server running on port ${PORT}`);
46-
});
10+
} catch (error) {
11+
server.log.error(error);
12+
process.exit(1);
13+
}

0 commit comments

Comments
 (0)