UNPKG

@open-tender/utils

Version:

A library of utils for use with Open Tender applications that utilize our cloud-based Order API.

31 lines (30 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeAddress = void 0; const makeComponents = (components) => { const result = components === null || components === void 0 ? void 0 : components.reduce((obj, i) => { return Object.assign(Object.assign({}, obj), { [i.types[0]]: { long_name: i.long_name, short_name: i.short_name } }); }, {}); return result; }; const makeAddress = (place) => { var _a, _b; const { address_components, formatted_address, geometry } = place; const components = makeComponents(address_components); if (!components) return null; const { street_number, route, locality: city, sublocality_level_1: subcity, administrative_area_level_1: state, postal_code: postalCode } = components; const streetNumber = street_number ? street_number.short_name : ''; const street = route ? route.long_name : ''; const addressCity = city || subcity; return { street: `${streetNumber} ${street}`.trim(), city: addressCity ? addressCity.long_name : '', state: state ? state.short_name : '', postal_code: postalCode ? postalCode.short_name : '', lat: ((_a = geometry === null || geometry === void 0 ? void 0 : geometry.location) === null || _a === void 0 ? void 0 : _a.lat()) || 0, lng: ((_b = geometry === null || geometry === void 0 ? void 0 : geometry.location) === null || _b === void 0 ? void 0 : _b.lng()) || 0, formatted_address }; }; exports.makeAddress = makeAddress;