neoss
Version:
<div align="center"> <h1>neoss</h1> <i>Socket statistics, with a UI.</i> </div> <p align="center"> <a href="https://img.shields.io/github/v/release/pablolec/neoss" target="_blank"> <img src="https://img.shields.io/github/v/release/pablolec/neo
69 lines (60 loc) • 1.3 kB
text/typescript
#!/usr/bin/env node
import { Screen } from "neo-blessed";
import Table from "../ui/table";
import { setDefaultScreen } from "./popups";
let mainScreen: Screen;
let table: Table;
/**
* Create main application blessed screen and table objects.
*/
export function initialize() {
mainScreen = Screen({
smartCSR: true,
});
mainScreen.title = "neoss";
mainScreen.key(["escape", "q", "C-c"], function () {
return process.exit(0);
});
setDefaultScreen(mainScreen);
table = Table({
keys: true,
interactive: true,
tags: true,
top: "0",
left: "center",
width: "100%",
height: "shrink",
border: {
type: "line",
},
style: {
fg: "white",
border: {
fg: "white",
},
focus: {
bg: "blue",
},
header: {
fg: "black",
bg: "white",
},
},
});
}
/**
* Set new data as table content.
*/
export function setData(data: string[]) {
mainScreen.append(table);
table.setData({
headers: ["Protocol", "State", "Rx", "Tx", "Local Address", "Local Port", "Peer Address", "Peer Port", "Users"],
data: data,
});
}
/**
* Refresh screen with data currently stored in table for async results.
*/
export function refreshScreen() {
table.setData(table.table);
}