Initial commit: New MoreminiMore website with fresh design
This commit is contained in:
58
node_modules/astro/dist/vite-plugin-astro-server/route-guard.js
generated
vendored
Normal file
58
node_modules/astro/dist/vite-plugin-astro-server/route-guard.js
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
import * as fs from "node:fs";
|
||||
import { notFoundTemplate } from "../template/4xx.js";
|
||||
import { writeHtmlResponse } from "./response.js";
|
||||
const VITE_INTERNAL_PREFIXES = [
|
||||
"/@vite/",
|
||||
"/@fs/",
|
||||
"/@id/",
|
||||
"/__vite",
|
||||
"/@react-refresh",
|
||||
"/node_modules/",
|
||||
"/.astro/"
|
||||
];
|
||||
function routeGuardMiddleware(settings) {
|
||||
const { config } = settings;
|
||||
return function devRouteGuard(req, res, next) {
|
||||
const url = req.url;
|
||||
if (!url) {
|
||||
return next();
|
||||
}
|
||||
const accept = req.headers.accept || "";
|
||||
if (!accept.includes("text/html")) {
|
||||
return next();
|
||||
}
|
||||
let pathname;
|
||||
try {
|
||||
pathname = decodeURI(new URL(url, "http://localhost").pathname);
|
||||
} catch {
|
||||
return next();
|
||||
}
|
||||
if (VITE_INTERNAL_PREFIXES.some((prefix) => pathname.startsWith(prefix))) {
|
||||
return next();
|
||||
}
|
||||
if (url.includes("?")) {
|
||||
return next();
|
||||
}
|
||||
const publicFilePath = new URL("." + pathname, config.publicDir);
|
||||
if (fs.existsSync(publicFilePath)) {
|
||||
return next();
|
||||
}
|
||||
const srcFilePath = new URL("." + pathname, config.srcDir);
|
||||
if (fs.existsSync(srcFilePath)) {
|
||||
return next();
|
||||
}
|
||||
const rootFilePath = new URL("." + pathname, config.root);
|
||||
try {
|
||||
const stat = fs.statSync(rootFilePath);
|
||||
if (stat.isFile()) {
|
||||
const html = notFoundTemplate(pathname);
|
||||
return writeHtmlResponse(res, 404, html);
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
return next();
|
||||
};
|
||||
}
|
||||
export {
|
||||
routeGuardMiddleware
|
||||
};
|
||||
Reference in New Issue
Block a user