2024-01-16 21:26:16 +08:00
"use strict" ;
2023-12-18 13:12:25 +08:00
// 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
2024-01-16 21:26:16 +08:00
module . exports = function getCallerFile ( position ) {
if ( position === void 0 ) { position = 2 ; }
if ( position >= Error . stackTraceLimit ) {
throw new TypeError ( 'getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error . stackTraceLimit + '`' ) ;
}
var oldPrepareStackTrace = Error . prepareStackTrace ;
Error . prepareStackTrace = function ( _ , stack ) { return stack ; } ;
var stack = new Error ( ) . stack ;
Error . prepareStackTrace = oldPrepareStackTrace ;
if ( stack !== null && typeof stack === 'object' ) {
// stack[0] holds this file
// stack[1] holds where this function was called
// stack[2] holds the file we're interested in
return stack [ position ] ? stack [ position ] . getFileName ( ) : undefined ;
}
2023-12-18 13:12:25 +08:00
} ;
2024-01-16 21:26:16 +08:00
//# sourceMappingURL=index.js.map