@ecomplus/utils
Version:
JS utility functions to E-Com Plus (not only) related apps
86 lines (83 loc) • 3.34 kB
JavaScript
;
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/web.dom-collections.iterator.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es.array.filter.js");
require("core-js/modules/es.object.to-string.js");
var _config2 = _interopRequireDefault(require("./../lib/config"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
/**
* @method
* @memberof ecomUtils
* @name lineAddress
* @description Returns full address string from customer object.
* @param {Object.<string, *>} address - Address object or customer body object
* @param {string} [noNumberString] - String to show when address has no number
* @param {string} [lang=$ecomConfig.get('lang')] - Snake case language code, eg.: 'en_us', 'pt_br'
* @returns {string}
*
* @example
* const address = { 'zip': '35800-999', 'name': 'Jonh Lock', 'street': 'Rua Europa', 'number': 900, 'borough': 'Santa Lucia', 'city': 'Bom Despacho', 'province_code': 'MG'}
* const lang = 'pt_br'
* ecomUtils.lineAddress(address, lang)
* // => 'Rua Europa, 900, Santa Lucia | Bom Despacho | MG'
*/
var lineAddress = function lineAddress(address, noNumberString) {
var lang = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _config2.default.get('lang');
// parse to full address string
if (address) {
var addresses = address.addresses;
if (Array.isArray(addresses)) {
// customer body object received as param
address = addresses.filter(function (addr) {
return addr.default;
})[0] || addresses[0];
}
if (_typeof(address) === 'object' && address !== null) {
if (address.line_address) {
return address.line_address;
}
// concat address object properties
var _address = address,
street = _address.street,
number = _address.number,
complement = _address.complement,
borough = _address.borough,
city = _address.city;
var province = address.province_code || address.province;
var _lineAddress;
if (street) {
_lineAddress = street + ', ' + number ||
// address without number
noNumberString || (lang === 'pt_br' ? 'S/N' : '-');
if (complement) {
_lineAddress += ' - ' + complement;
}
if (borough) {
_lineAddress += ', ' + borough;
}
} else if (borough) {
_lineAddress = borough;
}
// add city and state
if (city) {
_lineAddress += ' | ' + city;
}
if (province) {
_lineAddress += ' | ' + province;
}
return _lineAddress;
}
}
// fallback returning empty string
return '';
};
var _default = exports.default = lineAddress;