kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
73 wiersze
1.3 KiB
TypeScript
73 wiersze
1.3 KiB
TypeScript
|
import type { App } from '@vue/composition-api'
|
||
|
import type { Store } from 'vuex'
|
||
|
import type VueRouter from 'vue-router'
|
||
|
|
||
|
declare global {
|
||
|
interface Window {
|
||
|
$: JQueryStatic
|
||
|
jQuery: JQueryStatic
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// App structure stuff
|
||
|
export interface AppModuleContext {
|
||
|
app: App
|
||
|
router: VueRouter
|
||
|
store: Store<any>
|
||
|
}
|
||
|
|
||
|
export type AppModule = (ctx: AppModuleContext) => void
|
||
|
|
||
|
// Theme stuff
|
||
|
export type Theme = 'auto' | 'light' | 'dark'
|
||
|
|
||
|
export interface ThemeEntry {
|
||
|
icon: string
|
||
|
name: string
|
||
|
key: Theme
|
||
|
}
|
||
|
|
||
|
// Track stuff
|
||
|
export interface Artist {
|
||
|
name: string
|
||
|
}
|
||
|
|
||
|
export interface Album {
|
||
|
artist: Artist
|
||
|
}
|
||
|
|
||
|
export interface Track {
|
||
|
title: string
|
||
|
album?: Album
|
||
|
artist?: Artist
|
||
|
}
|
||
|
|
||
|
// API stuff
|
||
|
export interface APIErrorResponse {
|
||
|
[key: string]: APIErrorResponse | string[]
|
||
|
}
|
||
|
|
||
|
// WebSocket stuff
|
||
|
export interface PendingReviewEditsWSEvent {
|
||
|
pending_review_count: number
|
||
|
}
|
||
|
|
||
|
export interface PendingReviewReportsWSEvent {
|
||
|
unresolved_count: number
|
||
|
}
|
||
|
|
||
|
export interface PendingReviewRequestsWSEvent {
|
||
|
pending_count: number
|
||
|
}
|
||
|
|
||
|
export interface ListenWsEventObject {
|
||
|
local_id: string
|
||
|
}
|
||
|
|
||
|
export interface ListenWSEvent {
|
||
|
actor: ListenWsEventObject
|
||
|
object: ListenWsEventObject
|
||
|
}
|
||
|
|
||
|
export type WebSocketEvent = PendingReviewEditsWSEvent | PendingReviewReportsWSEvent | PendingReviewRequestsWSEvent | ListenWSEvent
|