A music player that connects to your cloud/distributed storage.
at main 54 lines 751 B view raw
1import type { App } from "./elm/types" 2 3 4// 🏔️ 5 6 7let app: App 8 9 10 11// 🚀 12 13 14export function init(a: App) { 15 app = a 16 17 app.ports.requestSearch.subscribe(requestSearch) 18 app.ports.updateSearchIndex.subscribe(updateSearchIndex) 19} 20 21 22const search = new Worker( 23 "../../search.js", 24 { type: "module" } 25) 26 27 28search.onmessage = event => { 29 switch (event.data.action) { 30 case "PERFORM_SEARCH": 31 app.ports.receiveSearchResults.send(event.data.data) 32 break 33 } 34} 35 36 37 38// PORTS 39 40 41function requestSearch(searchTerm: string) { 42 search.postMessage({ 43 action: "PERFORM_SEARCH", 44 data: searchTerm 45 }) 46} 47 48 49function updateSearchIndex(tracksJson: string) { 50 search.postMessage({ 51 action: "UPDATE_SEARCH_INDEX", 52 data: tracksJson 53 }) 54}