97 lines · 2.4 KB · TypeScript
RawDownload
import * as protocol from "./generated-protocol.js";import { fromGeneratedProcessSnapshotStatus } from "./protocol-maps.js"; // The u64 identity/size fields stay bigint: host filesystems (overlayfs,// FUSE, network mounts) can report dev/ino values above// Number.MAX_SAFE_INTEGER, and the Rust client keeps the same fields as u64.// Consumers that need JS numbers convert (lossily, like Node's default// fs.stat) at their own boundary.export interface LiveGuestFilesystemStat {	mode: number;	size: bigint;	blocks: bigint;	dev: bigint;	rdev: bigint;	is_directory: boolean;	is_symbolic_link: boolean;	atime_ms: number;	mtime_ms: number;	ctime_ms: number;	birthtime_ms: number;	ino: bigint;	nlink: bigint;	uid: number;	gid: number;} export interface LiveSocketStateEntry {	process_id: string;	host?: string;	port?: number;	path?: string;} export interface LiveProcessSnapshotEntry {	process_id: string;	pid: number;	ppid: number;	pgid: number;	sid: number;	driver: string;	command: string;	args?: string[];	cwd: string;	status: "running" | "exited" | "stopped";	exit_code?: number;} export function fromGeneratedGuestFilesystemStat(	stat: protocol.GuestFilesystemStat,): LiveGuestFilesystemStat {	return {		mode: stat.mode,		size: stat.size,		blocks: stat.blocks,		dev: stat.dev,		rdev: stat.rdev,		is_directory: stat.isDirectory,		is_symbolic_link: stat.isSymbolicLink,		atime_ms: Number(stat.atimeMs),		mtime_ms: Number(stat.mtimeMs),		ctime_ms: Number(stat.ctimeMs),		birthtime_ms: Number(stat.birthtimeMs),		ino: stat.ino,		nlink: stat.nlink,		uid: stat.uid,		gid: stat.gid,	};} export function fromGeneratedSocketStateEntry(	entry: protocol.SocketStateEntry,): LiveSocketStateEntry {	return {		process_id: entry.processId,		...(entry.host !== null ? { host: entry.host } : {}),		...(entry.port !== null ? { port: entry.port } : {}),		...(entry.path !== null ? { path: entry.path } : {}),	};} export function fromGeneratedProcessSnapshotEntry(	entry: protocol.ProcessSnapshotEntry,): LiveProcessSnapshotEntry {	return {		process_id: entry.processId,		pid: entry.pid,		ppid: entry.ppid,		pgid: entry.pgid,		sid: entry.sid,		driver: entry.driver,		command: entry.command,		args: [...entry.args],		cwd: entry.cwd,		status: fromGeneratedProcessSnapshotStatus(entry.status),		...(entry.exitCode !== null ? { exit_code: entry.exitCode } : {}),	};}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t