You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

@mnrendra/stack-trace

Package Overview
Dependencies
0
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mnrendra/stack-trace

A utility that enables stack tracing of the `NodeJs.CallSite` object, allowing dynamic tracing of invocations.


Version published
Maintainers
0
Created

Readme

Source

@mnrendra/stack-trace

A utility that enables stack tracing of the NodeJs.CallSite object, allowing dynamic tracing of invocations.

Install

npm i @mnrendra/stack-trace

Usage

Using CommonJS:

const { stackTrace } = require('@mnrendra/stack-trace')
const [trace] = stackTrace()
console.log(trace.getFileName() === __filename) // Output: true

Using ES Module:

import { stackTrace } from '@mnrendra/stack-trace'
import { fileURLToPath } from 'node:url'
const [trace] = stackTrace()
console.log(new URL(trace.getFileName()).pathname === fileURLToPath(import.meta.url)) // Output: true

Examples

  1. Call from your development project /foo/project-name/src/index.mjs:
import { stackTrace } from '@mnrendra/stack-trace'
const [trace] = stackTrace()
console.log(trace.getFileName()) // Output: file:///foo/project-name/src/index.mjs
  1. Call from your production module /foo/project-name/node_modules/module-name/dist/index.js:
"use strict";
const { stackTrace } = require('@mnrendra/stack-trace');
const [trace] = stackTrace();
console.log(trace.getFileName()); // Output: /foo/project-name/node_modules/module-name/dist/index.js

Note: When calling getFileName from an ESM module, it will return the file name as a URL instead of a file path.

Options

import { stackTrace } from '@mnrendra/stack-trace'

stackTrace(
  // The first argument is the target function, or `null`, or `undefined`:
  null,
  // The second argument is the options object:
  {
    limit: 10 // The `Error.stackTraceLimit` property specifies the number of stack frames to be collected by a stack trace.
  }
)

Types

import type {
  CallSite, // NodeJS.CallSite
  StackTrace, // (targetFunction?: TargetFunction, options?: Options) => CallSite[]
  TargetFunction, // (...args: any[]) => any | Promise<TargetFunction>
  Options // { limit?: number }
} from '@mnrendra/stack-trace'

License

MIT

Author

@mnrendra

Keywords

FAQs

Package last updated on 03 Jul 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc