
Security News
minimatch Patches 3 High-Severity ReDoS Vulnerabilities
minimatch patched three high-severity ReDoS vulnerabilities that can stall the Node.js event loop, and Socket has released free certified patches.
@studio/fail
Advanced tools
🚨 Fail with an Error object and a conventional code property.
const { failure, INVALID } = require('@studio/fail');
function read(filename, callback) {
if (!filename) {
// Easily fail with a conventional error:
throw failure('Missing filename', INVALID);
}
// ...
}
const fs = require('fs');
const { fail, then, INVALID } = require('@studio/fail');
function read(filename, callback) {
if (!filename) {
// Easily fail with a conventional error:
fail(callback, 'Missing filename', INVALID);
return;
}
// Wrap callbacks with and error handling, guarding from multiple invocations:
fs.readFile(
filename,
'utf8',
then(callback, (content) => {
// Non-undefined return value is passed to callback:
return content.trim();
})
);
}
Errors should always have a code property with an uppercase error code. To
simplify error handling, use the provided fail utility function and code
constants.
Error codes follow these conventions:
E_. This is the
asynchronous equivalent to throw. The provided message is not supposed to
be shown to the user.message may be shown to the user.code property is provided, it defaults to E_FAILED.The provided error codes can be handled generically. You may define additional error codes as needed.
❯ npm i @studio/fail
failure(message[, cause][, code[, properties]]): Create an Error
with the given message and cause and code and properties. If no code
is provided it defaults to E_FAILED. The cause must be an error object.fail(callback, message[, cause][, code[, properties]]): Creates a failure
and invoked the given callback with it.isFatal(error): Whether the given error has a code property the starts
with E_ or has no code property.then(callback, next): Create a callback function that invokes
callback(err) if an error occurred and next(result) on success. Throws if
the function is invoked more than once with error code E_FAILED and err
as the cause. If next returns a non-undefined value, the callback is
invoked with that result.E_FAILED: Fatal error.INVALID: Invalid or missing argument or parameter.FORBIDDEN: User is not allowed to access.NOT_FOUND: Resource does not exist.Throwing errors:
const { failure, INVALID } = require('@studio/fail');
// Fail with a message:
throw failure('Oups!');
// The previous is the same as this:
throw failure('Oups!', E_FAILED);
// Fail with `code` INVALID:
throw failure('Oups!', INVALID);
// Fail with a `cause`:
const cause = new Error();
throw failure('Oups!', cause);
// Fail with a `cause` and `code` INVALID:
throw failure('Oups!', cause, INVALID);
// Fail with `properties` and `code` INVALID:
throw failure('Oups!', INVALID, { some: 42 });
Invoking callbacks with errors:
const { fail, FORBIDDEN } = require('@studio/fail');
fail(callback, 'Oups!', FORBIDDEN);
code and cause aware.MIT
Made with ❤️ on 🌍
FAQs
Fail with an Error object and a conventional code property
We found that @studio/fail demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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
minimatch patched three high-severity ReDoS vulnerabilities that can stall the Node.js event loop, and Socket has released free certified patches.

Research
/Security News
Socket uncovered 26 malicious npm packages tied to North Korea's Contagious Interview campaign, retrieving a live 9-module infostealer and RAT from the adversary's C2.

Research
An impersonated golang.org/x/crypto clone exfiltrates passwords, executes a remote shell stager, and delivers a Rekoobe backdoor on Linux.