Fix small typo in the `IP_HEADER_NAME` description. <img width="362" alt="Screenshot 2024-01-08 at 7 25 34 PM" src="https://github.com/vercel/vercel/assets/762112/db4d684a-5a12-45d0-8428-981bf2489999">
@vercel/edge
Table of contents
Interfaces
Variables
- CITY_HEADER_NAME
- COUNTRY_HEADER_NAME
- EMOJI_FLAG_UNICODE_STARTING_POSITION
- IP_HEADER_NAME
- LATITUDE_HEADER_NAME
- LONGITUDE_HEADER_NAME
- REGION_HEADER_NAME
- REQUEST_ID_HEADER_NAME
Functions
Variables
CITY_HEADER_NAME
• Const CITY_HEADER_NAME: "x-vercel-ip-city"
City of the original client IP as calculated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:4
COUNTRY_HEADER_NAME
• Const COUNTRY_HEADER_NAME: "x-vercel-ip-country"
Country of the original client IP as calculated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:8
EMOJI_FLAG_UNICODE_STARTING_POSITION
• Const EMOJI_FLAG_UNICODE_STARTING_POSITION: 127397
Unicode characters for emoji flags start at this number, and run up to 127469.
Defined in
packages/edge/src/edge-headers.ts:34
IP_HEADER_NAME
• Const IP_HEADER_NAME: "x-real-ip"
Client IP as calculated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:12
LATITUDE_HEADER_NAME
• Const LATITUDE_HEADER_NAME: "x-vercel-ip-latitude"
Latitude of the original client IP as calculated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:16
LONGITUDE_HEADER_NAME
• Const LONGITUDE_HEADER_NAME: "x-vercel-ip-longitude"
Longitude of the original client IP as calculated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:20
REGION_HEADER_NAME
• Const REGION_HEADER_NAME: "x-vercel-ip-country-region"
Country region of the original client IP calculated by Vercel Proxy.
See docs.
Defined in
packages/edge/src/edge-headers.ts:26
REQUEST_ID_HEADER_NAME
• Const REQUEST_ID_HEADER_NAME: "x-vercel-id"
The request ID for each request generated by Vercel Proxy.
Defined in
packages/edge/src/edge-headers.ts:30
Functions
geolocation
▸ geolocation(request): Geo
Returns the location information for the incoming request.
See
Parameters
| Name | Type | Description |
|---|---|---|
request |
Request |
The incoming request object which provides the geolocation data |
Returns
Defined in
packages/edge/src/edge-headers.ts:128
ipAddress
▸ ipAddress(request): string | undefined
Returns the IP address of the request from the headers.
See
Parameters
| Name | Type | Description |
|---|---|---|
request |
Request |
The incoming request object which provides the IP |
Returns
string | undefined
Defined in
packages/edge/src/edge-headers.ts:99
json
▸ json(data, init?): Response
Builds a response object from a serializable JavaScript object:
- sets the 'Content-Type' response header to 'application/json'
- sets the response body from provided data
See
https://fetch.spec.whatwg.org/#dom-response-json
Example
import { json } from '@vercel/edge';
const response = json(
{ notification: { success: true, content: 'worked' } },
{ headers: { 'x-custom': '1' } }
);
Parameters
| Name | Type | Description |
|---|---|---|
data |
any |
serialized data |
init? |
ResponseInit |
optional custom response status, statusText and headers |
Returns
Defined in
packages/edge/src/response.ts:19
next
▸ next(init?): Response
Returns a Response that instructs the system to continue processing the request.
Example
import { next } from '@vercel/edge';
export default function middleware(_req: Request) {
return next();
}
Example
import { next } from '@vercel/edge';
export default function middleware(_req: Request) {
return next({
headers: { 'x-from-middleware': 'true' },
});
}
Parameters
| Name | Type | Description |
|---|---|---|
init? |
ExtraResponseInit |
Additional options for the response |
Returns
Defined in
packages/edge/src/middleware-helpers.ts:145
rewrite
▸ rewrite(destination, init?): Response
Returns a response that rewrites the request to a different URL.
Example
import { rewrite, next } from '@vercel/edge';
export default async function middleware(req: Request) {
const flagged = await getFlag(req, 'isExperimental');
if (flagged) {
const url = new URL(req.url);
url.pathname = `/experimental{url.pathname}`;
return rewrite(url);
}
return next();
}
Example
import { rewrite, next } from '@vercel/edge';
export default function middleware(req: Request) {
const auth = checkJwt(req.headers.get('Authorization'));
if (!checkJwt) {
return rewrite(new URL('/api/error-unauthorized', req.url));
}
const url = new URL(req.url);
url.searchParams.set('_userId', auth.userId);
return rewrite(url);
}
export const config = { matcher: '/api/users/:path*' };
Parameters
| Name | Type | Description |
|---|---|---|
destination |
string | URL |
new URL to rewrite the request to |
init? |
ExtraResponseInit |
Additional options for the response |