summaryrefslogtreecommitdiff
path: root/src/apps/source.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/apps/source.ts')
-rw-r--r--src/apps/source.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/apps/source.ts b/src/apps/source.ts
new file mode 100644
index 0000000..66e8f06
--- /dev/null
+++ b/src/apps/source.ts
@@ -0,0 +1,33 @@
+import { JSX } from "preact/jsx-runtime"
+
+export interface Source {
+ type: string,
+}
+
+export interface Listen extends Source {
+ type: "listen"
+}
+
+export interface Address extends Source {
+ type: "video" | "image" | "link",
+ link: URL,
+ pixelated?: boolean
+}
+
+export interface VirtualFile extends Source {
+ name: string,
+ height?: string | number,
+ width?: string | number
+}
+
+export interface VirtualTextFile extends VirtualFile {
+ type: "text",
+ content: JSX.Element
+}
+
+export type Sources = Address | VirtualTextFile | Listen
+export type SourceTypes = Sources["type"]
+export type GetSource = {
+ [SourceType in Sources as SourceType["type"]]: SourceType
+}
+