@ecomplus/utils
Version:
JS utility functions to E-Com Plus (not only) related apps
58 lines (57 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es.regexp.exec.js");
require("core-js/modules/es.string.replace.js");
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.object.to-string.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");
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 formatDate
* @description Parse date to locale formatted string.
* @param {string|Object.<string, *>} date - Date object or ISO string, or body object (order, product...)
* @param {string} [lang=$ecomConfig.get('lang')] - Snake case language code, eg.: 'en_us', 'pt_br'
* @param {Object.<string, *>} [options] - Options object for `toLocaleDateString` function
* @returns {string}
*
* @example
* const notification = { datetime: '2019-06-19T03:35:52.811Z', content: {api_event: {resource: 'orders'}}}
* ecomUtils.formatDate(notification, 'pt-br')
* // => "19/06/2019"
*/
var formatDate = function formatDate(date) {
var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _config2.default.get('lang');
var options = arguments.length > 2 ? arguments[2] : undefined;
if (_typeof(date) === 'object' && date !== null) {
if (typeof date.getTime !== 'function') {
// expected to be a body (product, category, brand...) object
date = new Date(date.datetime || date.updated_at || date.created_at);
}
} else {
// parse to Date object
date = new Date(date);
}
if (!isNaN(date.getTime())) {
try {
// return locale date string
// lang code format: pt-br, en-us...
return date.toLocaleDateString(lang.replace('_', '-'), options);
} catch (err) {
console.error(err);
}
}
// fallback returning empty string by default
return '';
};
var _default = exports.default = formatDate;