Alpha

Utilities

Helper functions for formatting data.

The SDK includes utility functions for common formatting tasks.

formatBytes

Format bytes to human-readable string:

import { formatBytes } from "@deskctl/sdk";

formatBytes(0); // "0 B"
formatBytes(1024); // "1 KB"
formatBytes(1536); // "1.5 KB"
formatBytes(1073741824); // "1 GB"
formatBytes(1099511627776); // "1 TB"

// Custom decimal places
formatBytes(1536, 0); // "2 KB"
formatBytes(1536, 3); // "1.500 KB"

Usage Example

import { useSystemStats, formatBytes } from "@deskctl/sdk";

function MemoryUsage({ bridgeId }: { bridgeId: string }) {
  const { data } = useSystemStats(bridgeId, { fields: ["memory"] });

  if (!data?.memory) return null;

  return (
    <div>
      <p>Used: {formatBytes(data.memory.used)}</p>
      <p>Free: {formatBytes(data.memory.free)}</p>
      <p>Usage: {data.memory.used_percent.toFixed(1)}%</p>
    </div>
  );
}

formatUptime

Format seconds to human-readable uptime:

import { formatUptime } from "@deskctl/sdk";

formatUptime(0); // "0s"
formatUptime(45); // "45s"
formatUptime(60); // "1m"
formatUptime(3600); // "1h 0m"
formatUptime(3660); // "1h 1m"
formatUptime(86400); // "1d 0h"
formatUptime(90061); // "1d 1h"

Usage Example

import { useSystemStats, formatUptime } from "@deskctl/sdk";

function SystemUptime({ bridgeId }: { bridgeId: string }) {
  const { data } = useSystemStats(bridgeId);

  if (!data) return null;

  return <span>Uptime: {formatUptime(data.uptime)}</span>;
}

Type Exports

Import types for TypeScript usage:

import type {
  // Core types
  BridgeConfig,
  StoredBridge,
  BridgeConnection,
  ConnectionStatus,
  CachedSystemInfo,
  BridgeError,

  // API response types (from /api/system)
  SystemInfo,
  OsInfo,
  CpuInfo,
  GpuInfo,
  MemoryInfo,
  DiskInfo,
  NetworkInfo,

  // Real-time stats (from WS system_stats)
  StreamPayload,
  CpuUsage,
  MemoryUsage,
  GpuUsage,
  DiskUsage,
  NetworkUsage,

  // Media types
  MediaStatus,
  MediaAction,
  MediaActionType,

  // Process types
  ProcessInfo,
  ProcessDetail,
  ProcessListPayload,
  OperationFeedback,

  // Power types
  PowerAction,

  // Status types
  StatusResponse,
  PingResult,

  // WebSocket types
  WSIncomingEvent,
  WSOutgoingMessage,
  WSTopic,
} from "@deskctl/sdk";

On this page