Merge fix/path-parsing

This commit is contained in:
Tom Moor 2021-11-17 21:02:53 -08:00
parent ec5e3120d2
commit c64387668d
4 changed files with 46 additions and 85 deletions

View File

@ -1,33 +0,0 @@
// flow-typed signature: 6b7b08ea7721b475bf21c23e1d7cd2f9
// flow-typed version: <<STUB>>/koa-sendfile_v2.0.0/flow_v0.104.0
/**
* This is an autogenerated libdef stub for:
*
* 'koa-sendfile'
*
* Fill this stub out by replacing all the `any` types.
*
* Once filled out, we encourage you to share your work with the
* community by sending a pull request to:
* https://github.com/flowtype/flow-typed
*/
declare module 'koa-sendfile' {
declare module.exports: any;
}
/**
* We include stubs for each file inside this npm package in case you need to
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
// Filename aliases
declare module 'koa-sendfile/index' {
declare module.exports: $Exports<'koa-sendfile'>;
}
declare module 'koa-sendfile/index.js' {
declare module.exports: $Exports<'koa-sendfile'>;
}

View File

@ -108,7 +108,7 @@
"koa-mount": "^3.0.0",
"koa-onerror": "^4.1.0",
"koa-router": "7.0.1",
"koa-sendfile": "2.0.0",
"koa-send": "5.0.1",
"koa-sslify": "2.1.2",
"koa-static": "^4.0.1",
"lodash": "^4.17.21",

View File

@ -4,7 +4,7 @@ import path from "path";
import util from "util";
import Koa from "koa";
import Router from "koa-router";
import sendfile from "koa-sendfile";
import send from "koa-send";
import serve from "koa-static";
import isUUID from "validator/lib/isUUID";
import { languages } from "../../shared/i18n";
@ -95,16 +95,26 @@ koa.use(
if (process.env.NODE_ENV === "production") {
router.get("/static/*", async (ctx) => {
ctx.set({
"Service-Worker-Allowed": "/",
"Access-Control-Allow-Origin": "*",
"Cache-Control": `max-age=${356 * 24 * 60 * 60}`,
});
try {
await send(ctx, ctx.path.substring(8), {
root: path.join(__dirname, "../../app/"),
setHeaders: (res, path, stat) => {
res.setHeader("Service-Worker-Allowed", "/");
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Cache-Control", `max-age=${365 * 24 * 60 * 60}`);
},
});
} catch (err) {
if (err.status === 404) {
// Serve a bad request instead of not found if the file doesn't exist
// This prevents CDN's from caching the response, allowing them to continue
// serving old file versions
ctx.status = 400;
return;
}
await sendfile(
ctx,
path.join(__dirname, "../../app/", ctx.path.substring(8))
);
throw err;
}
});
}
@ -116,16 +126,14 @@ router.get("/locales/:lng.json", async (ctx) => {
return;
}
if (process.env.NODE_ENV === "production") {
ctx.set({
"Cache-Control": `max-age=${7 * 24 * 60 * 60}`,
});
}
await sendfile(
ctx,
path.join(__dirname, "../../shared/i18n/locales", lng, "translation.json")
);
await send(ctx, path.join(lng, "translation.json"), {
setHeaders: (res, path, stat) => {
if (process.env.NODE_ENV === "production") {
res.setHeader("Cache-Control", `max-age=${7 * 24 * 60 * 60}`);
}
},
root: path.join(__dirname, "../../shared/i18n/locales"),
});
});
router.get("/robots.txt", (ctx) => {

View File

@ -5382,13 +5382,6 @@ de-indent@^1.0.2:
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
debug@*, debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
dependencies:
ms "2.1.2"
debug@3.1.0, debug@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
@ -5396,6 +5389,13 @@ debug@3.1.0, debug@~3.1.0:
dependencies:
ms "2.0.0"
debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
dependencies:
ms "2.1.2"
debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.1, debug@^2.6.3, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@ -6425,11 +6425,6 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
etag@^1.5.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
event-emitter@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
@ -9400,6 +9395,15 @@ koa-router@^10.0.0:
methods "^1.1.2"
path-to-regexp "^6.1.0"
koa-send@5.0.1, koa-send@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
dependencies:
debug "^4.1.1"
http-errors "^1.7.3"
resolve-path "^1.4.0"
koa-send@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-4.1.3.tgz#0822207bbf5253a414c8f1765ebc29fa41353cb6"
@ -9410,24 +9414,6 @@ koa-send@^4.1.3:
mz "^2.6.0"
resolve-path "^1.4.0"
koa-send@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
dependencies:
debug "^4.1.1"
http-errors "^1.7.3"
resolve-path "^1.4.0"
koa-sendfile@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/koa-sendfile/-/koa-sendfile-2.0.0.tgz#446e2a35ba7074ed03afda2c667c2359406e1082"
integrity sha1-RG4qNbpwdO0Dr9osZnwjWUBuEII=
dependencies:
debug "*"
etag "^1.5.1"
mz "2"
koa-sslify@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/koa-sslify/-/koa-sslify-2.1.2.tgz#8947fd53949d69d539607814097863c1ecf38f30"
@ -10337,7 +10323,7 @@ multer@^1.4.2:
type-is "^1.6.4"
xtend "^4.0.0"
mz@2, mz@^2.4.0, mz@^2.6.0:
mz@^2.4.0, mz@^2.6.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==