toes/src/shared/types.ts

38 lines
687 B
TypeScript

export const DEFAULT_EMOJI = '🖥️'
export const VALID_NAME = /^[a-zA-Z][a-zA-Z0-9.-]*$/
export interface FileInfo {
hash: string
mtime: string
size: number
}
export interface Manifest {
files: Record<string, FileInfo>
name: string
}
export type AppState = 'error' | 'invalid' | 'stopped' | 'starting' | 'running' | 'stopping'
export type LogLine = {
time: number
text: string
}
export type App = {
name: string
state: AppState
icon: string
error?: string
pid?: number
port?: number
started?: number
logs?: LogLine[]
tool?: boolean | string
apps?: boolean
dashboard?: boolean
share?: boolean
tunnelEnabled?: boolean
tunnelUrl?: string
}