UNPKG

@ecomplus/utils

Version:

JS utility functions to E-Com Plus (not only) related apps

58 lines (57 loc) 2.56 kB
"use strict"; 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;