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 DROPBOX_NAME } from "~/components/input/dropbox/element.js";
5import { NAME as EPHEMERAL_CACHE_NAME } from "~/components/input/ephemeral-cache/element.js";
6import { NAME as HTTPS_NAME } from "~/components/input/https/element.js";
7import { NAME as ICECAST_NAME } from "~/components/input/icecast/element.js";
8import { NAME as LOCAL_NAME } from "~/components/input/local/element.js";
9import { NAME as OPENSUBSONIC_NAME } from "~/components/input/opensubsonic/element.js";
10import { NAME as S3_NAME } from "~/components/input/s3/element.js";
11import { NAME as WEBDAV_NAME } from "~/components/input/webdav/element.js";
12
13
14/**
15 * @import InputConfigurator from "~/components/configurator/input/element.js"
16 */
17
18/**
19 * Setup DOM elements when needed.
20 */
21effect(() => {
22 const input = foundation.signals.configurator.input();
23 if (!input) return;
24
25 dropbox(input);
26 ephemeralCache(input);
27 https(input);
28 icecast(input);
29 local(input);
30 opensubsonic(input);
31 s3(input);
32 webdav(input);
33});
34
35////////////////////////////////////////////
36// DROPBOX
37////////////////////////////////////////////
38
39/**
40 * @param {InputConfigurator} input
41 */
42export function dropbox(input) {
43 input.append(document.createElement(DROPBOX_NAME));
44}
45
46////////////////////////////////////////////
47// EPHEMERAL CACHE
48////////////////////////////////////////////
49
50/**
51 * @param {InputConfigurator} input
52 */
53export function ephemeralCache(input) {
54 input.append(document.createElement(EPHEMERAL_CACHE_NAME));
55}
56
57////////////////////////////////////////////
58// HTTPS
59////////////////////////////////////////////
60
61/**
62 * @param {InputConfigurator} input
63 */
64export function https(input) {
65 input.append(document.createElement(HTTPS_NAME));
66}
67
68////////////////////////////////////////////
69// ICECAST
70////////////////////////////////////////////
71
72/**
73 * @param {InputConfigurator} input
74 */
75export function icecast(input) {
76 input.append(document.createElement(ICECAST_NAME));
77}
78
79////////////////////////////////////////////
80// LOCAL
81////////////////////////////////////////////
82
83/**
84 * @param {InputConfigurator} input
85 */
86export function local(input) {
87 input.append(document.createElement(LOCAL_NAME));
88}
89
90////////////////////////////////////////////
91// OPENSUBSONIC
92////////////////////////////////////////////
93
94/**
95 * @param {InputConfigurator} input
96 */
97export function opensubsonic(input) {
98 input.append(document.createElement(OPENSUBSONIC_NAME));
99}
100
101////////////////////////////////////////////
102// S3
103////////////////////////////////////////////
104
105/**
106 * @param {InputConfigurator} input
107 */
108export function s3(input) {
109 input.append(document.createElement(S3_NAME));
110}
111
112////////////////////////////////////////////
113// WEBDAV
114////////////////////////////////////////////
115
116/**
117 * @param {InputConfigurator} input
118 */
119export function webdav(input) {
120 input.append(document.createElement(WEBDAV_NAME));
121}