MythEclipse b0dde3c885 refactor: migrate to Next.js with edge functions and update relay utilities
- Removed old relay utilities and tests, replacing them with a new structure under `src/lib/relay-utils.ts`.
- Implemented a new edge function in `app/api/proxy/route.ts` to handle proxy requests.
- Created a new Next.js layout and page structure for the frontend, including a user interface for testing the proxy.
- Added Tailwind CSS for styling and configured PostCSS.
- Updated TypeScript configuration for better compatibility with Next.js.
- Removed unused files and configurations related to the previous setup.
2026-05-07 20:59:23 +07:00
2026-05-07 18:42:09 +07:00
2026-05-07 18:42:09 +07:00

Edge Relay

HTTP proxy untuk Vercel Edge Runtime.

Cara Pakai

Header yang Dibutuhkan

Header Required Default Deskripsi
x-relay-target Yes - URL target yang ingin di-proxy
x-relay-path No / Path yang ditambahkan ke target

Contoh

# Proxy ke httpbin.org/get
curl -H "x-relay-target: https://httpbin.org" https://your-edge-function.vercel.app

# Proxy ke endpoint spesifik
curl -H "x-relay-target: https://api.example.com" \
     -H "x-relay-path: /v1/users" \
     https://your-edge-function.vercel.app

HTTP Methods

Mendukung semua HTTP methods:

  • GET, HEAD - tanpa body
  • POST, PUT, PATCH, DELETE - dengan body

Header Handling

Relay headers yang di-strip sebelum forwarded:

  • x-relay-target
  • x-relay-path
  • host

Headers lain tetap di-pass.

Error Handling

{
  "error": "Missing x-relay-target header"
}

HTTP 400 jika x-relay-target tidak ada.

Struktur Kode

proxy-vercel/
├── index.ts        # Edge handler
├── relay-utils.ts  # Pure functions untuk relay logic
└── index.test.ts   # Unit tests

relay-utils.ts

Function Deskripsi
normalizeTargetUrl(target, path) Gabung target + path, hapus trailing slash
stripRelayHeaders(headers) Hapus relay-specific headers
shouldSendBody(method) Cek apakah method butuh body
buildRelayRequest(req, url, headers) Bangun RequestInit untuk fetch
createRelayResponse(response) Buat Response dari fetch result

Development

bun test        # Run tests
bun run index.ts  # Start local server (untuk manual testing)
S
Description
Edge Proxy Relay
Readme
976 KiB
Languages
TypeScript 95.3%
HTML 4.6%
Dockerfile 0.1%