mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 02:03:35 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| export const recipe = {
 | |
|   /**
 | |
|    * Sorts a list of recipes in place
 | |
|    * @param {Array<Object>} list of recipes
 | |
|    * @param {Boolean} inverse - Z or A First
 | |
|    */
 | |
|   sortAToZ(list) {
 | |
|     list.sort((a, b) => {
 | |
|       const textA = a.name.toUpperCase();
 | |
|       const textB = b.name.toUpperCase();
 | |
|       return textA < textB ? -1 : textA > textB ? 1 : 0;
 | |
|     });
 | |
|   },
 | |
|   sortByCreated(list) {
 | |
|     list.sort((a, b) => (a.dateAdded > b.dateAdded ? -1 : 1));
 | |
|   },
 | |
|   sortByUpdated(list) {
 | |
|     list.sort((a, b) => (a.dateUpdated > b.dateUpdated ? -1 : 1));
 | |
|   },
 | |
|   sortByRating(list) {
 | |
|     list.sort((a, b) => (a.rating > b.rating ? -1 : 1));
 | |
|   },
 | |
|   /**
 | |
|    *
 | |
|    * @param {Array<Object>} list
 | |
|    * @returns String / Recipe Slug
 | |
|    */
 | |
|   randomRecipe(list) {
 | |
|     return list[Math.floor(Math.random() * list.length)];
 | |
|   },
 | |
|   shuffle(list) {
 | |
|     let last = list.length;
 | |
|     let n;
 | |
|     while (last > 0) {
 | |
|       n = rand(last);
 | |
|       swap(list, n, --last);
 | |
|     }
 | |
|   },
 | |
| };
 | |
| 
 | |
| const rand = n =>
 | |
|   Math.floor(Math.random() * n)
 | |
| 
 | |
| function swap(t, i, j) {
 | |
|   const q = t[i];
 | |
|   t[i] = t[j];
 | |
|   t[j] = q;
 | |
|   return t;
 | |
| }
 |