Common stuff initial

This commit is contained in:
Torben Pi Jensen 2023-11-05 09:00:32 +01:00
parent e4ed7999de
commit 923c82f832
3 changed files with 85 additions and 0 deletions

22
dataTypes.ts Normal file
View File

@ -0,0 +1,22 @@
export class Song {
public type: SongType
public title: string;
public url: string;
public image: string;
public length: number;
constructor(type: SongType, title: string, url: string, image: string, length: number) {
this.type = type;
this.title = title;
this.url = url;
this.image = image;
this.length = length;
}
}
export enum SongType {
YouTube,
Spotify
}

57
messageTypes.ts Normal file
View File

@ -0,0 +1,57 @@
import {Song} from "./dataTypes";
export type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join;
export abstract class StuenMessage {
constructor(public type: string) {}
}
export class Join extends StuenMessage {
constructor(public name: string) {
super('Join');
}
}
export class ListenerJoined extends StuenMessage {
constructor(public name: string) {
super('ListenerJoined');
}
}
export class ListenerLeft extends StuenMessage {
constructor(public name: string) {
super('ListenerLeft');
}
}
export class ListenerList extends StuenMessage {
constructor(public names: string[]) {
super('ListenerList');
}
}
export class SendChatMessage extends StuenMessage {
constructor(public message: string) {
super('SendChatMessage');
}
}
export class ChatMessage extends StuenMessage {
constructor(public name: string, public message: string) {
super('ChatMessage');
}
}
export class SearchSong extends StuenMessage {
constructor(public query: string) {
super('SearchSong');
}
}
export class SearchSongResult extends StuenMessage {
constructor(public result: Song[]) {
super('SearchSongResult');
}
}

6
package.json Normal file
View File

@ -0,0 +1,6 @@
{
"name": "stuen-common",
"version": "1.0.0",
"dependencies": {
}
}