Skip to content

Commit 280e13d

Browse files
authored
Merge pull request #378 from Tampere/fix/caching-and-map
Fix/caching and map
2 parents 789fc8d + c784a49 commit 280e13d

5 files changed

Lines changed: 40 additions & 16 deletions

File tree

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
},
1010
"lint-staged": {
1111
"client/**/*.{ts,tsx}": [
12-
"npm run lint --prefix client",
13-
"npm run tscw --prefix client -- --strict"
12+
"npm run lint --prefix client"
1413
],
1514
"server/**/*.ts": [
16-
"npm run lint --prefix server",
17-
"npm run tscw --prefix server -- --strict"
15+
"npm run lint --prefix server"
1816
],
1917
"*.{js,jsx,ts,tsx,json}": "prettier --write --ignore-unknown"
2018
}

server/package-lock.json

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
"winston": "^3.17.0"
7575
},
7676
"devDependencies": {
77+
"@types/compression": "^1.8.1",
7778
"@types/connect-pg-simple": "^7.0.3",
7879
"@types/email-templates": "^10.0.4",
7980
"@types/express": "^5.0.3",

server/src/app.ts

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
import compression from 'compression';
22
import express from 'express';
3+
import { readFile } from 'fs/promises';
4+
import helmet from 'helmet';
35
import morgan from 'morgan';
46
import * as path from 'path';
7+
import { createServer } from 'vite';
58
import { initializePuppeteerCluster } from './application/screenshot';
9+
import { getSurveyTitle } from './application/survey';
610
import { configureAuth, configureMockAuth, ensureAuthenticated } from './auth';
711
import { getDb, initializeDatabase, migrateUp } from './database';
12+
import { startUpdatingRefreshToken } from './email/refresh-token';
813
import { HttpResponseError } from './error';
914
import logger from './logger';
1015
import rootRouter from './routes';
11-
import helmet from 'helmet';
12-
import { readFile } from 'fs/promises';
13-
import { createServer } from 'vite';
14-
import { getSurveyTitle } from './application/survey';
15-
import { startUpdatingRefreshToken } from './email/refresh-token';
16+
17+
function setNoCacheForIndex(res: express.Response, filePath: string) {
18+
if (filePath.endsWith('index.html')) {
19+
res.setHeader('Cache-Control', 'no-cache, no-store');
20+
}
21+
}
22+
23+
const noCacheConfig = {
24+
'Cache-Control': 'no-cache, no-store',
25+
};
1626

1727
const isDev = process.env.NODE_ENV === 'development';
1828

@@ -128,9 +138,9 @@ async function start() {
128138
ensureAuthenticated({
129139
redirectToLogin: true,
130140
}),
131-
express.static('static/admin'),
141+
express.static('static/admin', { setHeaders: setNoCacheForIndex }),
132142
);
133-
app.use('/', express.static('static'));
143+
app.use('/', express.static('static', { setHeaders: setNoCacheForIndex }));
134144

135145
// Root router for the API
136146
app.use('/api', rootRouter);
@@ -142,7 +152,9 @@ async function start() {
142152
redirectToLogin: true,
143153
}),
144154
(_req, res) => {
145-
res.sendFile(path.join(__dirname, '../static/admin/index.html'));
155+
res
156+
.set(noCacheConfig)
157+
.sendFile(path.join(__dirname, '../static/admin/index.html'));
146158
},
147159
);
148160

@@ -183,7 +195,10 @@ async function start() {
183195
.replaceAll(`<!--app-title -->`, title)
184196
.replace('@clientSrc', 'src');
185197

186-
res.status(200).set({ 'Content-Type': 'text/html' }).end(renderedHtml);
198+
res
199+
.status(200)
200+
.set({ 'Content-Type': 'text/html', ...noCacheConfig })
201+
.end(renderedHtml);
187202
} catch (e: any) {
188203
isDev && vite.ssrFixStacktrace(e);
189204
logger.error(e.stack);

server/src/routes/map.routes.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { ensureAuthenticated } from '@src/auth';
21
import { validateRequest } from '@src/utils';
32
import { Router } from 'express';
43
import asyncHandler from 'express-async-handler';
@@ -9,13 +8,12 @@ const router = Router();
98

109
router.get(
1110
'/available-layers',
12-
ensureAuthenticated(),
1311
validateRequest([query('url').isString()]),
1412
asyncHandler(async (req, res) => {
1513
const mapUrl = decodeURIComponent(req.query.url.toString());
1614
const layers = await getAvailableMapLayers(mapUrl);
1715
res.json(layers);
18-
})
16+
}),
1917
);
2018

2119
export default router;

0 commit comments

Comments
 (0)