insee-municipality-code
Version:
🇫🇷 Get the INSEE municipality code from postal code and name of French municipality
29 lines (24 loc) • 868 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _cities = require("../data/cities.json");
var _cities2 = _interopRequireDefault(_cities);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = (insee, { postalCode } = {}) => {
if (!/^(\d{2}|2[AB])\d{3}$/i.test(insee)) {
throw new Error("Please provide a valid argument");
}
const matchingCities = _cities2.default.filter(city => city.insee === insee);
if (matchingCities.length === 0) {
return null;
}
if (matchingCities.length === 1) {
return matchingCities[0];
}
const postalCodeMatchingCities = matchingCities.filter(city => city.postalCode === String(postalCode));
if (postalCodeMatchingCities.length === 0) {
return matchingCities[0];
}
return postalCodeMatchingCities[0];
};