
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
error-message-utils
Advanced tools
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
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.
Install the package:
npm install -S error-message-utils
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
/**
* 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,
};
npm run test:unit
Install dependencies:
npm install
Build the library:
npm start
Publish to npm
:
npm publish
FAQs
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
We found that error-message-utils demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.