Package Exports
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 (@mnrendra/stack-trace) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@mnrendra/stack-trace
A utility to enable 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
- 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
- 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.
}
)
Utilities
import {
validateSkippedStacks // To validate a name or a list of names of stack traces that need to be skipped. More info: @see https://github.com/mnrendra/validate-skipped-stacks
} from '@mnrendra/stack-trace'
Types
import type {
CallSite, // NodeJS.CallSite
Func, // (...args: any[]) => any
Options, // @mnrendra/stack-trace options
SkippedStacks, // @mnrendra/validate-skipped-stacks input
ValidSkippedStacks // @mnrendra/validate-skipped-stacks output
} from '@mnrendra/stack-trace'