forked from
tokono.ma/diffuse
A music player that connects to your cloud/distributed storage.
1import foundation from "~/common/foundation.js";
2import { effect } from "~/common/signal.js";
3
4import { NAME as EPHEMERAL_CACHE_NAME } from "~/components/input/ephemeral-cache/element.js";
5import { NAME as HTTPS_NAME } from "~/components/input/https/element.js";
6import { NAME as ICECAST_NAME } from "~/components/input/icecast/element.js";
7import { NAME as LOCAL_NAME } from "~/components/input/local/element.js";
8import { NAME as OPENSUBSONIC_NAME } from "~/components/input/opensubsonic/element.js";
9import { NAME as S3_NAME } from "~/components/input/s3/element.js";
10
11
12/**
13 * @import InputConfigurator from "~/components/configurator/input/element.js"
14 */
15
16/**
17 * Setup DOM elements when needed.
18 */
19effect(() => {
20 const input = foundation.signals.configurator.input();
21 if (!input) return;
22
23 ephemeralCache(input);
24 https(input);
25 icecast(input);
26 local(input);
27 opensubsonic(input);
28 s3(input);
29});
30
31////////////////////////////////////////////
32// EPHEMERAL CACHE
33////////////////////////////////////////////
34
35/**
36 * @param {InputConfigurator} input
37 */
38export function ephemeralCache(input) {
39 input.append(document.createElement(EPHEMERAL_CACHE_NAME));
40}
41
42////////////////////////////////////////////
43// HTTPS
44////////////////////////////////////////////
45
46/**
47 * @param {InputConfigurator} input
48 */
49export function https(input) {
50 input.append(document.createElement(HTTPS_NAME));
51}
52
53////////////////////////////////////////////
54// ICECAST
55////////////////////////////////////////////
56
57/**
58 * @param {InputConfigurator} input
59 */
60export function icecast(input) {
61 input.append(document.createElement(ICECAST_NAME));
62}
63
64////////////////////////////////////////////
65// LOCAL
66////////////////////////////////////////////
67
68/**
69 * @param {InputConfigurator} input
70 */
71export function local(input) {
72 input.append(document.createElement(LOCAL_NAME));
73}
74
75////////////////////////////////////////////
76// OPENSUBSONIC
77////////////////////////////////////////////
78
79/**
80 * @param {InputConfigurator} input
81 */
82export function opensubsonic(input) {
83 input.append(document.createElement(OPENSUBSONIC_NAME));
84}
85
86////////////////////////////////////////////
87// S3
88////////////////////////////////////////////
89
90/**
91 * @param {InputConfigurator} input
92 */
93export function s3(input) {
94 input.append(document.createElement(S3_NAME));
95}