A music player that connects to your cloud/distributed storage. diffuse.sh
Something went wrong. Try again.
1.4 kB · 62 lines
JavaScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import { defineElement, DiffuseElement, query } from "~/common/element.js";
/** * @import {ProxiedActions} from "~/common/worker.d.ts" * @import {Actions} from "@specs/components/artwork/types.d.ts" */
////////////////////////////////////////////// ELEMENT////////////////////////////////////////////
class ArtworkOrchestrator extends DiffuseElement { static NAME = "diffuse/orchestrator/artwork"; static WORKER_URL = "components/orchestrator/artwork/worker.js";
constructor() { super();
/** @type {ProxiedActions<Actions>} */ const p = this.workerProxy();
this.get = p.get; }
// LIFECYCLE
/** @override */ async connectedCallback() { super.connectedCallback();
/** @type {import("~/components/configurator/artwork/element.js").CLASS} */ this.artworkConfigurator = query(this, "artwork-selector");
await customElements.whenDefined(this.artworkConfigurator.localName); }
// WORKERS
/** * @override */ dependencies() { if (!this.artworkConfigurator) { throw new Error("Artwork configurator element not defined yet"); }
return { artwork: this.artworkConfigurator, }; }}
export default ArtworkOrchestrator;
////////////////////////////////////////////// REGISTER////////////////////////////////////////////
export const CLASS = ArtworkOrchestrator;export const NAME = "do-artwork";
defineElement(NAME, ArtworkOrchestrator);