Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@ganintegrity/gan-error
Advanced tools
an extendable ES6 Error with support for HTTP errors
npm install --save @ganintegrity/gan-error
const GanError = require('@ganintegrity/gan-error');
const error = new GanError('something bad happened');
console.log(error.message); // => 'something bad happened'
console.log(error.name); // => 'GanError'
class MyError extends GanError {}
const myError = new MyError('some other bad thing happened');
console.log(myError.message); // => 'some other bad thing happened'
console.log(myError.name); // => 'MyError''
When passed an error instance, the message
is "inherited" from the error
instance and the passed error stored as originalError
:
class CustomError extends GanError {}
const error = new CustomError(new Error('foo'));
console.log(error.message); // => 'foo'
console.log(error.originalError); // => new Error('foo')
Also, if the passed error instance has a status
property, it will also be
copied over from the error:
class CustomError extends GanError {}
const error = new CustomError(new GanError.InternalServerError('foo'));
console.log(error.message); // => 'foo'
console.log(error.status); // => 500
console.log(error.originalError); // => new GanError.InternalServerError('foo')
Objects can also be passed to the constructor. They will be stored as data
on
the error:
class CustomError extends GanError {}
const error = new CustomError({ foo: 'bar' } });
console.log(error.message); // => ''
console.log(error.data); // => { message: 'foo', foo: 'bar' }
If the object contains a message
property whose value is a string, then that
is also used as the error's message:
class CustomError extends GanError {}
const error = new CustomError({ message: 'oops!', foo: 'bar' } });
console.log(error.message); // => 'oops!'
console.log(error.data); // => { message: 'oops!', foo: 'bar' }
HTTP errors are exposed as static properties on GanError
by name and by status
code:
// base http error, without `status`
class MyError extends GanError.HttpError {}
// http error with `status` 500
class MySecondError extends GanError.InternalServerError {}
// same, http error with `status` 500
class MyOtherError extends GanError['500'] {}
If you're using this module for the browser and you don't need support for http
errors, you can disable them altogether by setting the DISABLE_GAN_HTTP_ERRORS
environment variable to true
when bundling your frontend code (e.g. with
webpack's DefinePlugin).
This reduces the size of the frontend bundle.
FAQs
an extendable ES6 Error with support for HTTP errors
The npm package @ganintegrity/gan-error receives a total of 1,901 weekly downloads. As such, @ganintegrity/gan-error popularity was classified as popular.
We found that @ganintegrity/gan-error demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 24 open source maintainers 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.