Current collected state Current
Observed since 20 Oct, 22:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0devs/error
javascript errors with codes and causes
custom typescript and javascript errors with codes and causes for node and browsers (without any dependencies)
npm i @0devs/error
@0devs/error// typescript - see javascript examples below
import Zerror from "@0devs/error";
class MyError extends Zerror {
// this required for typescript types and autocomplete
public static CODES = {
BAD_REQUEST: "bad request: %status%"
};
}
// this required for correctly set codes in error class
MyError.setCodes(MyError.CODES);
// pass only error code
new MyError(MyError.CODES.BAD_REQUEST);
/* output:
MyError: BAD_REQUEST
bad request: %status%
*/
// pass error code and message
new MyError(MyError.CODES.BAD_REQUEST, "really bad request");
/* output:
MyError: BAD_REQUEST
really bad request
*/
// pass error code and cause error
new MyError(MyError.CODES.BAD_REQUEST, new Error("shit happens"));
/* output:
MyError: BAD_REQUEST
bad request: %status%
<error stack trace>
Error: shit happens
<cause error stack trace>
*/
// pass any of options as object
new MyError({
code: MyError.CODES.BAD_REQUEST,
message: "really bad request",
cause: new Error("shit happens"),
});
/* output:
MyError: BAD_REQUEST
really bad request
...
Error: shit happens
*/
// pass data if you need replace placeholder in error message
//
// MyError.CODES.BAD_REQUEST below has placeholder in message
// BAD_REQUEST: "bad request: %status%"
new MyError({
code: MyError.CODES.BAD_REQUEST,
data: {
status: 500,
}
});
/* output:
MyError: BAD_REQUEST
bad request: 500
*/
// you can use placeholders in custom error message
new MyError({
code: MyError.CODES.BAD_REQUEST,
message: "shit happens on %method% with status: %status%",
data: {
method: "GET",
status: 500,
},
}
/* output:
MyError: BAD_REQUEST
shit happens on GET with status: 500
*/
const Zerror = require('@0devs/error');
class MyError extends Zerror {}
MyError.CODES = {
BAD_REQUEST: 'bad request',
};
const causeErr = new Error('shit happens');
const err = new MyError(MyError.CODES.BAD_REQUEST, causeErr);
console.log(err.toString());
got rich output:
MyError: BAD_REQUEST
at Object.<anonymous> (/private/tmp/test/test.js:10:13)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
Error: shit happens
at Object.<anonymous> (/private/tmp/test/test.js:9:18)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
import Zerror from "@0devs/error";
class MyError extends Zerror {
// this required for typescript types and autocomplete
public static CODES = {
BAD_REQUEST: "bad request"
};
}
// this required for correctly set codes in error object
MyError.setCodes(MyError.CODES);
// autocomplete works for codes
// MyError.CODES.BAD_
ready for bunyan stdSerializer.err
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | ^4.19.1 | development |
eslint-config-airbnb-baseEnvironment{
"local_name": "eslint-config-airbnb-base",
"alias": false,
"peer_metadata": null
} | ^12.1.0 | development |
eslint-plugin-importEnvironment{
"local_name": "eslint-plugin-import",
"alias": false,
"peer_metadata": null
} | ^2.12.0 | development |
eslint-plugin-jestEnvironment{
"local_name": "eslint-plugin-jest",
"alias": false,
"peer_metadata": null
} | ^21.17.0 | development |
jestEnvironment{
"local_name": "jest",
"alias": false,
"peer_metadata": null
} | ^23.1.0 | development |
Source distribution
{
"integrity": "sha512-bacdyRhjB2zU1RM0jPb1V3aej5NqKJJZIau/txXdExseQbktNg2cy7CzXnknyJvTUNuuF85ppAwb2yOhIW+hQw==",
"shasum": "c8ca3ea5223d64d7dfebb9dff232bd5e2d627647",
"tarball": "https://registry.npmjs.org/@0devs/error/-/error-0.2.0.tgz",
"fileCount": 4,
"unpackedSize": 7410,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEsJXCRA9TVsSAnZWagAApyUQAI+vOr2T9jaWZLarm6e1\na7ocjRtwDW3JZE4C1Thar59RGzuDfkvFWjoClpfj8bzYTote7EmBjDv+bjkr\nFwcDfG+0sH1CA8Q9Vmax6lVhhZyDyt5GuSWB+vNZpDxoGct2tOuTaT9QunMy\nlDo/SLk1+VXMO7yR1DeBgWURc1Ve1fRZ2UBXvIivlm7C1NcvV+ZfpkNinpw2\nUG7rpb+uTuaZtoGCGPp28rWC37cvKYR/AyX6j5tfGs5Zwp9RG7XYjieTAikU\nrPPRSFo0hFQ+FrrodsqcJmTP8usO18U/R0HIfEYSZbD9YrZzzyI8fc8IuKyh\n96Ar91Co/XY+7+BD4nHnzts7sIVFRQVixfwiFogC3fVp91YiFPA+7ZOH1w0J\nsU9glQOGFkomKSkh0eat1ThZNEW1tvwuHdBemJ5XIacxRzrCDKBG6RKPe4OZ\nXOYBfq8R2aEkcgvzu5KNTxy49dnZGvgrtU58ypRmShZuOJgRXeCDzKKfUfqb\n17opSuvJQvX55rQ+aY0pBCtHjFQOX7G1INpqPjWu221yXabmWfbtt1qr25AF\neVgwFWBjcqPFJ/UegijD16LZMTYMye6WLpks6Atehk+wm4S8kFQfKNsumn/U\n/DGY3lXwd6i5XMM7XjOHpxa7syXF3nUoG5NEqE5hESCb182H5dVDjxQYc6oB\nYEPP\r\n=uCd+\r\n-----END PGP SIGNATURE-----\r\n",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEQCIEnMkthIk2TgQdsXqBn5tqfqELcPOcunCYGj7Tdm5CsXAiBHVhbv3nqEhH6EklNYG7W78vH7hsLlQjE16UGNB1fygw=="
}
]
}Observed since 20 Oct, 22:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:b2708422ccb3375c9a0117b5df0891141bd9928e4c1e596d2a0213e10f58a74b