Package Exports
- caller-id
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (caller-id) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
caller-id
A utility for getting information on the caller of a function in node.js
Installation
- Add
caller-id
as a dependency to your project’spackage.json
- Run
npm install
Usage Examples
getData
getData()
can be used to get raw data about a function's caller
var callerId = require('caller-id');
// 1. Function calling another function
function foo() {
bar();
}
function bar() {
var caller = callerId.getData();
/*
caller = {
typeName: 'Object',
functionName: 'foo',
filePath: '/path/of/this/file.js',
lineNumber: 5,
topLevelFlag: true,
nativeFlag: false,
evalFlag: false
}
*/
}
// 2. Method in a class calling a function
function Lorem() {}
Lorem.prototype.ipsum = function() {
baz();
}
function baz() {
var caller = callerId.getData();
/*
caller = {
typeName: 'Lorem',
functionName: 'Lorem.ipsum',
methodName: 'ipsum',
filePath: '/path/of/this/file.js',
lineNumber: 25,
topLevelFlag: false,
nativeFlag: false,
evalFlag: false
}
*/
}
// 3. Function in an eval calling another function
function func() {
var caller = callerId.getData();
/*
caller = {
typeName: 'Object',
functionName: 'evil',
lineNumber: 2,
topLevelFlag: true,
nativeFlag: false,
evalFlag: true,
evalOrigin: 'eval at <anonymous> (/path/of/this/file.js:58:7)'
}
*/
}
eval('(function evil() {' + '\\n' +
'func();' + '\\n' +
'})();');
getString
getString()
returns a brief string representing a function's caller
var callerId = require('caller-id');
function myFunction() {
var callerString = callerId.getString();
}
Using the same examples as above, getString()
returns the following:
- foo
- Lorem.ipsum
- (eval)evil
getDetailedString
getDetailedString()
returns a more detailed string representing a function's caller
var callerId = require('caller-id');
function myFunction() {
var detailedCallerString = callerId.getDetailedString();
}
Using the same examples as above, getDetailedString()
returns the following:
- foo at /path/of/this/file.js:5
- Lorem.ipsum at /path/of/this/file.js:25
- eval at
(/path/of/this/file.js:58:7)