Skip to content

Commit 2e1ddd4

Browse files
author
Sven Anders Robbestad
committed
Bruk gzip for å bruke mindre båndbredde
1 parent c17c824 commit 2e1ddd4

File tree

4 files changed

+74
-46
lines changed

4 files changed

+74
-46
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
node_modules
22
.idea
3+
.DS_Store
34
build
45

56
src/**/*.css

server/package-lock.json

+34-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
},
1010
"dependencies": {
1111
"@sanity/client": "^1.149.2",
12+
"compression": "^1.7.4",
1213
"console-stamp": "^0.2.9",
1314
"dotenv": "^8.0.0",
1415
"express": "^4.17.1",

server/server.js

+38-41
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
// Load environment
2-
require("console-stamp")(console, "[HH:MM:ss.l]");
3-
require("dotenv").config({ path: "../.env" });
2+
require('console-stamp')(console, '[HH:MM:ss.l]');
3+
require('dotenv').config({ path: '../.env' });
44
const jsdom = require('jsdom');
5-
const express = require("express");
6-
const path = require("path");
7-
const mustacheExpress = require("mustache-express");
8-
const getDecorator = require("./dekorator");
9-
const buildPath = path.resolve(__dirname, "../build");
5+
const express = require('express');
6+
const path = require('path');
7+
const mustacheExpress = require('mustache-express');
8+
const getDecorator = require('./dekorator');
9+
const buildPath = path.resolve(__dirname, '../build');
1010
const server = express();
1111
const { JSDOM } = jsdom;
12+
const compression = require('compression');
1213

1314
const frontendloggerScript = () => {
1415
const scriptTag = `<div id="frontendlogger"><script type="application/javascript" src="${process.env.FRONTENDLOGGER_BASE_URL}/logger.js"></script></div>`;
1516
const { document } = new JSDOM(scriptTag).window;
1617
return document.getElementById('frontendlogger')['innerHTML'];
17-
}
18+
};
1819

19-
const securityHeadersMiddleware = (req,res,next) => {
20-
res.header("X-Frame-Options", "SAMEORIGIN");
21-
res.header("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
22-
res.header("X-Content-Type-Options", "nosniff");
23-
res.header("X-XSS-Protection", "1; mode=block");
24-
res.header("Referrer-Policy", "no-referrer-when-downgrade");
20+
const securityHeadersMiddleware = (req, res, next) => {
21+
res.header('X-Frame-Options', 'SAMEORIGIN');
22+
res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
23+
res.header('X-Content-Type-Options', 'nosniff');
24+
res.header('X-XSS-Protection', '1; mode=block');
25+
res.header('Referrer-Policy', 'no-referrer-when-downgrade');
2526
next();
26-
}
27+
};
2728

28-
server.set("views", `${__dirname}/../build`);
29-
server.set("view engine", "mustache");
30-
server.engine("html", mustacheExpress());
29+
server.set('views', `${__dirname}/../build`);
30+
server.set('view engine', 'mustache');
31+
server.engine('html', mustacheExpress());
32+
33+
server.use(compression());
3134

3235
// Parse application/json
3336
server.use(express.json());
@@ -36,38 +39,32 @@ server.use(express.json());
3639
server.use('/', express.static(buildPath, { index: false }));
3740

3841
// Nais functions
39-
server.get(`/internal/isReady`, (req, res) =>
40-
res.sendStatus(200)
41-
);
42+
server.get(`/internal/isReady`, (req, res) => res.sendStatus(200));
4243

43-
server.get(`/internal/isAlive`, (req, res) =>
44-
res.sendStatus(200)
45-
);
44+
server.get(`/internal/isAlive`, (req, res) => res.sendStatus(200));
4645

4746
server.get(`/config`, (req, res) =>
48-
res.send({
49-
appUrl: process.env.REACT_APP_URL,
50-
loginserviceUrl: process.env.REACT_APP_LOGINSERVICE_URL,
51-
apiUrl: process.env.REACT_API_URL,
52-
})
47+
res.send({
48+
appUrl: process.env.REACT_APP_URL,
49+
loginserviceUrl: process.env.REACT_APP_LOGINSERVICE_URL,
50+
apiUrl: process.env.REACT_API_URL
51+
})
5352
);
5453

5554
// Match everything except internal og static
5655
server.use(/^(?!.*\/(internal|static)\/).*$/, securityHeadersMiddleware, (req, res) =>
57-
getDecorator()
58-
.then((fragments) => {
59-
res.render("index.html", {...fragments, FRONTEND_LOGGER_SCRIPT: frontendloggerScript()});
60-
})
61-
.catch((e) => {
62-
const error = `Failed to get decorator: ${e}`;
63-
console.error(error);
64-
res.status(500).send(error);
65-
})
56+
getDecorator()
57+
.then(fragments => {
58+
res.render('index.html', { ...fragments, FRONTEND_LOGGER_SCRIPT: frontendloggerScript() });
59+
})
60+
.catch(e => {
61+
const error = `Failed to get decorator: ${e}`;
62+
console.error(error);
63+
res.status(500).send(error);
64+
})
6665
);
6766

6867
const port = process.env.PORT || 8080;
6968
server.listen(port, () => console.log(`App listening on: ${port}`));
7069

71-
process.on("SIGTERM", () =>
72-
setTimeout(() => console.log("Har sovet i 30 sekunder"), 30000)
73-
);
70+
process.on('SIGTERM', () => setTimeout(() => console.log('Har sovet i 30 sekunder'), 30000));

0 commit comments

Comments
 (0)