UNPKG

@devx-commerce/plugin-gati

Version:

Gati ERP integration for Medusa

60 lines 4.52 kB
"use strict"; 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