
Security News
Rust RFC Proposes a Security Tab on crates.io for RustSec Advisories
Rustâs crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.
@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
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.

Security News
Rustâs crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.

Security News
/Research
Socket found a Rust typosquat (finch-rust) that loads sha-rust to steal credentials, using impersonation and an unpinned dependency to auto-deliver updates.

Research
/Security Fundamentals
A pair of typosquatted Go packages posing as Googleâs UUID library quietly turn helper functions into encrypted exfiltration channels to a paste site, putting developer and CI data at risk.