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  }