1.0.1 • Published 2 months ago

@slynhq/geo v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

@slynhq/geo

A lightweight Next.js package for accessing geolocation data from Vercel's edge network headers.

Features

  • Get complete geolocation data (city, country, region, coordinates, continent)
  • Individual helper functions for specific geolocation data
  • Middleware compatibility
  • TypeScript support
  • Zero dependencies

Installation

npm install @slynhq/geo
# or
yarn add @slynhq/geo
# or
pnpm add @slynhq/geo

Usage

Get Complete Geolocation Data

import { getGeoLocation } from "@slynhq/geo";

// In a route handler
export async function GET() {
  const geo = await getGeoLocation();
  return Response.json({ geo });
}

The getGeoLocation() function returns an object with the following properties:

  • city: City name
  • country: Country code (e.g., 'US', 'GB')
  • countryRegion: Country region
  • latitude: Latitude coordinate
  • longitude: Longitude coordinate
  • region: Region name
  • userAgent: User agent string
  • continent: Continent name

Individual Helper Functions

import { getCountry, getCity, getRegion, getContinent } from "@slynhq/geo";

// Get country code
const country = await getCountry(); // e.g., 'US'

// Get city name
const city = await getCity(); // e.g., 'San Francisco'

// Get region name
const region = await getRegion(); // e.g., 'California'

// Get continent name
const continent = await getContinent(); // e.g., 'North America'

Middleware Usage

import { getGeo } from "@slynhq/geo";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export function middleware(request: NextRequest) {
  const geo = getGeo(request);
  // Use geo data in middleware
  return NextResponse.next();
}

Get All Headers

import { getAllHeaders } from "@slynhq/geo";

export async function GET() {
  const headers = await getAllHeaders();
  return Response.json({ headers });
}

Requirements

  • Next.js 13 or later
  • Vercel deployment (for geolocation headers)

Note

This package relies on Vercel's edge network headers for geolocation data. It will only work when deployed on Vercel's platform.

License

MIT

1.0.1

2 months ago

1.0.0

2 months ago