From ef66df060cc7ca5a11d766afcf20e7dfbdf88194 Mon Sep 17 00:00:00 2001 From: Ivan Gemota <55120258+aivangogh@users.noreply.github.com> Date: Sat, 1 Aug 2026 22:27:56 +0800 Subject: [PATCH 1/2] fix: order regions for display --- src/utils/data-loader.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/utils/data-loader.ts b/src/utils/data-loader.ts index c28f829..d858b67 100644 --- a/src/utils/data-loader.ts +++ b/src/utils/data-loader.ts @@ -85,10 +85,20 @@ let provincesByRegion: Map | undefined; let municipalitiesByProvince: Map | undefined; let barangaysByMunicipality: Map | undefined; +const regionOrder = new Map([ + '0100000000', '0200000000', '0300000000', '0400000000', + '1700000000', '0500000000', '0600000000', '0700000000', + '0800000000', '0900000000', '1000000000', '1100000000', + '1200000000', '1600000000', '1300000000', '1400000000', + '1900000000', '1800000000', +].map((code, index) => [code, index] as const)); + function initializeRegions() { if (regions) return regions; - regions = sortByName(decompressAndParse(regionsCompressed)); + regions = decompressAndParse(regionsCompressed).sort( + (a, b) => regionOrder.get(a.psgcCode)! - regionOrder.get(b.psgcCode)!, + ); regionsByCode = new Map(regions.map(region => [region.psgcCode, region])); return regions; } From 6f57793ba38acdb485e1f057e844a6462a2b065d Mon Sep 17 00:00:00 2001 From: Ivan Gemota <55120258+aivangogh@users.noreply.github.com> Date: Sat, 1 Aug 2026 22:27:57 +0800 Subject: [PATCH 2/2] test: lock region display order --- tests/region.test.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/region.test.ts b/tests/region.test.ts index 55ff95e..916f225 100644 --- a/tests/region.test.ts +++ b/tests/region.test.ts @@ -1,10 +1,14 @@ import { getAllRegions, getRegionByCode } from "../src"; -import regions from "../src/data/regions.json"; describe("Get Region/s test suite", () => { - it("should return all regions from the JSON file", () => { - const result = getAllRegions(); - expect(result).toEqual(regions); + it("should return regions in administrative display order", () => { + expect(getAllRegions().map(({ psgcCode }) => psgcCode)).toEqual([ + "0100000000", "0200000000", "0300000000", "0400000000", + "1700000000", "0500000000", "0600000000", "0700000000", + "0800000000", "0900000000", "1000000000", "1100000000", + "1200000000", "1600000000", "1300000000", "1400000000", + "1900000000", "1800000000", + ]); }); it("should find a region by code", () => {