// Inspired by http://stackoverflow.com/questions/13227489
// If you call this in a another function it returns you the file from
// which this function was called from. (Inspects the v8 stack trace)

module.exports = getCallerFile;
function getCallerFile() {
    var oldPrepareStackTrace = Error.prepareStackTrace;
    Error.prepareStackTrace = function (err, stack) {return stack;};
    var stack = new Error().stack;
    Error.prepareStackTrace = oldPrepareStackTrace;
    return stack[2] ? stack[2].getFileName() : undefined;
}
// Call this function in a another function to find out the file from
// which that function was called from. (Inspects the v8 stack trace)
//
// Inspired by http://stackoverflow.com/questions/13227489

module.exports = getCallerFile;
function getCallerFile() {
    var oldPrepareStackTrace = Error.prepareStackTrace;
    Error.prepareStackTrace = function (err, stack) { return stack; };
    var stack = new Error().stack;
    Error.prepareStackTrace = oldPrepareStackTrace;

    // stack[0] holds this file
    // stack[1] holds where this function was called
    // stack[2] holds the file we're interested in
    return stack[2] ? stack[2].getFileName() : undefined;
}
Comment getCallerFile