A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 67 lines 1.3 kB view raw
1// 2// Common stuff 3// ʕ•ᴥ•ʔ 4 5 6import * as localforage from "localforage" 7 8 9// 🌳 10 11 12export type CoverPrep = { 13 cacheKey: string 14 trackFilename: string 15 trackPath: string 16 trackSourceId: string 17 variousArtists: string 18} 19 20 21 22// FUNCTIONS 23 24 25export function db(storeName: string = "main"): LocalForage { 26 return localforage.createInstance({ 27 name: "diffuse", 28 storeName 29 }) 30} 31 32 33export function fileExtension(mimeType: string): string | undefined { 34 const audioId = mimeType.toLowerCase().split("/")[ 1 ] 35 36 switch (audioId) { 37 case "mp3": return "mp3"; 38 case "mpeg": return "mp3"; 39 40 case "mp4a-latm": return "m4a"; 41 case "mp4": return "m4a"; 42 case "x-m4a": return "m4a"; 43 44 case "flac": return "flac"; 45 case "x-flac": return "flac"; 46 case "ogg": return "ogg"; 47 case "opus": return "opus"; 48 49 case "wav": return "wav"; 50 case "wave": return "wav"; 51 52 case "webm": return "webm"; 53 } 54} 55 56 57export function mimeType(fileExt: string): string | undefined { 58 switch (fileExt) { 59 case "mp3": return "audio/mpeg"; 60 case "mp4": return "audio/mp4"; 61 case "m4a": return "audio/mp4"; 62 case "flac": return "audio/flac"; 63 case "ogg": return "audio/ogg"; 64 case "wav": return "audio/wave"; 65 case "webm": return "audio/webm"; 66 } 67}