Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Easily generate "custom" error objects with addition properties which can be stringfied with JSON.stringify
Failure is a small helper library which allows you to easily generate custom
error objects which can hold addition properties which could be helpful for
debugging your application. In addition to that, it automatically adds a missing
toJSON
function to the Error object so you can actually get the message and
stack trace once you JSON.stringify
the error instance.
The module is written with browsers and servers in mind and should run in any environment that runs ES3. The module it self is released in the public npm registry and can be installed using:
npm install --save failure
The --save
flag tells npm to automatically add the installed version to your
package.json
file as new dependency.
First of all, start with including this module in your code:
'use strict';
var failure = require('failure');
Now every time you want to pass or create a new Error
instance, you can use
the failure
function to generate the error for you. The failure method accepts
2 arguments:
Error
instance that just needs extra props, or a string
that should be
transformed to an Error
. Please do note that when using a string you will
have an extra trace in your stack trace as the stack trace will be made inside
the failure
function instead of where you called the failure
function.Error
instance. These properties will not override existing
properties on the Error
instance.Before the function returns the generated Error
instance it checks if it also
needs to add the missing .toJSON
method.
Below is a small usage example on how you could use this to provide extra information when things start failing when you make an HTTP request somewhere. If request something with an incorrect status code, you might want to know what statusCode was received, so we can easily add that to the Error object. Same as parse errors for JSON, you probably want to know what you received and failed.
request('https://googlllll.com', function (err, res, body) {
if (err) return next(err);
if (res.statusCode !== 200) return next(failure('Invalid statusCode'), {
statusCode: res.statusCode
});
try { body = JSON.parse(body); }
catch (e) {
return next(failure(e, {
body: body
}));
}
next(undefined, body);
})
MIT
FAQs
Easily generate "custom" error objects with addition properties which can be stringfied with JSON.stringify
The npm package failure receives a total of 6,726 weekly downloads. As such, failure popularity was classified as popular.
We found that failure 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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.