All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 1m14s
- @fastify/compress (brotli quality 4 + gzip, global): alle statische assets én API-JSON (zoals /me/data) gaan gecomprimeerd over de lijn - eerste lading van ~715 KB naar grofweg een derde - Nieuw src/frontend.js: index.html wordt bij boot één keer gelezen, ?v=__V__ wordt vervangen door de app-versie en de pagina wordt uit het geheugen geserveerd met no-cache - Cache-beleid per prefix: js/css een jaar immutable (veilig dankzij de geversioneerde URL's), fonts 7 dagen, afbeeldingen 1 dag met zwakke etag als 304-vangnet - herhaalbezoek kost vrijwel geen bytes meer - Alle 31 scripts staan nu met defer in de head: parallel downloaden, uitvoeren in dezelfde dwingende volgorde (core → widgets → board → app); font-preload bewust ongeversioneerd (moet byte-gelijk blijven aan de url() in teach.css) - Compress geregistreerd vóór de api/frontend-registraties (onSend-hook geldt alleen voor latere routes) - geborgd met een teksttest - 6 nieuwe tests (test/frontend.test.js): versie-injectie, cache-headers per prefix, gzip+brotli round-trip, 304 op etag, defer/?v= op elk script Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0149FgUQvuwxKKEdvQGmNngF
24 lines
583 B
JSON
24 lines
583 B
JSON
{
|
|
"name": "teach",
|
|
"version": "0.1.0",
|
|
"description": "Teach digibord - Fastify server met static frontend en PostgreSQL",
|
|
"type": "module",
|
|
"main": "src/server.js",
|
|
"engines": {
|
|
"node": ">=20"
|
|
},
|
|
"scripts": {
|
|
"start": "node src/server.js",
|
|
"dev": "node --watch src/server.js",
|
|
"test": "node --test"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/compress": "^8.3.1",
|
|
"@fastify/cookie": "^11.1.1",
|
|
"@fastify/helmet": "^13.1.0",
|
|
"@fastify/rate-limit": "^11.1.0",
|
|
"@fastify/static": "^10.1.0",
|
|
"fastify": "^5.1.0",
|
|
"pg": "^8.13.1"
|
|
}
|
|
}
|