Package Exports
- @mnrendra/stack-trace
- @mnrendra/stack-trace/dist/index.js
- @mnrendra/stack-trace/dist/index.mjs
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 that enables stack tracing of the NodeJs.CallSite object, allowing dynamic tracing of invocations.
Install
npm i @mnrendra/stack-traceUsage
Using CommonJS:
const { stackTrace } = require('@mnrendra/stack-trace')
const [trace] = stackTrace()
console.log(trace.getFileName() === __filename) // Output: trueUsing 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: trueExamples
- 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.jsNote: When calling getFileName from an ESM module, it will return the file name as a URL instead of a file path.
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'