Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/callsites
Get callsites from the V8 stack trace API
https://github.com/sindresorhus/callsites
Last synced: 4 days ago
JSON representation
Get callsites from the V8 stack trace API
- Host: GitHub
- URL: https://github.com/sindresorhus/callsites
- Owner: sindresorhus
- License: mit
- Created: 2014-04-19T10:10:11.000Z (almost 11 years ago)
- Default Branch: main
- Last Pushed: 2024-06-29T13:46:26.000Z (7 months ago)
- Last Synced: 2025-01-13T21:01:46.306Z (6 days ago)
- Language: JavaScript
- Size: 25.4 KB
- Stars: 261
- Watchers: 9
- Forks: 22
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- License: license
- Security: .github/security.md
Awesome Lists containing this project
README
# callsites
> Get callsites from the [V8 stack trace API](https://v8.dev/docs/stack-trace-api)
## Install
```sh
npm install callsites
```## Usage
```js
import callsites from 'callsites';function unicorn() {
console.log(callsites()[0].getFileName());
//=> '/Users/sindresorhus/dev/callsites/test.js'
}unicorn();
```## API
Returns an array of callsite objects with the following methods:
- `getThis`: Returns the value of `this`.
- `getTypeName`: Returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property.
- `getFunction`: Returns the current function.
- `getFunctionName`: Returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context.
- `getMethodName`: Returns the name of the property of `this` or one of its prototypes that holds the current function.
- `getFileName`: If this function was defined in a script returns the name of the script.
- `getLineNumber`: If this function was defined in a script returns the current line number.
- `getColumnNumber`: If this function was defined in a script returns the current column number
- `getEvalOrigin`: If this function was created using a call to `eval` returns a string representing the location where `eval` was called.
- `isToplevel`: Returns `true` if this is a top-level invocation, that is, if it's a global object.
- `isEval`: Returns `true` if this call takes place in code defined by a call to `eval`.
- `isNative`: Returns `true` if this call is in native V8 code.
- `isConstructor`: Returns `true` if this is a constructor call.
- `isAsync()`: Returns `true` if this call is asynchronous (i.e. `await`, `Promise.all()`, or `Promise.any()`).
- `isPromiseAll()`: Returns `true` if this is an asynchronous call to `Promise.all()`.
- `getPromiseIndex()`: Returns the index of the promise element that was followed in `Promise.all()` or `Promise.any()` for async stack traces, or `null` if the `CallSite` is not an asynchronous `Promise.all()` or `Promise.any()` call.