UNPKG

1.05 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3const fs = require("fs"),
4 path = require("path"),
5 zips = {},
6 data = fs.readFileSync("./USZipcodeAndTimezoneDataJun2019.csv", "utf8").replace(/\r/g, "").split("\n");
7
8let str;
9data.shift();
10
11
12const clean = function (str) {
13 return str.replace(/"/g, "").trimLeft();
14};
15
16data.forEach(function (line) {
17 line = line.split(",");
18 if (line.length > 1) {
19 const o = {};
20
21 o.zip = clean(line[0]);
22 o.city = clean(line[1]);
23 o.state = clean(line[3]);
24 o.latitude = clean(line[6]);
25 o.longitude = clean(line[7]);
26 o.timeZoneId = clean(line[8]);
27
28 if (!zips[o.zip]) {
29 zips[o.zip] = o;
30 }
31 }
32});
33
34const stateMap = {};
35let i;
36for (i in zips) {
37 const item = zips[i];
38 stateMap[item.state] = stateMap[item.state] || [];
39
40 stateMap[item.state].push(item.zip);
41}
42
43str = "exports.codes = " + JSON.stringify(zips) + ";\n";
44str += "exports.stateMap = " + JSON.stringify(stateMap) + ";\n";
45
46fs.writeFileSync(path.join("../", "lib", "codes.js"), str, "utf8");