
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Erratum is a simple extension of the native Error class supporting string formatting, additional properties and further subclassing.
Erratum has been rewritten with the 1.x
release, extending the native Error
class to better support error specialization.
While the basic erratum()
API remains unchanged, versions 1.x
do not have the erratum.wrap
feature anymore.
The API is comprised of only one function: Erratum([data], message, [args...])
. It can be used both as a factory function and as a constructor and always returns an Erratum
instance.
utils.format()
formatting tagsHere's a quick example:
var Erratum = require('erratum');
var err = Erratum({statusCode: 500}, 'The %s is: %s', 'answer', 42);
// var err = new Erratum({statusCode: 500}, 'The %s is: %s', 'answer', 42);
err instanceof Error // true
err instanceof Erratum // true
err.statusCode === 500 // true
err.message === 'This answer is: 42'; // true
The Erratum
function supports extension through child classes. These will inherit all Erratum
features.
function ExtendedErratum() {
Erratum.apply(this, arguments);
// Custom stuff goes here.
}
util.inherits(ExtendedErratum, Erratum);
var err = new ExtendedErratum({statusCode: 500}, 'The answer is: %s', 42);
err instanceof Error // true
err instanceof Erratum // true
err instanceof ExtendedErratum // true
err.statusCode === 500 // true
err.message === 'This answer is: 42'; // true
Check the tests in test/main.js
for more examples.
If data
is an instance of Error
or has either the err
property
or the error
property set to an instance of Error
, the stack of the
new error returned by Erratum()
will incorporate the stack of the
provided error. The latter will be available at Erratum#wrapperError
.
> var someError = new Error('Something went wrong.');
> throw new Erratum({err: someError}, 'Yes, something definitely went wrong.');
Erratum: Yes, something definitely went wrong.
at repl:1:7
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
at REPLServer.Interface._ttyWrite (readline.js:827:14)
Caused By: Error: Something went wrong.
at repl:1:17
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
at REPLServer.Interface._ttyWrite (readline.js:827:14)
$ mocha
See LICENSE.
FAQs
An extension of the native Error class that adds support for additional properties, simple assertions and can be extended as any other ES6 class.
The npm package erratum receives a total of 0 weekly downloads. As such, erratum popularity was classified as not popular.
We found that erratum demonstrated a not healthy version release cadence and project activity because the last version was released 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.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.