UNPKG

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

112 lines (111 loc) 3.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.retrieveSocket = retrieveSocket; exports.sortBy = sortBy; exports.getScroll = getScroll; let lastSort; let lastScroll; let ascending = false; function retrieveSocket(socket, data, currentIndex) { if (socket == null) { return currentIndex; } let i = 0; while (i < data.length) { let l = data[i]; let s = socket; let isSameInode = s.inode != "0" && s.inode == l.inode; let isSameOtherParams = s.localAddress == l.localAddress && s.localPort == l.localPort && s.peerAddress == l.peerAddress && s.peerPort == l.peerPort; if (isSameInode || isSameOtherParams) { currentIndex = i; break; } i++; } return currentIndex; } function sortColumn(data, key, numeric = false) { if (ascending && numeric) { data.sort((a, b) => (parseInt(a[key]) > parseInt(b[key]) ? 1 : -1)); } else if (!ascending && numeric) { data.sort((a, b) => (parseInt(a[key]) < parseInt(b[key]) ? 1 : -1)); } else if (key == "users" && ascending) { data.sort((a, b) => (a[key].text > b[key].text ? 1 : -1)); } else if (key == "users") { data.sort((a, b) => (a[key].text < b[key].text ? 1 : -1)); } else if (ascending) { data.sort((a, b) => (a[key] > b[key] ? 1 : -1)); } else { data.sort((a, b) => (a[key] < b[key] ? 1 : -1)); } } function sortBy(column, data) { if (column == null && lastSort == null) { return data; } else if (column == null) { column = lastSort; } else if (lastSort == column) { ascending = !ascending; } lastSort = column; switch (column) { case 0: sortColumn(data, "protocol"); break; case 1: sortColumn(data, "state"); break; case 2: sortColumn(data, "receiveQueue", true); break; case 3: sortColumn(data, "sendQueue", true); break; case 4: sortColumn(data, "localAddress"); break; case 5: sortColumn(data, "localPort", true); break; case 6: sortColumn(data, "peerAddress"); break; case 7: sortColumn(data, "peerPort", true); break; case 8: sortColumn(data, "users"); break; } return data; } function getScroll(row, screenLines) { if (lastScroll === undefined) { lastScroll = [0, screenLines - 1]; } let newScroll = lastScroll; let diff; if (row >= lastScroll[0] && row < lastScroll[1]) { newScroll = lastScroll; } else if (row < lastScroll[0]) { diff = lastScroll[0] - row; newScroll = [lastScroll[0] - diff, lastScroll[1] - diff]; } else if (row >= lastScroll[1]) { diff = row - lastScroll[1] + 1; newScroll = [lastScroll[0] + diff, lastScroll[1] + diff]; } lastScroll = newScroll; return newScroll; }