Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/clean-stack
Clean up error stack traces
https://github.com/sindresorhus/clean-stack
Last synced: about 1 month ago
JSON representation
Clean up error stack traces
- Host: GitHub
- URL: https://github.com/sindresorhus/clean-stack
- Owner: sindresorhus
- License: mit
- Created: 2016-07-07T21:22:57.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2023-03-21T10:34:24.000Z (over 1 year ago)
- Last Synced: 2024-04-14T11:09:10.936Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 30.3 KB
- Stars: 333
- Watchers: 8
- Forks: 29
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
README
# clean-stack
> Clean up error stack traces
Removes the mostly unhelpful internal Node.js entries.
Also works in Electron.
## Install
```sh
npm install clean-stack
```## Usage
```js
import cleanStack from 'clean-stack';const error = new Error('Missing unicorn');
console.log(error.stack);
/*
Error: Missing unicorn
at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
*/console.log(cleanStack(error.stack));
/*
Error: Missing unicorn
at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
*/
```## API
### cleanStack(stack, options?)
Returns the cleaned stack or `undefined` if the given `stack` is `undefined`.
#### stack
Type: `string | undefined`
The `stack` property of an [`Error`](https://github.com/microsoft/TypeScript/blob/eac073894b172ec719ca7f28b0b94fc6e6e7d4cf/lib/lib.es5.d.ts#L972-L976).
#### options
Type: `object`
##### pretty
Type: `boolean`\
Default: `false`Prettify the file paths in the stack:
`/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15` → `~/dev/clean-stack/unicorn.js:2:15`
##### basePath
Type: `string?`
Remove the given base path from stack trace file paths, effectively turning absolute paths into relative ones. It will also transform absolute file URLs into relative paths.
Example with `'/Users/sindresorhus/dev/clean-stack'` as `basePath`:
`/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15` → `unicorn.js:2:15`
##### pathFilter
Type: `(path: string) => boolean`
Remove the stack lines where the given function returns `false`. The function receives the path part of the stack line.
```js
import cleanStack from 'clean-stack';const error = new Error('Missing unicorn');
console.log(cleanStack(error.stack));
// Error: Missing unicorn
// at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
// at Object. (/Users/sindresorhus/dev/clean-stack/omit-me.js:1:16)const pathFilter = path => !/omit-me/.test(path);
console.log(cleanStack(error.stack, {pathFilter}));
// Error: Missing unicorn
// at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)
```## Related
- [extract-stack](https://github.com/sindresorhus/extract-stack) - Extract the actual stack of an error
- [stack-utils](https://github.com/tapjs/stack-utils) - Captures and cleans stack traces