dev: support dynamic import while developing

Massimo Melina committed Feb 3, 2023 at 23:57 UTC 301f2844cddd5898ac254e090775dfdd718013b6
1 file changed +13 -1
src/middlewares.ts
+13 -1
@@ -62,10 +62,22 @@ export const sessions = (app: Koa) => session({
62
63 const serveFrontendFiles = serveGuiFiles(process.env.FRONTEND_PROXY, FRONTEND_URI)
64 const serveFrontendPrefixed = mount(FRONTEND_URI.slice(0,-1), serveFrontendFiles)
65 -const serveAdminPrefixed = mount(ADMIN_URI.slice(0,-1), serveGuiFiles(process.env.ADMIN_PROXY, ADMIN_URI))
65 +const serveAdminFiles = serveGuiFiles(process.env.ADMIN_PROXY, ADMIN_URI)
66 +const serveAdminPrefixed = mount(ADMIN_URI.slice(0,-1), serveAdminFiles)
67
68 export const serveGuiAndSharedFiles: Koa.Middleware = async (ctx, next) => {
69 const { path } = ctx
70 + // dynamic import on frontend|admin (used for non-https login) while developing (vite4) is not producing a relative path
71 + if (DEV && path.startsWith('/node_modules/')) {
72 + let { referer } = ctx.headers
73 + referer &&= new URL(referer).pathname
74 + if (referer) {
75 + if (referer.startsWith(ADMIN_URI))
76 + return serveAdminFiles(ctx, next)
77 + if (referer.startsWith(FRONTEND_URI))
78 + return serveFrontendFiles(ctx, next)
79 + }
80 + }
81 if (ctx.body)
82 return next()
83 if (path.startsWith(FRONTEND_URI))