postal-code-scraper
Version:
A tool for scraping country data, including regions and their postal codes
27 lines (26 loc) • 981 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRegionIdGenerator = void 0;
const createRegionIdGenerator = () => {
const regionRegistry = new Map();
const counterMap = new Map();
return (regions) => {
const normalized = regions.map((region) => region
.trim()
.toLowerCase()
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/\s+/g, "_"));
const compositeKey = normalized.join("|");
if (regionRegistry.has(compositeKey)) {
return regionRegistry.get(compositeKey);
}
const baseName = normalized[normalized.length - 1];
const count = (counterMap.get(baseName) || 0) + 1;
counterMap.set(baseName, count);
const newId = `${baseName}_${count}`;
regionRegistry.set(compositeKey, newId);
return newId;
};
};
exports.createRegionIdGenerator = createRegionIdGenerator;