@devx-commerce/plugin-gati
Version:
Gati ERP integration for Medusa
60 lines • 4.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findMatchingAddress = exports.compareAddresses = exports.formatAddress = void 0;
const lodash_1 = require("lodash");
/**
* Formats address fields by handling commas and cleaning up the text
* @param address - The address object containing address fields
* @returns Formatted address object
*/
const formatAddress = (address) => {
const formattedAddress = { ...address };
// Helper function to clean address field
const cleanAddressField = (field) => {
if (!field)
return "";
return field.trim().replace(/,\s*$/, ""); // Remove trailing comma and spaces
};
// Clean and format address_1
if (formattedAddress.address_1) {
formattedAddress.address_1 =
cleanAddressField(formattedAddress.address_1) || "";
}
// Combine address_2 and address_3 with proper comma handling
if (formattedAddress.address_2 || formattedAddress.address_3) {
const addr2 = cleanAddressField(formattedAddress.address_2);
const addr3 = cleanAddressField(formattedAddress.address_3);
if (addr2 && addr3) {
formattedAddress.address_2 = `${addr2}, ${addr3}`;
}
else {
formattedAddress.address_2 = addr2 || addr3;
}
// Remove address_3 as it's now combined with address_2
delete formattedAddress.address_3;
}
return formattedAddress;
};
exports.formatAddress = formatAddress;
const ADDRESS_FIELDS_TO_COMPARE = [
"first_name",
"last_name",
"address_1",
"company",
"postal_code",
"city",
"country_code",
"province",
"phone",
];
const compareAddresses = (address1, address2) => {
const address1Fields = (0, lodash_1.pick)(address1, ADDRESS_FIELDS_TO_COMPARE);
const address2Fields = (0, lodash_1.pick)(address2, ADDRESS_FIELDS_TO_COMPARE);
return (0, lodash_1.isEqual)(address1Fields, address2Fields);
};
exports.compareAddresses = compareAddresses;
const findMatchingAddress = (targetAddress, addresses) => {
return addresses.find((address) => (0, exports.compareAddresses)(targetAddress, address));
};
exports.findMatchingAddress = findMatchingAddress;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvYWRkcmVzcy1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BSzdCLEVBQWtCLEVBQUU7SUFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFeEMseUNBQXlDO0lBQ3pDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQyxFQUFVLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQy9FLENBQUMsQ0FBQztJQUVGLDZCQUE2QjtJQUM3QixJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLGdCQUFnQixDQUFDLFNBQVM7WUFDeEIsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0QsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUQsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbkIsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDOUMsQ0FBQztRQUVELHVEQUF1RDtRQUN2RCxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFwQ1csUUFBQSxhQUFhLGlCQW9DeEI7QUFFRixNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFlBQVk7SUFDWixXQUFXO0lBQ1gsV0FBVztJQUNYLFNBQVM7SUFDVCxhQUFhO0lBQ2IsTUFBTTtJQUNOLGNBQWM7SUFDZCxVQUFVO0lBQ1YsT0FBTztDQUNDLENBQUM7QUFFSixNQUFNLGdCQUFnQixHQUFHLENBQzlCLFFBQWtDLEVBQ2xDLFFBQWtDLEVBQ3pCLEVBQUU7SUFDWCxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQUksRUFBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQUksRUFBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUVqRSxPQUFPLElBQUEsZ0JBQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBUlcsUUFBQSxnQkFBZ0Isb0JBUTNCO0FBRUssTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxhQUF1QyxFQUN2QyxTQUE0QixFQUNDLEVBQUU7SUFDL0IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHdCQUFnQixFQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUxXLFFBQUEsbUJBQW1CLHVCQUs5QiJ9