indonesiadata-lib
Version:
Library seluruh data wilayah Indonesia
30 lines (29 loc) • 1.29 kB
JavaScript
import fs from "fs/promises";
import { resolve, dirname } from "path";
import { fileURLToPath } from "url";
const __dirname = dirname(fileURLToPath(import.meta.url));
// Ambil semua provinsi dari provinsi.json
export async function getProvinsiList() {
const filePath = resolve(__dirname, "../data/provinsi.json");
const raw = await fs.readFile(filePath, "utf-8");
return JSON.parse(raw);
}
// Ambil satu provinsi dari file {kodeProvinsi}.json
export async function getKabupatenByProvinsi(kodeProvinsi) {
const filePath = resolve(__dirname, `../data/${kodeProvinsi}.json`);
const raw = await fs.readFile(filePath, "utf-8");
const prov = JSON.parse(raw);
return prov.kabupaten;
}
// Ambil kecamatan dari kabupaten tertentu
export async function getKecamatanByKabupaten(kodeProvinsi, kodeKabupaten) {
const kabupaten = await getKabupatenByProvinsi(kodeProvinsi);
const kab = kabupaten.find((k) => k.kode === kodeKabupaten);
return kab?.kecamatan ?? [];
}
// Ambil desa dari kecamatan tertentu
export async function getDesaByKecamatan(kodeProvinsi, kodeKabupaten, kodeKecamatan) {
const kecamatan = await getKecamatanByKabupaten(kodeProvinsi, kodeKabupaten);
const kec = kecamatan.find((k) => k.kode === kodeKecamatan);
return kec?.desa ?? [];
}