UNPKG

@frangoteam/fuxa

Version:

Web-based Process Visualization (SCADA/HMI/Dashboard) software

77 lines (70 loc) 2.67 kB
const os = require('os'); const ip = require('ip'); 'use strict'; var utils = module.exports = { domStringSplitter: function (src, tagsplitter, first) { var result = { before: '', tagcontent: '', after: '' }; var tagStart = '<' + tagsplitter.toLowerCase(); var tagEnd = '</' + tagsplitter.toLowerCase(); var text = src.toLowerCase(); var start = text.indexOf(tagStart, first); var end = text.indexOf(tagEnd, start); result.before = src.slice(0, start); result.tagcontent = src.slice(start, end); result.after = src.slice(end); return result; }, domStringSetAttribute: function (src, tags, attribute) { var result = src; for (var i = 0; i < tags.length; i++) { var text = result.toLowerCase(); var tagStart = '<' + tags[i].toLowerCase(); var pos = 0; var temp = ''; while((pos = text.indexOf(tagStart, pos)) !== -1) { pos += tagStart.length + 1; temp += src.slice(0, pos) + attribute + ' ' + src.slice(pos); } if (temp.length) { result = temp; } } return result; }, /** * Return available interface to use */ getHostInterfaces: function() { return new Promise(function (resolve, reject) { try { let nics = []; const osNics = os.networkInterfaces(); nics.push({ name: 'Default' }); Object.keys(osNics).forEach((ifname) => { osNics[ifname].forEach((iface) => { if (iface.interal === true) return; if (iface.family !== 'IPv4') return; nics.push({ name: ifname, address: iface.address, broadcast: ip.subnet(iface.address, iface.netmask).broadcastAddress }); }); }); resolve(nics); } catch (err) { reject('gethostinterfaces-error: ' + err); } }); }, endTime: function (startTime) { var endTime = new Date(); return endTime - startTime; }, isEmptyObject: function (value) { return value && Object.keys(value).length === 0 && value.constructor === Object; }, isNullOrUndefined: function (ele) { return (ele === null || ele === undefined) ? true : false; } }