2.1.1 • Published 3 years ago

nested-error-stacks v2.1.1

Weekly downloads
2,507,300
License
MIT
Repository
github
Last release
3 years ago

Nested stacktraces for Node.js!

Build Status NPM version

With this module, you can wrap a caught exception with extra context for better debugging. For example, a network error's stack would normally look like this:

Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

Using this module, you can wrap the Error with more context to get a stack that looks like this:

NestedError: Failed to communicate with localhost:8080
    at Socket.<anonymous> (/Users/mattlavin/Projects/nested-stacks/demo.js:6:18)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:440:14
    at process._tickCallback (node.js:415:13)
Caused By: Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

How to wrap errors

Here is an example program that uses this module to add more context to errors:

var NestedError = require('nested-error-stacks');
var net = require('net');
    
var client = net.connect({port: 8080});
client.on('error', function (err) {
    var newErr = new NestedError("Failed to communicate with localhost:8080", err);
    console.log(newErr.stack);
});

How to inherit

It is recommended to use explicit names for Error classes. You can do it like this:

var util = require('util');
var NestedError = require('nested-error-stacks');

function MyError(message, nested) {
    NestedError.call(this, message, nested);
}

util.inherits(MyError, NestedError);
MyError.prototype.name = 'MyError';
cp-file@nicoandmee/bt_backend-core@bent10/codepcodep@infinitebrahmanuniverse/nolb-neste@saaspe/components@everything-registry/sub-chunk-2257teraslice-workertedisvelte-component-lib@cristianps1988/ds-template@denali-js/cli@detachhead/typescript-is@blkmarketco/components-library@rstacruz/pnpm@perp/commonkafka-nodekafka-node-als-clonekafka-node-oauthkafka-node-sidvjesh-calculationjasmine-node-promise-matcherskicad-library-manager-commonkafka-for-nodetypescript-istypescript-generatetypesmithtldrawligninthesaurus-servicetrs-tagtrees-errors@aviinash_jha/react-native-test_multiply@brickdoc/cpy@cjsa/cpy@ckitching/typescript-is@pubkeeper/client@hoanghuy/kafka-node@edwinpb/scany@krenaldi/learnstorybook-design-system-template@labiebhn_/react-native-multiplier@kicad-library-manager/cli@kicad-library-manager/common@lego-js/tests@lifeomic/lambda-tools@epiclabs/kafka-node@iota-fork/kafka-node@jellywelly/iterare@jdxcode/cpy@hypnosphi/html-reporter@pubkeeper/protocol-legacy@pubkeeper/protocol-v1@pubkeeper/protocol-v1-1@saperiuminc/saperium-kafka-node@pleisto/cpy@podlubnaja/ui-kit@player-ui/binding@nxtedition/lib@pefish/kafka-node@skedulr/nebula-ui-library@skeetboothppq/component-library@shivarajapple/first-librarymovie-listmicro-reqpangopango-gccpango-git-versionparvan_componentsparvan_reactjs_componentssecuretransport-filesreact-native-adarsh_react_native_video_playerreact-native-avinash_jha_test_pluginreact-native-moosa-lib-for-testreact-form-component-libraryreact-native-test-multiplier-librarysequelcomponentneoman-enginengindoxngrx-undo-v2pi-stm32-uart-bootloaderqgenrequiregrequireg-extrm-filesimple-kerberossimple-ldapjssimple-repositorygoogle-finance-datahz-kafka-nodehtml-reporterhermione-headless-chromemangaotaku-configurapimanan-react-native-expo-authorize-netlooks-samemega-kafka-node@xinghunm/fs@xinghunm/require@testplane/headless-chrome@vitali_shcherbina/styled-lib@zalastax/nolb-nesteasync-response-aggregator-server
2.1.1

3 years ago

2.1.0

7 years ago

2.0.1

7 years ago

2.0.0

9 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago