Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

defekt

Package Overview
Dependencies
Maintainers
5
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

defekt - npm Package Compare versions

Comparing version 3.0.1 to 4.0.0

build/lib/CustomError.d.ts

10

build/lib/defekt.d.ts

@@ -1,10 +0,2 @@

export interface CustomError extends Error {
name: string;
code: string;
message: string;
cause?: Error;
}
declare type ErrorConstructors<TError> = {
[TKey in keyof TError]: new (message?: string, cause?: Error) => CustomError;
};
import { ErrorConstructors } from './ErrorConstructors';
declare const defekt: <TErrorDefinition extends {

@@ -11,0 +3,0 @@ [key: string]: {

@@ -12,8 +12,7 @@ "use strict";

const errorDefinition = errorDefinitions[errorName];
if (!errorDefinition) {
continue;
}
const { code = `E${errorName.toUpperCase()}` } = errorDefinition;
errors[errorName] = class extends Error {
constructor(message = `${humanize_string_1.default(errorName)}.`, cause) {
/* eslint-disable default-param-last */
constructor(message = `${humanize_string_1.default(errorName)}.`, { cause, data } = {}) {
/* eslint-enable default-param-last */
super();

@@ -24,2 +23,3 @@ this.name = errorName;

this.cause = cause;
this.data = data;
}

@@ -26,0 +26,0 @@ };

@@ -0,14 +1,5 @@

import { CustomError } from './CustomError';
import { ErrorConstructors } from './ErrorConstructors';
import humanizeString from 'humanize-string';
export interface CustomError extends Error {
name: string;
code: string;
message: string;
cause?: Error;
}
type ErrorConstructors<TError> = {
[TKey in keyof TError]: new(message?: string, cause?: Error) => CustomError
};
const defekt = function <TErrorDefinition extends {

@@ -23,6 +14,2 @@ [ key: string ]: { code?: string };

if (!errorDefinition) {
continue;
}
const { code = `E${errorName.toUpperCase()}` } = errorDefinition;

@@ -39,3 +26,13 @@

public constructor (message = `${humanizeString(errorName)}.`, cause?: Error) {
public data?: any;
/* eslint-disable default-param-last */
public constructor (message = `${humanizeString(errorName)}.`, {
cause,
data
}: {
cause?: Error;
data?: any;
} = {}) {
/* eslint-enable default-param-last */
super();

@@ -47,2 +44,3 @@

this.cause = cause;
this.data = data;
}

@@ -49,0 +47,0 @@ };

{
"name": "defekt",
"version": "3.0.1",
"version": "4.0.0",
"description": "defekt is custom errors made simple.",

@@ -23,4 +23,4 @@ "contributors": [

],
"main": "build/lib/defekt.js",
"types": "build/lib/defekt.d.ts",
"main": "build/lib/index.js",
"types": "build/lib/index.d.ts",
"dependencies": {

@@ -30,4 +30,4 @@ "humanize-string": "2.1.0"

"devDependencies": {
"assertthat": "4.0.1",
"roboter": "7.1.5"
"assertthat": "4.0.2",
"roboter": "9.0.4"
},

@@ -34,0 +34,0 @@ "repository": {

@@ -70,8 +70,18 @@ # defekt

Additionally, if an error was caused by another error, you can specify this error as the second parameter:
Additionally, if an error was caused by another error, you can specify this error using the `cause` property:
```javascript
throw new errors.InvalidOperation('Something failed.', new Error(...));
throw new errors.InvalidOperation('Something failed.', {
cause: new Error(...)
});
```
From time to time, you may need to provide additional data for an error. For this, you can use the `data` property:
```javascript
throw new errors.InvalidOperation('Something failed.', {
data: { ... }
});
```
The custom errors follow the same rules as the built-in ones, i.e. they have a `name` and a `message` property, they derive from `Error` and they can be recognized by the `util.isError` function.

@@ -78,0 +88,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc