42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
|
/*
|
||
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
|
Author Tobias Koppers @sokra
|
||
|
*/
|
||
|
module.exports = function createInnerCallback(callback, options, message, messageOptional) {
|
||
|
var log = options.log;
|
||
|
if(!log) {
|
||
|
if(options.stack !== callback.stack) {
|
||
|
var callbackWrapper = function callbackWrapper() {
|
||
|
return callback.apply(this, arguments);
|
||
|
};
|
||
|
callbackWrapper.stack = options.stack;
|
||
|
callbackWrapper.missing = options.missing;
|
||
|
return callbackWrapper;
|
||
|
}
|
||
|
return callback;
|
||
|
}
|
||
|
|
||
|
function loggingCallbackWrapper() {
|
||
|
var i;
|
||
|
if(message) {
|
||
|
if(!messageOptional || theLog.length > 0) {
|
||
|
log(message);
|
||
|
for(i = 0; i < theLog.length; i++)
|
||
|
log(" " + theLog[i]);
|
||
|
}
|
||
|
} else {
|
||
|
for(i = 0; i < theLog.length; i++)
|
||
|
log(theLog[i]);
|
||
|
}
|
||
|
return callback.apply(this, arguments);
|
||
|
|
||
|
}
|
||
|
var theLog = [];
|
||
|
loggingCallbackWrapper.log = function writeLog(msg) {
|
||
|
theLog.push(msg);
|
||
|
};
|
||
|
loggingCallbackWrapper.stack = options.stack;
|
||
|
loggingCallbackWrapper.missing = options.missing;
|
||
|
return loggingCallbackWrapper;
|
||
|
};
|