Skip to content

Instantly share code, notes, and snippets.

@HeilTec
Created December 13, 2016 20:26
Show Gist options
  • Save HeilTec/5bc4c2c0d29b581196fb4830c5fd91d7 to your computer and use it in GitHub Desktop.
Save HeilTec/5bc4c2c0d29b581196fb4830c5fd91d7 to your computer and use it in GitHub Desktop.
Node program to print all available info from the 'os' module using functional style.
// Node program to print all available info from the 'os' module using functional style.
const os = require('os');
const allInfo = Object.keys(os);
const isOsFunction = (item) => typeof os[item] === "function";
const isNotOsFunction = (item) => typeof os[item] !== "function";
const callFunction = (info) => ({[info+'()']: os[info]()});
const getInfoField = (info) => ({[info]: os[info]});
const logItem = (item) => {
console.log(
typeof item === 'string'
? item
: JSON.stringify(item,null,2));
return item;
}
console.log("Show values:");
allInfo.filter(isNotOsFunction).map(getInfoField).map(logItem);
console.log("************************"+os.EOL+"Show functions result:");
allInfo.filter(isOsFunction).map(callFunction).map(logItem);
// Info: Start process (21.04.57)
// Show values:
// {
// "constants": {
// "UV_UDP_REUSEADDR": 4,
// "errno": {
// "E2BIG": 7,
// "EACCES": 13,
// "EADDRINUSE": 100,
// "EADDRNOTAVAIL": 101,
// "EAFNOSUPPORT": 102,
// "EAGAIN": 11,
// "EALREADY": 103,
// "EBADF": 9,
// "EBADMSG": 104,
// "EBUSY": 16,
// "ECANCELED": 105,
// "ECHILD": 10,
// "ECONNABORTED": 106,
// "ECONNREFUSED": 107,
// "ECONNRESET": 108,
// "EDEADLK": 36,
// "EDESTADDRREQ": 109,
// "EDOM": 33,
// "EEXIST": 17,
// "EFAULT": 14,
// "EFBIG": 27,
// "EHOSTUNREACH": 110,
// "EIDRM": 111,
// "EILSEQ": 42,
// "EINPROGRESS": 112,
// "EINTR": 4,
// "EINVAL": 22,
// "EIO": 5,
// "EISCONN": 113,
// "EISDIR": 21,
// "ELOOP": 114,
// "EMFILE": 24,
// "EMLINK": 31,
// "EMSGSIZE": 115,
// "ENAMETOOLONG": 38,
// "ENETDOWN": 116,
// "ENETRESET": 117,
// "ENETUNREACH": 118,
// "ENFILE": 23,
// "ENOBUFS": 119,
// "ENODATA": 120,
// "ENODEV": 19,
// "ENOENT": 2,
// "ENOEXEC": 8,
// "ENOLCK": 39,
// "ENOLINK": 121,
// "ENOMEM": 12,
// "ENOMSG": 122,
// "ENOPROTOOPT": 123,
// "ENOSPC": 28,
// "ENOSR": 124,
// "ENOSTR": 125,
// "ENOSYS": 40,
// "ENOTCONN": 126,
// "ENOTDIR": 20,
// "ENOTEMPTY": 41,
// "ENOTSOCK": 128,
// "ENOTSUP": 129,
// "ENOTTY": 25,
// "ENXIO": 6,
// "EOPNOTSUPP": 130,
// "EOVERFLOW": 132,
// "EPERM": 1,
// "EPIPE": 32,
// "EPROTO": 134,
// "EPROTONOSUPPORT": 135,
// "EPROTOTYPE": 136,
// "ERANGE": 34,
// "EROFS": 30,
// "ESPIPE": 29,
// "ESRCH": 3,
// "ETIME": 137,
// "ETIMEDOUT": 138,
// "ETXTBSY": 139,
// "EWOULDBLOCK": 140,
// "EXDEV": 18,
// "WSAEINTR": 10004,
// "WSAEBADF": 10009,
// "WSAEACCES": 10013,
// "WSAEFAULT": 10014,
// "WSAEINVAL": 10022,
// "WSAEMFILE": 10024,
// "WSAEWOULDBLOCK": 10035,
// "WSAEINPROGRESS": 10036,
// "WSAEALREADY": 10037,
// "WSAENOTSOCK": 10038,
// "WSAEDESTADDRREQ": 10039,
// "WSAEMSGSIZE": 10040,
// "WSAEPROTOTYPE": 10041,
// "WSAENOPROTOOPT": 10042,
// "WSAEPROTONOSUPPORT": 10043,
// "WSAESOCKTNOSUPPORT": 10044,
// "WSAEOPNOTSUPP": 10045,
// "WSAEPFNOSUPPORT": 10046,
// "WSAEAFNOSUPPORT": 10047,
// "WSAEADDRINUSE": 10048,
// "WSAEADDRNOTAVAIL": 10049,
// "WSAENETDOWN": 10050,
// "WSAENETUNREACH": 10051,
// "WSAENETRESET": 10052,
// "WSAECONNABORTED": 10053,
// "WSAECONNRESET": 10054,
// "WSAENOBUFS": 10055,
// "WSAEISCONN": 10056,
// "WSAENOTCONN": 10057,
// "WSAESHUTDOWN": 10058,
// "WSAETOOMANYREFS": 10059,
// "WSAETIMEDOUT": 10060,
// "WSAECONNREFUSED": 10061,
// "WSAELOOP": 10062,
// "WSAENAMETOOLONG": 10063,
// "WSAEHOSTDOWN": 10064,
// "WSAEHOSTUNREACH": 10065,
// "WSAENOTEMPTY": 10066,
// "WSAEPROCLIM": 10067,
// "WSAEUSERS": 10068,
// "WSAEDQUOT": 10069,
// "WSAESTALE": 10070,
// "WSAEREMOTE": 10071,
// "WSASYSNOTREADY": 10091,
// "WSAVERNOTSUPPORTED": 10092,
// "WSANOTINITIALISED": 10093,
// "WSAEDISCON": 10101,
// "WSAENOMORE": 10102,
// "WSAECANCELLED": 10103,
// "WSAEINVALIDPROCTABLE": 10104,
// "WSAEINVALIDPROVIDER": 10105,
// "WSAEPROVIDERFAILEDINIT": 10106,
// "WSASYSCALLFAILURE": 10107,
// "WSASERVICE_NOT_FOUND": 10108,
// "WSATYPE_NOT_FOUND": 10109,
// "WSA_E_NO_MORE": 10110,
// "WSA_E_CANCELLED": 10111,
// "WSAEREFUSED": 10112
// },
// "signals": {
// "SIGHUP": 1,
// "SIGINT": 2,
// "SIGILL": 4,
// "SIGABRT": 22,
// "SIGFPE": 8,
// "SIGKILL": 9,
// "SIGSEGV": 11,
// "SIGTERM": 15,
// "SIGBREAK": 21,
// "SIGWINCH": 28
// }
// }
// }
// {
// "EOL": "\r\n"
// }
// ************************
// Show functions result:
// {
// "hostname()": "HeilTec-Pc"
// }
// {
// "loadavg()": [
// 0,
// 0,
// 0
// ]
// }
// {
// "uptime()": 243473.7463149
// }
// {
// "freemem()": 1089527808
// }
// {
// "totalmem()": 4260282368
// }
// {
// "cpus()": [
// {
// "model": "Pentium(R) Dual-Core CPU T4300 @ 2.10GHz",
// "speed": 2095,
// "times": {
// "user": 46488109,
// "nice": 0,
// "sys": 26807750,
// "idle": 170178171,
// "irq": 3182437
// }
// },
// {
// "model": "Pentium(R) Dual-Core CPU T4300 @ 2.10GHz",
// "speed": 2095,
// "times": {
// "user": 48767890,
// "nice": 0,
// "sys": 20982359,
// "idle": 173723515,
// "irq": 382015
// }
// }
// ]
// }
// {
// "type()": "Windows_NT"
// }
// {
// "release()": "10.0.14393"
// }
// {
// "networkInterfaces()": {
// "LAN-forbindelse": [
// {
// "address": "91.101.xxx.xxx",
// "netmask": "255.255.xxx.xxx",
// "family": "IPv4",
// "mac": "ff:ff:ff:ff:ff:ff",
// "internal": false
// }
// ],
// "Loopback Pseudo-Interface 1": [
// {
// "address": "::1",
// "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
// "family": "IPv6",
// "mac": "00:00:00:00:00:00",
// "scopeid": 0,
// "internal": true
// }
// ]
// }
// }
// {
// "homedir()": "C:\\Users\\HeilTec"
// }
// {
// "userInfo()": {
// "uid": -1,
// "gid": -1,
// "username": "HeilTec",
// "homedir": "C:\\Users\\HeilTec",
// "shell": null
// }
// }
// {
// "arch()": "x64"
// }
// {
// "platform()": "win32"
// }
// {
// "tmpdir()": "C:\\Users\\HeilTec\\AppData\\Local\\Temp"
// }
// {
// "tmpDir()": "C:\\Users\\HeilTec\\AppData\\Local\\Temp"
// }
// {
// "getNetworkInterfaces()": {
// "LAN-forbindelse": [
// {
// "address": "91.101.xxx.xxx",
// "netmask": "255.255.xxx.xxx",
// "family": "IPv4",
// "mac": "ff:ff:ff:ff:ff:ff",
// "internal": false
// }
// ],
// "Loopback Pseudo-Interface 1": [
// {
// "address": "::1",
// "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
// "family": "IPv6",
// "mac": "00:00:00:00:00:00",
// "scopeid": 0,
// "internal": true
// },
// {
// "address": "127.0.0.1",
// "netmask": "255.0.0.0",
// "family": "IPv4",
// "mac": "00:00:00:00:00:00",
// "internal": true
// }
// ]
// }
// }
// {
// "endianness()": "LE"
// }
// Error:
// (node:15264) DeprecationWarning: os.getNetworkInterfaces is deprecated. Use os.networkInterfaces instead.
// Info: End process (21.04.58)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment