import { SimpleTooltip } from "~/components/primitives/Tooltip"; import { BunLogoIcon } from "~/assets/icons/BunLogoIcon"; import { NodejsLogoIcon } from "~/assets/icons/NodejsLogoIcon"; import { parseRuntime, formatRuntimeWithVersion, type NormalizedRuntime } from "~/utils/runtime"; interface RuntimeIconProps { runtime?: string | null; runtimeVersion?: string | null; className?: string; withLabel?: boolean; } const getIcon = (runtime: NormalizedRuntime, className: string) => { switch (runtime) { case "bun": return ; case "node": return ; default: return ; } }; export function RuntimeIcon({ runtime, runtimeVersion, className = "h-4 w-4", withLabel = false, }: RuntimeIconProps) { const parsedRuntime = parseRuntime(runtime); // Default to Node.js if no runtime is specified const effectiveRuntime = parsedRuntime || { runtime: "node" as const, originalRuntime: "node", displayName: "Node.js", }; const icon = getIcon(effectiveRuntime.runtime, className); const formattedText = formatRuntimeWithVersion(effectiveRuntime.originalRuntime, runtimeVersion); if (withLabel) { return ( {icon} {formattedText} ); } if (typeof icon === "object" && "type" in icon) { return ( ); } return icon; }