№ 03 · Projects · maintained

GeoThai

Zero-dependency TypeScript package for Thailand's geographic data — provinces, districts, subdistricts, and postal codes.

Created
Stack
TypeScriptnpmThailandOpen Source
Site
www.npmjs.com/package/geothai
Source
GeoThai/npm-packages

A zero-dependency TypeScript package providing structured geographic data for Thailand. Covers all provinces, districts, subdistricts, and postal codes with typed lookup and filter functions.

Features

  • Full coverage — 77 provinces, 900+ districts, 7,000+ subdistricts, and all postal codes
  • Zero runtime dependencies — ships self-contained data with no external fetches
  • Dual ESM/CJS — works in both module systems with full TypeScript type definitions
  • Filter by criterion — query by Thai name, English name, code, or any field

Usage

import {
  getAllProvinces,
  getProvinceByCode,
  getProvincesByCriterion,
} from "geothai";

// All provinces
const provinces = getAllProvinces();

// Single province by code (with auto-completion)
const bangkok = getProvinceByCode("10");

// Filter by Thai name
const filtered = getProvincesByCriterion({ name_th: "กรุงเทพมหานคร" });

Stats

  • 9,300+ downloads in the past year
  • v3.0.0 current release, built with tsdown
  • Requires Node.js 20+

Maintained under the GeoThai GitHub organization.