UNPKG

@firestitch/address

Version:
69 lines 9.96 kB
import { createEmptyAddress } from './create-empty-address'; export function googlePlaceToFsAddress(result, config) { const address = createEmptyAddress(); let countryLongName, regionLongName, streetShortName; address.lat = result.location.lat(); address.lng = result.location.lng(); address.description = result.formattedAddress; // Finding different parts of address result.addressComponents.forEach((item) => { if (item.types.some(type => type === 'country')) { address.country = item.shortText; countryLongName = item.longText; } if (item.types.some(type => type === 'administrative_area_level_1')) { address.region = item.shortText; regionLongName = item.longText; } if (item.types.some(type => type === 'locality' || type === 'political')) { address.city = item.longText; } if (item.types.some(type => type === 'postal_code')) { address.zip = item.longText; } }); // Address.Street consists from number and street const streetNumber = result.addressComponents .find(el => el.types.some(type => type === 'street_number')); if (streetNumber) { address.street = streetNumber.longText + ' '; streetShortName = streetNumber.longText + ' '; } else { const match = address.description.match(/^[\d-]+/); if (match) { address.street = match[0] + ' '; streetShortName = match[0] + ' '; } } const streetAddress = result.addressComponents .find(el => el.types.some(type => type === 'route')); if (streetAddress) { if (!address.street) { address.street = streetAddress.longText; streetShortName = streetAddress.shortText; } else { address.street += streetAddress.longText; streetShortName += streetAddress.shortText; } } // Checking correct place NAME if (address.country !== result.displayName && countryLongName !== result.displayName && address.region !== result.displayName && regionLongName !== result.displayName && address.city !== result.displayName && streetShortName !== result.displayName && address.zip !== result.displayName && address.street !== result.displayName) { if (config.name && config.name.visible !== false) { address.name = result.displayName; } } else { address.name = ''; } return address; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBsYWNlLXRvLWFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2hlbHBlcnMvZ29vZ2xlLXBsYWNlLXRvLWFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLNUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxNQUFnQyxFQUNoQyxNQUF1QjtJQUV2QixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBRXJDLElBQUksZUFBdUIsRUFBRSxjQUFzQixFQUFFLGVBQXVCLENBQUM7SUFFN0UsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNwQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUU5QyxxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3hDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoRCxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDakMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLENBQUMsRUFBRSxDQUFDO1lBQ3BFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxj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Q0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVtcHR5QWRkcmVzcyB9IGZyb20gJy4vY3JlYXRlLWVtcHR5LWFkZHJlc3MnO1xuaW1wb3J0IHsgRnNBZGRyZXNzQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hZGRyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hZGRyZXNzLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdvb2dsZVBsYWNlVG9Gc0FkZHJlc3MoXG4gIHJlc3VsdDogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlLFxuICBjb25maWc6IEZzQWRkcmVzc0NvbmZpZyxcbik6IEZzQWRkcmVzcyB7XG4gIGNvbnN0IGFkZHJlc3MgPSBjcmVhdGVFbXB0eUFkZHJlc3MoKTtcblxuICBsZXQgY291bnRyeUxvbmdOYW1lOiBzdHJpbmcsIHJlZ2lvbkxvbmdOYW1lOiBzdHJpbmcsIHN0cmVldFNob3J0TmFtZTogc3RyaW5nO1xuXG4gIGFkZHJlc3MubGF0ID0gcmVzdWx0LmxvY2F0aW9uLmxhdCgpO1xuICBhZGRyZXNzLmxuZyA9IHJlc3VsdC5sb2NhdGlvbi5sbmcoKTtcbiAgYWRkcmVzcy5kZXNjcmlwdGlvbiA9IHJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzO1xuXG4gIC8vIEZpbmRpbmcgZGlmZmVyZW50IHBhcnRzIG9mIGFkZHJlc3NcbiAgcmVzdWx0LmFkZHJlc3NDb21wb25lbnRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBpZiAoaXRlbS50eXBlcy5zb21lKHR5cGUgPT4gdHlwZSA9PT0gJ2NvdW50cnknKSkge1xuICAgICAgYWRkcmVzcy5jb3VudHJ5ID0gaXRlbS5zaG9ydFRleHQ7XG4gICAgICBjb3VudHJ5TG9uZ05hbWUgPSBpdGVtLmxvbmdUZXh0O1xuICAgIH1cblxuICAgIGlmIChpdGVtLnR5cGVzLnNvbWUodHlwZSA9PiB0eXBlID09PSAnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJykpIHtcbiAgICAgIGFkZHJlc3MucmVnaW9uID0gaXRlbS5zaG9ydFRleHQ7XG4gICAgICByZWdpb25Mb25nTmFtZSA9IGl0ZW0ubG9uZ1RleHQ7XG4gICAgfVxuXG4gICAgaWYgKGl0ZW0udHlwZXMuc29tZSh0eXBlID0+IHR5cGUgPT09ICdsb2NhbGl0eScgfHwgdHlwZSA9PT0gJ3BvbGl0aWNhbCcpKSB7XG4gICAgICBhZGRyZXNzLmNpdHkgPSBpdGVtLmxvbmdUZXh0O1xuICAgIH1cblxuICAgIGlmIChpdGVtLnR5cGVzLnNvbWUodHlwZSA9PiB0eXBlID09PSAncG9zdGFsX2NvZGUnKSkge1xuICAgICAgYWRkcmVzcy56aXAgPSBpdGVtLmxvbmdUZXh0O1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gQWRkcmVzcy5TdHJlZXQgY29uc2lzdHMgZnJvbSBudW1iZXIgYW5kIHN0cmVldFxuICBjb25zdCBzdHJlZXROdW1iZXIgPSByZXN1bHQuYWRkcmVzc0NvbXBvbmVudHNcbiAgICAuZmluZChlbCA9PiBlbC50eXBlcy5zb21lKHR5cGUgPT4gdHlwZSA9PT0gJ3N0cmVldF9udW1iZXInKSk7XG5cbiAgaWYgKHN0cmVldE51bWJlcikge1xuICAgIGFkZHJlc3Muc3RyZWV0ID0gc3RyZWV0TnVtYmVyLmxvbmdUZXh0ICsgJyAnO1xuICAgIHN0cmVldFNob3J0TmFtZSA9IHN0cmVldE51bWJlci5sb25nVGV4dCArICcgJztcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtYXRjaCA9IGFkZHJlc3MuZGVzY3JpcHRpb24ubWF0Y2goL15bXFxkLV0rLyk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBhZGRyZXNzLnN0cmVldCA9IG1hdGNoWzBdICsgJyAnO1xuICAgICAgc3RyZWV0U2hvcnROYW1lID0gbWF0Y2hbMF0gKyAnICc7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RyZWV0QWRkcmVzcyA9IHJlc3VsdC5hZGRyZXNzQ29tcG9uZW50c1xuICAgIC5maW5kKGVsID0+IGVsLnR5cGVzLnNvbWUodHlwZSA9PiB0eXBlID09PSAncm91dGUnKSk7XG5cbiAgaWYgKHN0cmVldEFkZHJlc3MpIHtcbiAgICBpZiAoIWFkZHJlc3Muc3RyZWV0KSB7XG4gICAgICBhZGRyZXNzLnN0cmVldCA9IHN0cmVldEFkZHJlc3MubG9uZ1RleHQ7XG4gICAgICBzdHJlZXRTaG9ydE5hbWUgPSBzdHJlZXRBZGRyZXNzLnNob3J0VGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkcmVzcy5zdHJlZXQgKz0gc3RyZWV0QWRkcmVzcy5sb25nVGV4dDtcbiAgICAgIHN0cmVldFNob3J0TmFtZSArPSBzdHJlZXRBZGRyZXNzLnNob3J0VGV4dDtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVja2luZyBjb3JyZWN0IHBsYWNlIE5BTUVcbiAgaWYgKFxuICAgIGFkZHJlc3MuY291bnRyeSAhPT0gcmVzdWx0LmRpc3BsYXlOYW1lXG4gICAgJiYgY291bnRyeUxvbmdOYW1lICE9PSByZXN1bHQuZGlzcGxheU5hbWVcbiAgICAmJiBhZGRyZXNzLnJlZ2lvbiAhPT0gcmVzdWx0LmRpc3BsYXlOYW1lXG4gICAgJiYgcmVnaW9uTG9uZ05hbWUgIT09IHJlc3VsdC5kaXNwbGF5TmFtZVxuICAgICYmIGFkZHJlc3MuY2l0eSAhPT0gcmVzdWx0LmRpc3BsYXlOYW1lXG4gICAgJiYgc3RyZWV0U2hvcnROYW1lICE9PSByZXN1bHQuZGlzcGxheU5hbWVcbiAgICAmJiBhZGRyZXNzLnppcCAhPT0gcmVzdWx0LmRpc3BsYXlOYW1lXG4gICAgJiYgYWRkcmVzcy5zdHJlZXQgIT09IHJlc3VsdC5kaXNwbGF5TmFtZVxuICApIHtcbiAgICBpZiAoY29uZmlnLm5hbWUgJiYgY29uZmlnLm5hbWUudmlzaWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgIGFkZHJlc3MubmFtZSA9IHJlc3VsdC5kaXNwbGF5TmFtZTtcbiAgICB9XG5cbiAgfSBlbHNlIHtcbiAgICBhZGRyZXNzLm5hbWUgPSAnJztcbiAgfVxuXG4gIHJldHVybiBhZGRyZXNzO1xufVxuIl19