github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/web/src/ResourceStatus.ts (about) 1 import { Font } from "./style-helpers" 2 import { 3 ResourceDisableState, 4 ResourceStatus, 5 TargetType, 6 UIResource, 7 } from "./types" 8 9 export const disabledResourceStyleMixin = ` 10 font-family: ${Font.sansSerif}; 11 font-style: italic; 12 font-size: 14px; /* Use non-standard font-size, since sans-serif font looks larger than monospace font */ 13 ` 14 15 export function ClassNameFromResourceStatus(rs: ResourceStatus): string { 16 switch (rs) { 17 case ResourceStatus.Building: 18 return "isBuilding" 19 case ResourceStatus.Pending: 20 return "isPending" 21 case ResourceStatus.Warning: 22 return "isWarning" 23 case ResourceStatus.Healthy: 24 return "isHealthy" 25 case ResourceStatus.Unhealthy: 26 return "isUnhealthy" 27 case ResourceStatus.Disabled: 28 return "isDisabled" 29 case ResourceStatus.None: 30 return "isNone" 31 } 32 } 33 34 export function resourceIsDisabled(resource: UIResource | undefined): boolean { 35 if (!resource) { 36 return false 37 } 38 39 // Consider both "pending" and "disabled" states as disabled resources 40 const disableState = resource.status?.disableStatus?.state 41 if ( 42 disableState === ResourceDisableState.Pending || 43 disableState === ResourceDisableState.Disabled 44 ) { 45 return true 46 } 47 48 return false 49 } 50 51 // Choose the best identifier for the type of this resource. 52 // The deploy type (k8s, dc) is always preferred. 53 export function resourceTargetType(resource: UIResource): string { 54 let specs = resource.status?.specs || [] 55 let result = TargetType.Unspecified as string 56 specs.forEach((spec) => { 57 if (spec.type == "" || spec.type == TargetType.Unspecified) { 58 return 59 } 60 if (spec.type == TargetType.Image) { 61 if (result == TargetType.Unspecified) { 62 result = spec.type 63 } 64 return 65 } 66 if (spec.type) { 67 result = spec.type 68 } 69 }) 70 return result 71 }