UNPKG

usps-webtools-promise

Version:

API wrapper for the USPS Web-Tools, with Promises!

47 lines (46 loc) 1.68 kB
import properCase from "./utils/proper-case.js"; import callUSPS from "./utils/request.js"; export default async function (address) { const parameters = { Address1: address.Address2 ?? "", Address2: address.Address1 ?? "", City: address.City ?? "", State: address.State ?? "", Urbanization: address.Urbanization ?? "", Zip5: address.Zip5 ?? "", Zip4: address.Zip4 ?? "", }; let response; try { response = (await callUSPS("Verify", "AddressValidate", "Address", this.config, { Revision: 1, Address: parameters, })); if (response) { const switchAddresses = response.Address1; response.Address1 = response.Address2; response.Address2 = switchAddresses; if (this.config.properCase) { response.Address1 = response.Address1 ? properCase(response.Address1) : undefined; response.Address2 = response.Address2 ? properCase(response.Address2) : undefined; response.City = response.City ? properCase(response.City) : undefined; response.FirmName = response.FirmName ? properCase(response.FirmName) : undefined; } response.Zip4 = typeof response.Zip4 === "object" ? undefined : response.Zip4?.toString(); return response; } throw new Error("Can't find results"); } catch (error) { throw new Error(error); } }