New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

wtfnode

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wtfnode - npm Package Compare versions

Comparing version 0.6.0 to 0.7.0

105

index.js

@@ -22,2 +22,6 @@ 'use strict';

var _console_log = console.log.bind(console),
_console_warn = console.warn.bind(console),
_console_error = console.error.bind(console);
function timerCallback(thing) {

@@ -38,2 +42,30 @@ if (typeof thing._repeat === 'function') { return '_repeat'; }

var log = (function () {
var util;
var fns = { };
function log(/*type, args...*/) {
// lazy load so we can define this early but don't cause any requires
// until after we've hooked things or don't care
util = util || require('util');
var i = arguments.length, args = new Array(i);
while (i--) { args[i] = arguments[i]; }
var type = args.shift(), str = util.format.apply(util, args);
return fns[type](str);
}
log.setLogger = function setLogger(type, fn) {
fns[type] = fn;
};
log.resetLoggers = function resetLoggers() {
fns = {
'info': _console_log,
'warn': _console_warn,
'error': _console_error
};
};
log.resetLoggers();
return log;
})();
// hook stuff

@@ -109,3 +141,2 @@ (function () {

// to be a way around that :(
var consolelog = console.log.bind(console);
function wrapFn(fn, name, isInterval, callback) {

@@ -330,3 +361,3 @@ if (typeof fn !== 'function') { return fn; }

if (!DONT_INSTRUMENT[name]) {
console.warn('Unable to determine callsite for "'+name+'". Did you require `wtfnode` at the top of your entry point?');
log('warn', 'Unable to determine callsite for "'+name+'". Did you require `wtfnode` at the top of your entry point?');
}

@@ -339,3 +370,3 @@ return { name: '(anonymous)', file: 'unknown', line: 0 };

function dump() {
console.log('[WTF Node?] open handles:');
log('info', '[WTF Node?] open handles:');

@@ -365,3 +396,3 @@ // sort the active handles into different types for logging

if (fds.length) {
console.log('- File descriptors: (note: stdio always exists)');
log('info', '- File descriptors: (note: stdio always exists)');
fds.forEach(function (s) {

@@ -372,3 +403,3 @@ var str = ' - fd '+s.fd;

if (s.destroyed) { str += ' (destroyed)'; }
console.log(str);
log('info', str);

@@ -378,6 +409,6 @@ // this event will source the origin of a readline instance, kind of indirectly

if (keypressListeners && keypressListeners.length) {
console.log(' - Listeners:');
log('info', ' - Listeners:');
keypressListeners.forEach(function (fn) {
var callSite = getCallsite(fn);
console.log(' - %s: %s @ %s:%d', 'keypress', fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
log('info', ' - %s: %s @ %s:%d', 'keypress', fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
});

@@ -398,9 +429,9 @@ }

if (processes.length) {
console.log('- Child processes');
log('info', '- Child processes');
processes.forEach(function (cp) {
var fds = [ ];
console.log(' - PID %s', cp.pid);
log('info', ' - PID %s', cp.pid);
if (!DONT_INSTRUMENT['ChildProcess']) {
var callSite = getCallsite(cp);
console.log(' - Entry point: %s:%d', callSite.file, callSite.line);
log('info', ' - Entry point: %s:%d', callSite.file, callSite.line);
}

@@ -416,3 +447,3 @@ if (cp.stdio && cp.stdio.length) {

if (fds && fds.length) {
console.log(' - STDIO file descriptors:', fds.join(', '));
log('info', ' - STDIO file descriptors:', fds.join(', '));
}

@@ -424,8 +455,8 @@ }

if (clusterWorkers.length) {
console.log('- Cluster workers');
log('info', '- Cluster workers');
clusterWorkers.forEach(function (cw) {
var fds = [ ], cp = cw.__worker.process;
console.log(' - PID %s', cp.pid);
log('info', ' - PID %s', cp.pid);
var callSite = getCallsite(cw);
console.log(' - Entry point: %s:%d', callSite.file, callSite.line);
log('info', ' - Entry point: %s:%d', callSite.file, callSite.line);
});

@@ -435,19 +466,19 @@ }

if (sockets.length) {
console.log('- Sockets:');
log('info', '- Sockets:');
sockets.forEach(function (s) {
if (s.destroyed) {
console.log(' - (?:?) -> %s:? (destroyed)', s._host);
log('info', ' - (?:?) -> %s:? (destroyed)', s._host);
} else if (s.localAddress) {
console.log(' - %s:%s -> %s:%s', s.localAddress, s.localPort, s.remoteAddress, s.remotePort);
log('info', ' - %s:%s -> %s:%s', s.localAddress, s.localPort, s.remoteAddress, s.remotePort);
} else if (s._handle && (s._handle.fd != null)) {
console.log(' - fd %s', s._handle.fd);
log('info', ' - fd %s', s._handle.fd);
} else {
console.log(' - unknown socket');
log('info', ' - unknown socket');
}
var connectListeners = s.listeners('connect');
if (connectListeners && connectListeners.length) {
console.log(' - Listeners:');
log('info', ' - Listeners:');
connectListeners.forEach(function (fn) {
var callSite = getCallsite(fn);
console.log(' - %s: %s @ %s:%d', 'connect', fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
log('info', ' - %s: %s @ %s:%d', 'connect', fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
});

@@ -459,3 +490,3 @@ }

if (servers.length) {
console.log('- Servers:');
log('info', '- Servers:');
servers.forEach(function (s) {

@@ -480,5 +511,5 @@ var type = 'unknown type';

if (a) {
console.log(' - %s:%s (%s)', a.address, a.port, type);
log('info', ' - %s:%s (%s)', a.address, a.port, type);
} else {
console.log(' - <unknown address>'); // closed / race condition?
log('info', ' - <unknown address>'); // closed / race condition?
}

@@ -496,6 +527,6 @@

if (listeners && listeners.length) {
console.log(' - Listeners:');
log('info', ' - Listeners:');
listeners.forEach(function (fn) {
var callSite = getCallsite(fn);
console.log(' - %s: %s @ %s:%d', eventType, fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
log('info', ' - %s: %s @ %s:%d', eventType, fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
});

@@ -547,3 +578,3 @@ }

if (timers.length) {
console.log('- Timers:');
log('info', '- Timers:');

@@ -554,3 +585,3 @@ timers.forEach(function (t) {

console.log(' - (%d ~ %s) %s @ %s:%d', t._idleTimeout, formatTime(t._idleTimeout), fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
log('info', ' - (%d ~ %s) %s @ %s:%d', t._idleTimeout, formatTime(t._idleTimeout), fn.name || fn.__name || callSite.name || '(anonymous)', callSite.file, callSite.line);
});

@@ -560,3 +591,3 @@ }

if (intervals.length) {
console.log('- Intervals:');
log('info', '- Intervals:');

@@ -567,3 +598,3 @@ intervals.forEach(function (t) {

console.log(' - (%d ~ %s) %s @ %s:%d', t._idleTimeout, formatTime(t._idleTimeout), fn.name || fn.__name || callSite.name, callSite.file, callSite.line);
log('info', ' - (%d ~ %s) %s @ %s:%d', t._idleTimeout, formatTime(t._idleTimeout), fn.name || fn.__name || callSite.name, callSite.file, callSite.line);
});

@@ -573,7 +604,7 @@ }

if (other.length) {
console.log('- Others:');
log('info', '- Others:');
other.forEach(function (o) {
if (!o) { return; }
if (o.constructor) { console.log(' - %s', o.constructor.name); }
else { console.log(' - %s', o); }
if (o.constructor) { log('info', ' - %s', o.constructor.name); }
else { log('info', ' - %s', o); }
});

@@ -588,3 +619,3 @@ }

try { dump(); }
catch (e) { console.error(e); }
catch (e) { log('error', e); }
process.exit();

@@ -597,3 +628,5 @@ });

dump: dump,
init: init
init: init,
setLogger: log.setLogger,
resetLoggers: log.resetLoggers
};

@@ -603,3 +636,3 @@

if (process.argv.length < 3) {
console.error('Usage: wtfnode <yourscript> <yourargs> ...');
log('error', 'Usage: wtfnode <yourscript> <yourargs> ...');
process.exit(1);

@@ -606,0 +639,0 @@ }

{
"name": "wtfnode",
"version": "0.6.0",
"version": "0.7.0",
"description": "Utility to help find out why Node isn't exiting",

@@ -16,3 +16,3 @@ "repository": {

"scripts": {
"test": "(cd tests && node test && node test-eval && node test-promisify)",
"test": "(cd tests && node test && node test-eval && node test-promise && node test-promisify && node test-logging)",
"test-sourcemaps": "(cd tests && coffee --map --compile test-sourcemaps.coffee && node test-sourcemaps.js || exit 0)",

@@ -19,0 +19,0 @@ "kitchensink": "(cd tests && node kitchensink)"

@@ -55,2 +55,18 @@ # What?

## Configuring logging
`wtfnode` uses three logging levels, which default to `console.log`, `console.warn`, and `console.error`. The output is sent to `console.log`; warnings about potential problems when calculating the output are sent to `console.warn`; `console.error` is currently only used to print CLI usage info.
You can set these functions to an arbitrary log function of your own. It will be passed data in the same way that console.log receives it, so if you want a plain string you should call `util.format.apply(util, args)` on the data you receive.
Usage:
```js
var wtf = require('wtfnode');
wtf.setLogger('info', function (...) { ... });
wtf.setLogger('warn', function (...) { ... });
wtf.setLogger('error', function (...) { ... });
wtf.resetLoggers(); // if you want to put them back for some reason
```
# Caution

@@ -57,0 +73,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc