HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/node_modules/forever/node_modules/caller/README.md
#### caller

Figure out your caller (thanks to @substack).

##### Initialization Time Caller
```javascript
// foo.js

var bar = require('bar');
```

```javascript
// bar.js

var caller = require('caller');
console.log(caller()); // `/path/to/foo.js`
```

##### Runtime Caller
```javascript
// foo.js

var bar = require('bar');
bar.doWork();
```

```javascript
// bar.js

var caller = require('caller');

exports.doWork = function () {
    console.log(caller());  // `/path/to/foo.js`
};
```

### Depth

Caller also accepts a `depth` argument for tracing back further (defaults to `1`).

```javascript
// foo.js

var bar = require('bar');
bar.doWork();
```

```javascript
// bar.js

var baz = require('baz');

exports.doWork = function () {
    baz.doWork();
};
```

```javascript
// baz.js

var caller = require('caller');

exports.doWork = function () {
    console.log(caller(2));  // `/path/to/foo.js`
};
```