31 lines
551 B
JavaScript
31 lines
551 B
JavaScript
'use strict'
|
|
|
|
function noOpPrepareStackTrace (_, stack) {
|
|
return stack
|
|
}
|
|
|
|
module.exports = function getCallers () {
|
|
const originalPrepare = Error.prepareStackTrace
|
|
Error.prepareStackTrace = noOpPrepareStackTrace
|
|
const stack = new Error().stack
|
|
Error.prepareStackTrace = originalPrepare
|
|
|
|
if (!Array.isArray(stack)) {
|
|
return undefined
|
|
}
|
|
|
|
const entries = stack.slice(2)
|
|
|
|
const fileNames = []
|
|
|
|
for (const entry of entries) {
|
|
if (!entry) {
|
|
continue
|
|
}
|
|
|
|
fileNames.push(entry.getFileName())
|
|
}
|
|
|
|
return fileNames
|
|
}
|