@ecomplus/utils
Version:
JS utility functions to E-Com Plus (not only) related apps
40 lines (39 loc) • 1.41 kB
JavaScript
;
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;