methods/find-by-slug.js

  1. import findByProperty from './find-by-property'
  2. /**
  3. * @method
  4. * @memberof ecomUtils
  5. * @name findBySlug
  6. * @description Find object from list by slug value.
  7. * @param {array} list - List of nested objects
  8. * @param {string} slug - Object (category, brand, product...) slug value
  9. * @returns {object|undefined}
  10. *
  11. * @example
  12. * // Find on list of brands, categories, products, any...
  13. * ecomUtils.findBySlug([ { name: 'Nike', slug: 'nike' }, { name: 'Puma', slug: 'puma' } ], 'nike')
  14. * // => { name: 'Nike', slug: 'nike' }
  15. * ecomUtils.findBySlug([ { slug: 'a' }, { slug: 'b' } ], 'b')
  16. * // => { slug: 'b' }
  17. * ecomUtils.findBySlug([ { slug: 'a' }, { slug: 'b' } ], 'c')
  18. * // => undefined
  19. */
  20. const findBySlug = (list, slug) => findByProperty(list, 'slug', slug)
  21. export default findBySlug