{"id":1864,"date":"2019-02-11T17:26:35","date_gmt":"2019-02-11T16:26:35","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=1864"},"modified":"2019-02-11T17:26:57","modified_gmt":"2019-02-11T16:26:57","slug":"es6-mapnumber-cli-progressbar","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/es6-mapnumber-cli-progressbar\/","title":{"rendered":"ES6 MapNumber, CLI  progressbar"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const fetch = require('node-fetch');\n\nlet tvs = {};\n\nconst limit = (v, min, max) => Math.max(min, Math.min(max, Number(v) || 0));\nconst mapNumber = (v, inMin, inMax, outMin, outMax) => (limit(v, inMin, inMax) - inMin) * (outMax - outMin) \/ (inMax - inMin) + outMin;\n\nlet getProgressBar;\ngetProgressBar = (name, perc, width) => {\n    perc = mapNumber(perc, 85, 100, 0, 100); \/\/ correctie om meer verschil te zien\n    let full = Math.floor((perc \/ 100) * width);\n    let empty = width - full;    \n    return name + ' [' + '='.repeat(full) + ' '.repeat(empty) + ']';\n};\n\nconst updateProgress = () => {\n    var pbs = [];\n    Object.keys(tvs)\n    .forEach(k => {\n        pbs.push(getProgressBar(k, 100 - tvs[k], 100));\n    });\n    const out = pbs.join(', ') + '\\r';\n    \/\/console.log(out);\n    process.stdout.write(out);\n};\n\nconst showInfo = (tv, data) => {\n    if (data &amp;&amp; data.SystemUsage) {\n        let memory = data.SystemUsage.memory;\n        let total = memory.total;\n        let free = (memory.total - memory.used);\n        let perc = (free \/ total) * 100;    \n        tvs[tv] = perc;\n        updateProgress();\n    }\n};\n\nconst getInfo = (url, tv) => {\n   return fetch(url)\n    .then(r => r.json())\n    .then(d => showInfo(tv, d));\n}\n\nsetInterval(() => {    \n    getInfo('http:\/\/10.199.108.35:9500\/api\/info', '35');\n    getInfo('http:\/\/10.199.108.34:9500\/api\/info', '34');\n}, 2000);<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1864","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=1864"}],"version-history":[{"count":2,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1864\/revisions"}],"predecessor-version":[{"id":1866,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1864\/revisions\/1866"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=1864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=1864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=1864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}