@ecomplus/utils
Version:
JS utility functions to E-Com Plus (not only) related apps
62 lines (61 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es.function.name.js");
require("core-js/modules/es.string.trim.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");
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 categoriesList
* @description Parse category tree string to list of categories names.
* @param {Object.<string, *>|string} product - Product object body or category tree string
* @returns {Array}
*
* @example
* // Can be a category tree, like:
* const categoryTree = 'Quarto > Cama > Travesseiros'
* // So use categoryTree is parameter of function categoriesList, like:
* ecomUtils.categoriesList(categoryTree)
* // => ["Quarto", "Cama", "Travesseiros"]
* // Or can be a product body object like:
* const product = { name: 'Ultimate', categories: [{name: 'Cadeira Gamer'},{name: 'Periféricos'}]}
* ecomUtils.categoriesList(product)
* => ["Cadeira Gamer"]
*/
var categoriesList = function categoriesList(product) {
var categoryTree;
if (_typeof(product) === 'object' && product !== null) {
// try to get categories from product body object
if (product.category_tree) {
categoryTree = product.category_tree;
} else if (Array.isArray(product.categories) && product.categories[0]) {
// use the first category from list
return [product.categories[0].name];
}
} else {
// category tree string received as param ?
categoryTree = product;
}
if (typeof categoryTree === 'string') {
var categories = categoryTree.split('>');
for (var i = 0; i < categories.length; i++) {
// remove white spaces from names
categories[i] = categories[i].trim();
}
// list of category names
return categories;
}
// fallback returning empty array
return [];
};
var _default = exports.default = categoriesList;