@artdeco/clean-stack

A utility to remove internal Node.JS lines and specific modules from error stacks.

Usage no npm install needed!

<script type="module">
  import artdecoCleanStack from 'https://cdn.skypack.dev/@artdeco/clean-stack';
</script>

README

@artdeco/clean-stack

npm version Pipeline Badge

@artdeco/clean-stack is used to remove internal Node.JS lines from error stacks, as well as lines from specific modules.

yarn add @artdeco/clean-stack
npm i @artdeco/clean-stack

Table Of Contents

API

The package is available by importing its default function:

import cleanStack from '@artdeco/clean-stack'

cleanStack(
  stack: string,
  options=: !Config,
): string

Remove internal Node.JS lines from the error stack traces.

  • stack* string: The stack to clean.
  • options !Config (optional): Additional options.

Config: Options for the program.

Name Type Description Default
pretty boolean Replace the absolute path to the home directory with the ~. false
ignoredModules !Array<string> Which modules to ignore in the path. ['pirates']

The example below will remove unuseful internal Node.JS lines from the error stack. Any other modules to ignore can be passed in the ignoreModules option.

/* yarn example/ */
import cleanStack from '@artdeco/clean-stack'

const err = `
Error: test
    at Object.<anonymous> (/Users/zavr/adc/clean-stack/i2.js:1:69)
    at Module._compile (module.js:652:30)
    at Module._compile (/Users/zavr/adc/clean-stack/node_modules/pirates/lib/index.js:83:24)
    at Module._extensions..js (module.js:663:10)
    at Object.newLoader [as .js] (/Users/zavr/adc/clean-stack/node_modules/pirates/lib/index.js:88:7)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
`.trim()

const res = cleanStack(err)
Error: test
    at Object.<anonymous> (/Users/zavr/adc/clean-stack/i2.js:1:69)

Copyright & License

Original work by Sindre Sorhus under MIT License.

Art Deco © Art Deco™ 2020 AGPL-3.0