issue-status
Version:
A flexible, modern and blazingly fast ☄️ status page
55 lines (48 loc) • 1.15 kB
text/typescript
// import type { UserConfig } from "vite";
type BaseComponentType = {
id: string;
name: string;
status:
| "operational"
| "degradedPerformance"
| "partialOutage"
| "majorOutage"
| "unknown";
};
export type ComponentType = BaseComponentType & {
children?: BaseComponentType[];
};
export type IncidentType = {
id: string;
title: string;
description: string;
active: boolean;
scheduled: boolean;
createdAt: string;
};
export type Data =
| {
loading: true;
components: undefined;
incidents: undefined;
historicalIncidents: undefined;
}
| {
components: ComponentType[];
incidents: IncidentType[];
historicalIncidents: IncidentType[];
loading: false;
};
export type Provider = {
getComponents: () => Promise<ComponentType[]> | ComponentType[];
getIncidents: () => Promise<IncidentType[]> | IncidentType[];
getHistoricalIncidents: () => Promise<IncidentType[]> | IncidentType[];
};
export type IssueStatusConfig = {
name: string;
description?: string;
favicon?: string;
logo?: string;
provider: Provider;
// base: UserConfig["base"];
};