You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

error-message-utils

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

error-message-utils

The error-message-utils package simplifies error management in your web applications and RESTful APIs. It ensures consistent and scalable handling of error messages, saving you time and effort. Moreover, it gives you the ability to assign custom error cod

1.1.5
latest
Source
npmnpm
Version published
Weekly downloads
29
-62.34%
Maintainers
1
Weekly downloads
 
Created
Source

Error Message Utils

The error-message-utils package simplifies error management in your web applications and RESTful APIs. It ensures consistent and scalable handling of error messages, saving you time and effort. Moreover, it gives you the ability to assign custom error codes so all possible cases can be handled accordingly.


Getting Started

Install the package:

npm i -S error-message-utils

Examples

Encoding an error:

import { encodeError } from 'error-message-utils';

if (emailExists()) {
  throw new Error(encodeError(
    'The provided email is already in use.', 
    'EMAIL_EXISTS'
  ));
  // 'The provided email is already in use.{(EMAIL_EXISTS)}'
}

Decoding an error:

import { decodeError } from 'error-message-utils';

decodeError('The provided email is already in use.{(EMAIL_EXISTS)}');
// {
//   message: 'The provided email is already in use.',
//   code: 'EMAIL_EXISTS'
// }

Error messages can be extracted recursively from complex structures, including nested cause data properties from Error instances:

import { extractMessage } from 'error-message-utils';

extractMessage(new Error('Top level error', {
  cause: new Error('First nested cause', {
    cause: new Error('Second nested cause'),
  }),
}));
// 'Top level error; [CAUSE]: First nested cause; [CAUSE]: Second nested cause'


extractMessage({ 
  message: { 
    err: { 
      message: 'This error message is nested deeply!'
    } 
  } 
});
// 'This error message is nested deeply!'

Identifying encoded errors:

import { isEncodedError, encodeError } from 'error-message-utils';

isEncodedError('Some random unencoded error');
// false

isEncodedError(new Error('Some random unencoded error'));
// false

isEncodedError(encodeError('Some unknown error.', 'NASTY_ERROR'));
// true

isEncodedError(encodeError(new Error('Some unknown error.'), 'NASTY_ERROR'));
// true

In some cases, you may want to check whether the extracted error matches the default message provided by this package:

import { isDefaultErrorMessage} from 'error-message-utils';

const DEFAULT_MESSAGE: string = 'The error message could not be extracted, check the logs for more information.';

isDefaultErrorMessage(DEFAULT_MESSAGE);
// true

isDefaultErrorMessage(`${DEFAULT_MESSAGE} and something else...`);
// false

isDefaultErrorMessage(`${DEFAULT_MESSAGE} and something else...`, true);
// true

Types

/**
 * Error Code
 * The code that is inserted when encoding an error. If none is provided or none can be extracted, it defaults to -1.
 */
type IErrorCode = string | number;

/**
 * Decoded Error
 * The object obtained when an error is decoded. Keep in mind that if the error message or the code cannot be extracted for any reason, the default values will be set instead.
 */
type IDecodedError = {
  message: string,
  code: IErrorCode,
};

Built With

  • TypeScript

Running the Tests

npm run test:unit

License

MIT

Keywords

error

FAQs

Package last updated on 17 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.