Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions middleware.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Configuration for Vercel Edge Middleware (same as original)
export const config = {
// Matcher: all paths except those starting with /api
matcher: ['/((?!api/).*)'],
};

export default async function middleware(request: Request): Promise<Response | void> {
const url = new URL(request.url);
const { pathname, search } = url;

// Additional check to ensure /api paths don't pass through
if (pathname.startsWith('/api')) {
return; // let the request proceed to the serverless function
}

// Build the target generator URL while preserving the path and query
const generatorUrl = new URL(pathname + search, 'https://gh-readme-profile-generator.vercel.app');

// Prepare headers to forward
const headers = new Headers();
headers.set('User-Agent', request.headers.get('User-Agent') || '');
headers.set('Accept', request.headers.get('Accept') || '*/*');
// Do not forward the 'host' header to avoid interference

try {
const response = await fetch(generatorUrl, {
method: request.method,
headers: headers,
});

// Copy headers from the generator response, except for some unnecessary ones
const responseHeaders = new Headers(response.headers);
// Remove headers related to connection or original server if needed
responseHeaders.delete('content-encoding');
responseHeaders.delete('transfer-encoding');

return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: responseHeaders,
});
} catch (error) {
// Handle errors by returning a 500 response or fallback
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
return new Response('Proxy error: ' + errorMessage, { status: 500 });
}
}
6 changes: 0 additions & 6 deletions vercel.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@
"maxDuration": 10
}
},
"redirects": [
{
"source": "/",
"destination": "https://gh-readme-profile-generator.vercel.app/"
}
],
"headers": [
{
"source": "/api",
Expand Down
Loading