Nauseating Packaged Meat
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    stack-utilspublic

    stack-utils

    Captures and cleans stack traces.

    Linux Build Build status Coverage

    Extracted from lib/stack.js in the node-tap project

    Install

    $ npm install --save stack-utils
    

    Usage

    const StackUtils = require('stack-utils');
    const stack = new StackUtils({cwd: process.cwd(), internals: StackUtils.nodeInternals()});
     
    console.log(stack.clean(new Error().stack));
    // outputs a beautified stack trace

    API

    new StackUtils([options])

    Creates a new stackUtils instance.

    options

    internals

    Type: array of RegularExpressions

    A set of regular expressions that match internal stack stack trace lines which should be culled from the stack trace. StackUtils.nodeInternals() returns a relatively set of sensible defaults for use on the node platform.

    cwd

    Type: string

    The path to the current working directory. File names in the stack trace will be shown relative to this directory.

    wrapCallSite

    Type: function(CallSite)

    A mapping function for manipulating CallSites before processing. The first argument is a CallSite instance, and the function should return a modified CallSite. This is useful for providing source map support.

    StackUtils.nodeInternals()

    Returns an array of regular expressions that be used to cull lines from the stack trace that reference common Node.js internal files.

    stackUtils.clean(stack)

    Cleans up a stack trace by deleting any lines that match the internals passed to the constructor, and shortening file names relative to cwd.

    Returns a string with the cleaned up stack (always terminated with a \n newline character).

    stack

    Required
    Type: string or an array of strings

    stackUtils.capture([limit], [startStackFunction])

    Captures the current stack trace, returning an array of CallSites. There are good overviews of the available CallSite methods here, and here.

    limit

    Type: number Default: Infinity

    Limits the number of lines returned by dropping all lines in excess of the limit. This removes lines from the stack trace.

    startStackFunction

    Type: function

    The function where the stack trace should start. The first line of the stack trace will be the function that called startStackFunction. This removes lines from the end of the stack trace.

    stackUtils.captureString([limit], [startStackFunction])

    Captures the current stack trace, cleans it using stackUtils.clean(stack), and returns a string with the cleaned stack trace. It takes the same arguments as stackUtils.capture.

    stackUtils.at([startStackFunction])

    Captures the first line of the stack trace (or the first line after startStackFunction if supplied), and returns a CallSite like object that is serialization friendly (properties are actual values instead of getter functions).

    The available properties are:

    • line: number
    • column: number
    • file: string
    • constructor: boolean
    • evalOrigin: string
    • native: boolean
    • typename: string
    • function: string
    • method: string

    stackUtils.parseLine(line)

    Parses a string (which should be a single line from a stack trace), and generates an object with the following properties:

    • line: number
    • column: number
    • file: string
    • constructor: boolean
    • evalOrigin: string
    • evalLine: number
    • evalColumn: number
    • evalFile: string
    • native: boolean
    • function: string
    • method: string

    License

    MIT © Isaac Z. Schlueter, James Talmage

    Keywords

    none

    install

    npm i stack-utils

    Downloadsweekly downloads

    596,989

    version

    1.0.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar