Add API types

This commit is contained in:
dragongoose 2023-06-18 23:19:20 -04:00
parent d60ed432ce
commit 6fb581f7fe
Signed by: dragongoose
GPG key ID: 50DB99B921579009
7 changed files with 104 additions and 0 deletions

11
src/types/Category.ts Normal file
View file

@ -0,0 +1,11 @@
export type Tag = string
export interface Category {
name: string
displayName: string
viewers: number
tags: Tag[]
createdAt?: Date
cursor?: string
image: string
}

25
src/types/CategoryData.ts Normal file
View file

@ -0,0 +1,25 @@
import type { Tag } from "./"
import type { StreamData } from "./"
export interface CategoryMinifiedStream {
title: string
viewers: number
preview: string
tags: Tag[]
cursor: string
streamer: {
name: string
pfp: string
colorHex: string
}
}
export interface CategoryData {
name: string
cover: string
description: string
viewers: number
followers: number
tags: Tag[]
streams: CategoryMinifiedStream[]
}

18
src/types/Chat.ts Normal file
View file

@ -0,0 +1,18 @@
export interface TwitchChatOptions {
login: {
username: string,
password: string
},
channels: string[]
}
export const MessageTypes = ['PRIVMSG', 'WHISPER']
export type MessageType = typeof MessageTypes[number];
export interface Metadata {
username: string
messageType: MessageType
channel: string
message: string
tags: { [k:string]:any }
}

6
src/types/Emote.ts Normal file
View file

@ -0,0 +1,6 @@
export interface Emote {
name: string,
urls : {
[k: string]: string
}
}

9
src/types/Search.ts Normal file
View file

@ -0,0 +1,9 @@
import type { StreamData, StreamerData } from "./"
import type { Category } from "./"
export interface SearchResult {
channels: StreamerData[]
categories: Category[]
relatedChannels: StreamData[]
channelsWithTag: StreamData[]
}

28
src/types/Streamer.ts Normal file
View file

@ -0,0 +1,28 @@
export interface Social {
type: string | null
text: string,
link: string
}
export interface StreamData {
tags: string[]
title: string
topic: string
startedAt: number
viewers: number
preview: string
cursor?: string
}
export interface StreamerData {
username: string
followers: number
isLive: boolean
about: string
socials?: Social[]
pfp: string
stream?: StreamData | null
isPartner: boolean | null
colorHex: string
id: number
}

7
src/types/index.ts Normal file
View file

@ -0,0 +1,7 @@
export * from './Search'
export * from './Streamer'
export * from './Chat'
export * from './Chat'
export * from './Category'
export * from './CategoryData'