UNPKG

@ecomplus/utils

Version:

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

40 lines (39 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/es.array.map.js"); var _name = _interopRequireDefault(require("./name")); var _findByProperty = _interopRequireDefault(require("./find-by-property")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @method * @memberof ecomUtils * @name findByName * @description Find object from list by name or title value. * @param {Array} list - List of nested objects * @param {string} title - Object (category, brand, product...) name or title value * @returns {Object.<string, *>|undefined} * * @example * const listOfNested = [{"name": "Ultimate Blaster", "sku": "MHP4824"}, {"name": "Xiaomi","sku": "smtp-xomi-9746"}] * ecomUtils.findByName(listOfNested, 'Ultimate Blaster') * // => {name: "Ultimate Blaster", sku: "MHP4824"} */ var findByName = function findByName(list, title) { // try to find by name property first var objByName = (0, _findByProperty.default)(list, 'name', title); if (objByName) { // found return objByName; } // try to find by transalated name or title prop var newList = list.map(function (obj) { return obj && { name: (0, _name.default)(obj) }; }); return (0, _findByProperty.default)(newList, 'name', title); }; var _default = exports.default = findByName;