getCallSites
external fun getCallSites( frameCount: Number = definedExternally, options: GetCallSitesOptions = definedExternally): <Error class: unknown class><CallSiteObject>(source)
Returns an array of call site objects containing the stack of the caller function.
const util = require('node:util');
function exampleFunction() {
const callSites = util.getCallSites();
console.log('Call Sites:');
callSites.forEach((callSite, index) => {
console.log(`CallSite ${index + 1}:`);
console.log(`Function Name: ${callSite.functionName}`);
console.log(`Script Name: ${callSite.scriptName}`);
console.log(`Line Number: ${callSite.lineNumber}`);
console.log(`Column Number: ${callSite.column}`);
});
// CallSite 1:
// Function Name: exampleFunction
// Script Name: /home/example.js
// Line Number: 5
// Column Number: 26
// CallSite 2:
// Function Name: anotherFunction
// Script Name: /home/example.js
// Line Number: 22
// Column Number: 3
// ...
}
// A function to simulate another stack layer
function anotherFunction() {
exampleFunction();
}
anotherFunction();
Content copied to clipboard
It is possible to reconstruct the original locations by setting the option sourceMap
to true
. If the source map is not available, the original location will be the same as the current location. When the --enable-source-maps
flag is enabled, for example when using --experimental-transform-types
, sourceMap
will be true by default.
import util from 'node:util';
interface Foo {
foo: string;
}
const callSites = util.getCallSites({ sourceMap: true });
// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26
// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26
Content copied to clipboard
Return
An array of call site objects
Since
v22.9.0
Parameters
frameCount
Number of frames to capture as call site objects. Default: 10
. Allowable range is between 1 and 200.
external fun getCallSites(options: GetCallSitesOptions): <Error class: unknown class><CallSiteObject>(source)