Napoleon's Pixelated Mugshot

    yerror
    TypeScript icon, indicating that this package has built-in type declarations

    6.1.1 • Public • Published

    yerror

    It helps to know why you got an error.

    GitHub license Build status Coverage Status

    Usage

    First, require me where you could throw errors:

    import YError from 'yerror';

    Then, emit errors with a bonus: parameters!

    function doSomething(pay, action) {
      if(parseInt(pay, 10) !== pay) {
        throw new YError('E_BAD_PAY', pay, action);
      }
    }
    
    doSomething('nuts', 'code');
    
    
    // YError: E_BAD_PAY (nuts, code)
    //   at doSomething (/home/nfroidure/nfroidure/yerror/test.js:5:11)
    //   at Object.<anonymous> (/home/nfroidure/nfroidure/yerror/test.js:9:1)
    //   (...)

    You don't have to use constant like error messages, we use this convention mainly for i18n reasons.

    Also, you could want to wrap errors and keep a valuable stack trace:

    function doSomethingAsync(pay, action) {
      return  new Promise(function(resolve, reject) {
        try {
          doSomething(pay, action);
          resolve();
        } catch(err) {
          reject(YError.bump(err));
        }
      });
    }
    
    doSomethingAsync('nuts', 'code')
      .catch(function(err) {
        console.log(err.stack);
      });
    
    // YError: E_BAD_PAY (nuts, code)
    //    at doSomething (/home/nfroidure/nfroidure/yerror/test.js:5:11)
    //    (...)
    // YError: E_BAD_TRANSACTION (pay)
    //    at Function.YError.wrap (/home/nfroidure/nfroidure/yerror/src/index.js:41:12)
    //    at /home/nfroidure/nfroidure/yerror/test.js:16:21
    //    at doSomethingAsync (/home/nfroidure/nfroidure/yerror/test.js:11:11)
    //    (...)

    API

    YError ⇐ Error

    An YError class able to contain some params and print better stack traces

    Kind: global class
    Extends: Error

    new YError([errorCode], [...params])

    Creates a new YError with an error code and some params as debug values.

    Param Type Default Description
    [errorCode] string "'E_UNEXPECTED'" The error code corresponding to the actual error
    [...params] any Some additional debugging values

    YError.wrap(err, [errorCode], [...params]) ⇒ YError

    Wraps any error and output a YError with an error code and some params as debug values.

    Kind: static method of YError
    Returns: YError - The wrapped error

    Param Type Default Description
    err Error The error to wrap
    [errorCode] string "'E_UNEXPECTED'" The error code corresponding to the actual error
    [...params] any Some additional debugging values

    YError.cast(err, [errorCode], [...params]) ⇒ YError

    Return a YError as is or wraps any other error and output a YError with a code and some params as debug values.

    Kind: static method of YError
    Returns: YError - The wrapped error

    Param Type Default Description
    err Error The error to cast
    [errorCode] string "'E_UNEXPECTED'" The error code corresponding to the actual error
    [...params] any Some additional debugging values

    YError.bump(err, [errorCode], [...params]) ⇒ YError

    Same than YError.wrap() but preserves the code and the debug values of the error if it is already an instance of the YError constructor.

    Kind: static method of YError
    Returns: YError - The wrapped error

    Param Type Default Description
    err Error The error to bump
    [errorCode] string "'E_UNEXPECTED'" The error code corresponding to the actual error
    [...params] any Some additional debugging values

    Authors

    License

    MIT

    Install

    npm i yerror

    DownloadsWeekly Downloads

    4,476

    Version

    6.1.1

    License

    MIT

    Unpacked Size

    99.1 kB

    Total Files

    15

    Last publish

    Collaborators

    • xavhan
    • nfroidure
    • gplancke
    • arnaudspanneut
    • sebastienelet