mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-10-03 10:13:47 +10:00
fix: handle /assets/ requests before it reaches orpc
This commit is contained in:
@@ -15,9 +15,6 @@ type LoaderData = Omit<RouterOutput["resume"]["getBySlug"], "data"> & { data: Re
|
||||
|
||||
export const Route = createFileRoute("/$username/$slug")({
|
||||
component: RouteComponent,
|
||||
beforeLoad: async ({ location }) => {
|
||||
console.log("/$username/$slug was invoked with pathname: ", location.pathname);
|
||||
},
|
||||
loader: async ({ context, params }) => {
|
||||
const { username, slug } = params;
|
||||
const resume = await context.queryClient.ensureQueryData(
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import { describe, expect, it } from "vite-plus/test";
|
||||
|
||||
import { isReservedPathRequest } from "./server";
|
||||
|
||||
describe("isReservedPathRequest", () => {
|
||||
it("detects asset requests that should not be handled as public resumes", () => {
|
||||
expect(isReservedPathRequest(new Request("https://example.com/assets/index-BNEstQDj.js"))).toBe(true);
|
||||
expect(isReservedPathRequest(new Request("https://example.com/assets/_slug-BJEV_y42.js"))).toBe(true);
|
||||
});
|
||||
|
||||
it("allows public resume routes", () => {
|
||||
expect(isReservedPathRequest(new Request("https://example.com/amruthpillai/reactive-resume"))).toBe(false);
|
||||
});
|
||||
});
|
||||
@@ -14,8 +14,17 @@ function setIfAbsent(headers: Headers, key: string, value: string) {
|
||||
if (!headers.has(key)) headers.set(key, value);
|
||||
}
|
||||
|
||||
const reservedPathPrefixes = ["/assets/"];
|
||||
|
||||
export function isReservedPathRequest(request: Request) {
|
||||
const { pathname } = new URL(request.url);
|
||||
return reservedPathPrefixes.some((prefix) => pathname.startsWith(prefix));
|
||||
}
|
||||
|
||||
export default createServerEntry({
|
||||
async fetch(request) {
|
||||
if (isReservedPathRequest(request)) return new Response(null, { status: 404 });
|
||||
|
||||
const response = await handler.fetch(request);
|
||||
const headers = new Headers(response.headers);
|
||||
const contentType = headers.get("content-type") ?? "";
|
||||
|
||||
Reference in New Issue
Block a user