UNPKG

endive-util

Version:
124 lines (112 loc) 3.38 kB
var os = require( 'os' ); var util = require( 'util' ); module.exports.getLocalIPs = function ( family ) { if ( arguments.length == 0 ) { family = 'IPv4'; } var addresses = []; var interfaces = os.networkInterfaces(); for ( var i in interfaces ) { interfaces[i].forEach( function ( contents ) { if ( contents.family == family ) { addresses.push( contents.address ); } }); } return addresses; }; module.exports.filterObjectsFromArray = function ( array , objects , key ) { var results = []; var length = array.length; var objLength = objects.length; for ( var i = 0 ; i < length ; i++ ) { var value = array[i]; for ( var j = 0 ; j < objLength ; j++ ) { var object = objects[j]; // console.log ( object[key] + ' == ' + value ); if ( object[key] == value ) { results.push( object ); console.log( 'register : ' + object.host + ':' + object.port + '\n' ); } } } return results; }; function extractArguments( func ) { var funcstring = null; if ( typeof func === 'function' ) { funcstring = func.toString(); } else { funcstring = func; } var begin = funcstring.indexOf( '(' ) + 1; var end = funcstring.indexOf( ')' , begin ) - 1; if ( begin < end ) { var argstring = funcstring.substring( begin , end ).replace( / /g , '' ); var args = argstring.split( ',' ); var length = args.length; if ( length > 0 ) { return args; } } return null; }; module.exports.extractArguments = extractArguments; module.exports.dynamicCall = function( func , sortedArgs , specificArgs , funcOwner ) { var funcstring = null; var defaultCall = true; var specificArgKeys = Object.keys( specificArgs ); if ( specificArgKeys != null && specificArgKeys.length > 0 ) { var inputArgs = null; var args = extractArguments( func ); if ( args != null ) { inputArgs = []; defaultCall = false; var index = 0; var length = args.length; for( var i = 0 ; i < length ; i++ ) { var sIndex = specificArgKeys.indexOf( args[i] ); if( sIndex >= 0 ) { inputArgs.push( specificArgs[specificArgKeys[sIndex]] ); } else { inputArgs.push( sortedArgs[index] ); index++; } } } } if ( defaultCall ) { inputArgs = sortedArgs; } funcOwner = funcOwner || null; func.apply( funcOwner , inputArgs ); }; module.exports.format = function() { return util.format.apply( util , arguments ); }; module.exports.log = function() { util.log( util.format.apply ( util , arguments ) ); }; module.exports.debug = function() { util.debug( util.format.apply ( util , arguments ) ); }; module.exports.error = function() { util.error( util.format.apply ( util , arguments ) ); };