zipcodes-perogi
Version:
A zipcode lookup package with the latest zipcode information updated every month.
47 lines (35 loc) • 1.05 kB
JavaScript
const fs = require("fs"),
path = require("path"),
zips = {},
data = fs.readFileSync("./USZipcodeAndTimezoneDataAug2019.csv", "utf8").replace(/\r/g, "").split("\n");
let str;
data.shift();
const clean = function (str) {
return str.replace(/"/g, "").trimLeft();
};
data.forEach(function (line) {
line = line.split(",");
if (line.length > 1) {
const o = {};
o.zip = clean(line[0]);
o.city = clean(line[1]);
o.state = clean(line[3]);
o.latitude = clean(line[6]);
o.longitude = clean(line[7]);
o.timeZoneId = clean(line[8]);
if (!zips[o.zip]) {
zips[o.zip] = o;
}
}
});
const stateMap = {};
let i;
for (i in zips) {
const item = zips[i];
stateMap[item.state] = stateMap[item.state] || [];
stateMap[item.state].push(item.zip);
}
str = "exports.codes = " + JSON.stringify(zips) + ";\n";
str += "exports.stateMap = " + JSON.stringify(stateMap) + ";\n";
fs.writeFileSync(path.join("../", "lib", "codes.js"), str, "utf8");