usps-webtools-promise
Version:
API wrapper for the USPS Web-Tools, with Promises!
47 lines (46 loc) • 1.68 kB
JavaScript
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);
}
}