Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
caller-callsite
Advanced tools
The caller-callsite npm package allows developers to retrieve information about the call site of the function that called the current function. This can be particularly useful for debugging, logging, and tracking the flow of execution in complex applications. It leverages the V8 stack trace API to provide detailed information about the caller's location in the code.
Getting caller call site information
This feature allows developers to obtain information about the call site of the function that called the current function. The code sample demonstrates how to use caller-callsite to get the file name and line number of the caller function.
const callerCallsite = require('caller-callsite');
function demoFunction() {
const callSite = callerCallsite();
console.log(callSite.getFileName()); // prints the file name of the caller
console.log(callSite.getLineNumber()); // prints the line number of the caller
}
function callerFunction() {
demoFunction();
}
callerFunction();
The 'callsites' package provides functionality similar to caller-callsite by returning an array of call sites (stack frames), allowing developers to inspect the call stack. It differs in that it gives a broader view of the call stack rather than focusing on the immediate caller.
The 'stack-trace' package is another alternative that allows capturing stack traces. While it provides detailed information about the call stack, similar to 'callsites', it also includes features for parsing and working with stack traces, offering a more comprehensive approach compared to caller-callsite.
Get the callsite of the caller function
$ npm install caller-callsite
// foo.js
const callerCallsite = require('caller-callsite');
module.exports = () => {
console.log(callerCallsite().getFileName());
//=> '/Users/sindresorhus/dev/unicorn/bar.js'
}
// bar.js
const foo = require('./foo');
foo();
Returns a callsite
object.
Type: object
Type: number
Default: 0
The callsite depth, meaning how many levels we follow back on the stack trace.
For example:
// foo.js
const callerCallsite = require('caller-callsite');
module.exports = () => {
console.log(callerCallsite().getFileName());
//=> '/Users/sindresorhus/dev/unicorn/foobar.js'
console.log(callerCallsite({depth: 1}).getFileName());
//=> '/Users/sindresorhus/dev/unicorn/bar.js'
console.log(callerCallsite({depth: 2}).getFileName());
//=> '/Users/sindresorhus/dev/unicorn/foo.js'
}
// bar.js
const foo = require('./foo');
module.exports = () => {
foo();
}
// foobar.js
const bar = require('./bar');
bar();
FAQs
Get the callsite of the caller function
The npm package caller-callsite receives a total of 5,341,494 weekly downloads. As such, caller-callsite popularity was classified as popular.
We found that caller-callsite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.