LCOV - code coverage report
Current view: top level - pkg/lib/cockpit/_internal - info.ts Coverage Total Hit
Test: cockpit Lines: 100.0 % 12 12
Test Date: 2026-07-17 14:32:59

            Line data    Source code
       1              : /*
       2              :  * Copyright (C) 2025 Red Hat, Inc.
       3              :  * SPDX-License-Identifier: GPL-3.0-or-later
       4              :  */
       5              : 
       6              : import { Channel } from '../channel';
       7              : 
       8              : /* We allow accessing arbitrary fields by a Partial<Record<>> type, but having
       9              :  * an explicit list is useful for autocompletion. */
      10              : export interface OsRelease {
      11              :     NAME?: string;
      12              :     VERSION?: string;
      13              :     RELEASE_TYPE?: string;
      14              :     ID?: string;
      15              :     VERSION_ID?: string;
      16              :     VERSION_CODENAME?: string;
      17              :     PLATFORM_ID?: string;
      18              :     PRETTY_NAME?: string;
      19              :     ANSI_COLOR?: string;
      20              :     LOGO?: string;
      21              :     CPE_NAME?: string;
      22              :     DEFAULT_HOSTNAME?: string;
      23              :     HOME_URL?: string;
      24              :     DOCUMENTATION_URL?: string;
      25              :     SUPPORT_URL?: string;
      26              :     BUG_REPORT_URL?: string;
      27              :     SUPPORT_END?: string;
      28              :     VARIANT?: string;
      29              :     VARIANT_ID?: string;
      30              : }
      31              : 
      32              : export interface User {
      33              :     fullname: string;
      34              :     gid: number;
      35              :     group: string;
      36              :     groups: string[];
      37              :     home: string;
      38              :     name: string;
      39              :     shell: string;
      40              :     uid: number;
      41              : }
      42              : 
      43              : export interface WebserverInfo {
      44              :     version: string;
      45              : }
      46              : 
      47              : export interface Info {
      48              :     channels: Partial<Record<string, string[]>>;
      49              :     os_release: OsRelease & Partial<Record<string, string>>;
      50              :     user: User;
      51              :     ws: WebserverInfo;
      52              : }
      53              : 
      54           19 : export function fetch_info(): Promise<Info> {
      55           19 :     const channel = new Channel({ payload: 'info' });
      56           19 :     return new Promise((resolve, reject) => {
      57           19 :         channel.on('data', data => {
      58           19 :             resolve(JSON.parse(data));
      59           19 :             channel.close();
      60           19 :         });
      61           19 :         channel.on('close', msg => {
      62           19 :             reject(msg);
      63           19 :         });
      64           19 :     });
      65           19 : }
        

Generated by: LCOV version 2.0-1