Browse Source

added comments, made things `const`

pull/736/head
Stephen Hess 8 years ago
parent
commit
dd448355dc
  1. 20
      sanitizer/_synthesize_analysis.js

20
sanitizer/_synthesize_analysis.js

@ -21,6 +21,10 @@ function isPostalCodeOnly(parsed_text) {
parsed_text.hasOwnProperty('postalcode'); parsed_text.hasOwnProperty('postalcode');
} }
// figure out which field contains the probable house number, prefer number
// libpostal parses some inputs, like `3370 cobbe ave`, as a postcode+street
// so because we're treating the entire field as a street address, it's safe
// to assume that an identified postcode is actually a house number.
function getHouseNumberField(analyzed_address) { function getHouseNumberField(analyzed_address) {
for (var field of ['number', 'postalcode']) { for (var field of ['number', 'postalcode']) {
if (analyzed_address.hasOwnProperty(field)) { if (analyzed_address.hasOwnProperty(field)) {
@ -54,21 +58,31 @@ function sanitize( raw, clean ){
} }
if (clean.parsed_text.hasOwnProperty('address')) { if (clean.parsed_text.hasOwnProperty('address')) {
var analyzed_address = text_analyzer.parse(clean.parsed_text.address); const analyzed_address = text_analyzer.parse(clean.parsed_text.address);
const house_number_field = getHouseNumberField(analyzed_address); const house_number_field = getHouseNumberField(analyzed_address);
// if we're fairly certain that libpostal identified a house number
// (from either the house_number or postcode field), place it into the
// number field and remove the first instance of that value from address
// and assign to street
// eg - '1090 N Charlotte St' becomes number=1090 and street=N Charlotte St
if (house_number_field) { if (house_number_field) {
clean.parsed_text.number = analyzed_address[house_number_field]; clean.parsed_text.number = analyzed_address[house_number_field];
// remove the first instance of the number and trim whitespace
clean.parsed_text.street = _.trim(_.replace(clean.parsed_text.address, clean.parsed_text.number, '')); clean.parsed_text.street = _.trim(_.replace(clean.parsed_text.address, clean.parsed_text.number, ''));
delete clean.parsed_text.address;
} else { } else {
// otherwise no house number was identifiable, so treat the entire input
// as a street
clean.parsed_text.street = clean.parsed_text.address; clean.parsed_text.street = clean.parsed_text.address;
delete clean.parsed_text.address;
} }
// the address field no longer means anything since it's been parsed, so remove it
delete clean.parsed_text.address;
} }
return messages; return messages;

Loading…
Cancel
Save