UNPKG

postal-codes-js

Version:
53 lines (40 loc) 1.93 kB
var fs = require('fs'); var path = require('path'); function generateMappings() { var basePath = __dirname; var data = require(path.join(basePath,'../mappings/alpha2-to-formats.json')); var countryFormats = {} Object.keys(data).map(function (formatName) { var countries = data[formatName]; countries.map(function (countryName) { countryFormats[countryName] = formatName; }) }); var byAlpha3 = {} var byAlpha2 = {} var countryDataByAlpha3 = require(path.join(basePath,'../mappings/iso-3-country-code-mapping.json')) Object.keys(countryDataByAlpha3).map(function (alpha3) { var countrySpecificData = countryDataByAlpha3[alpha3] var alpha2 = countrySpecificData.iso2CountryCode; countrySpecificData['postalCodeFormat'] = countryFormats[alpha2]; countrySpecificData['alpha2'] = alpha2; countrySpecificData['alpha3'] = alpha3; countrySpecificData['numeric3'] = countrySpecificData['isoNumericCountryCode']; delete countrySpecificData['iso2CountryCode']; delete countrySpecificData['isoNumericCountryCode']; if (!countrySpecificData.postalCodeFormat) { fs.exists(path.join(basePath,'../formats/', alpha2 + ".json"), function(isThere){ if(isThere) { countrySpecificData.postalCodeFormat = alpha2 + '.json'; return; } console.log( 'Missing postal code format: ' + alpha2 + '/' + alpha3); }); } byAlpha2[alpha2] = countrySpecificData; byAlpha3[alpha3] = countrySpecificData; }); fs.writeFileSync(path.join(basePath,'../generated/postal-codes-alpha2.json'), JSON.stringify(byAlpha2, null, " ")); fs.writeFileSync(path.join(basePath,'../generated/postal-codes-alpha3.json'), JSON.stringify(byAlpha3, null, " ")); } generateMappings();