Add Prettier and ESLint tooling (Refs #77)
This commit is contained in:
+34
-10
@@ -1,21 +1,45 @@
|
||||
import type { StatusTone } from './status.js';
|
||||
|
||||
export interface BetaDeploymentServer {
|
||||
server: string; server_deleted_at?: string | null; stage: string; error: string | null;
|
||||
deployed_at: string | null; restarted_at: string | null; healthy_at: string | null;
|
||||
match_seen_at: string | null; provisioning_id: string | null;
|
||||
server: string;
|
||||
server_deleted_at?: string | null;
|
||||
stage: string;
|
||||
error: string | null;
|
||||
deployed_at: string | null;
|
||||
restarted_at: string | null;
|
||||
healthy_at: string | null;
|
||||
match_seen_at: string | null;
|
||||
provisioning_id: string | null;
|
||||
}
|
||||
|
||||
export function betaStatus(beta: { state: string; testOutcome?: string | null;
|
||||
servers: { stage: string; server_deleted_at?: string | null }[] }): {
|
||||
key: string; label: string; tone: StatusTone;
|
||||
export function betaStatus(beta: {
|
||||
state: string;
|
||||
testOutcome?: string | null;
|
||||
servers: { stage: string; server_deleted_at?: string | null }[];
|
||||
}): {
|
||||
key: string;
|
||||
label: string;
|
||||
tone: StatusTone;
|
||||
} {
|
||||
if (beta.state === 'promoted') return { key: 'promoted', label: 'Promoted', tone: 'online' };
|
||||
if (beta.state === 'rolled-back') return { key: 'rolled-back', label: 'Rolled back', tone: 'neutral' };
|
||||
if (beta.servers.some(server => server.server_deleted_at || server.stage === 'failed') || ['failed', 'inconclusive'].includes(beta.testOutcome ?? '')) {
|
||||
return { key: 'attention', label: 'Needs attention', tone: beta.testOutcome === 'failed' || beta.servers.some(server => server.stage === 'failed') ? 'danger' : 'warning' };
|
||||
if (beta.state === 'rolled-back')
|
||||
return { key: 'rolled-back', label: 'Rolled back', tone: 'neutral' };
|
||||
if (
|
||||
beta.servers.some((server) => server.server_deleted_at || server.stage === 'failed') ||
|
||||
['failed', 'inconclusive'].includes(beta.testOutcome ?? '')
|
||||
) {
|
||||
return {
|
||||
key: 'attention',
|
||||
label: 'Needs attention',
|
||||
tone:
|
||||
beta.testOutcome === 'failed' ||
|
||||
beta.servers.some((server) => server.stage === 'failed')
|
||||
? 'danger'
|
||||
: 'warning'
|
||||
};
|
||||
}
|
||||
if (beta.testOutcome === 'paused') return { key: 'paused', label: 'Paused', tone: 'warning' };
|
||||
if (beta.state === 'ready-promote') return { key: 'ready', label: 'Ready to promote', tone: 'online' };
|
||||
if (beta.state === 'ready-promote')
|
||||
return { key: 'ready', label: 'Ready to promote', tone: 'online' };
|
||||
return { key: 'testing', label: 'Testing', tone: 'info' };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user