Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. export const uniqueArray = originalArray => [...new Set(originalArray)]
  2.  
  3. export function slugify(textToSlugify) {
  4. return textToSlugify
  5. .toLowerCase()
  6. .replace(/[^\w\s-]/g, '') // remove non-word [a-z0-9_], non-whitespace, non-hyphen characters
  7. .replace(/[\s_-]+/g, '-') // swap any length of whitespace, underscore, hyphen characters with a single -
  8. .replace(/^-+|-+$/g, '') // remove leading, trailing -
  9. }
  10.  
  11. export const createTagsList = (postsArray) => {
  12. const tagsArray = []
  13. postsArray.forEach((post) => {
  14. if (post.tags.length) {
  15. post.tags.forEach(tag => tagsArray.push(tag))
  16. }
  17. })
  18. return uniqueArray(tagsArray)
  19. }
  20.  
  21. export const getPostsFromTag = (posts, tag) =>
  22. posts.filter(post => post.tags.map(tag => slugifyText(tag)).includes(tag))
  23.  
  24. export const slugifyText = str =>
  25. slugify(str, { replacement: '-', lower: true, remove: /[$*_+~.()'"!\-:@]/g })
  26.  
  27. export const arrayToObject = (arr, keyField) =>
  28. Object.assign({}, ...arr.map(item => ({ [item[keyField]]: item })))
  29.  
  30. export const arrayFromObject = object =>
  31. Object.keys(object).map(key => object[key])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement