backend-error 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/dist/core/BackendError.js +45 -60
- package/dist/core/BackendError.js.map +1 -0
- package/dist/core/httpErrorFormatter.js +47 -52
- package/dist/core/httpErrorFormatter.js.map +1 -0
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -0
- package/dist/interfaces/Types.js +3 -2
- package/dist/interfaces/Types.js.map +1 -0
- package/dist/types/core/BackendError.d.ts +19 -0
- package/dist/types/core/BackendError.d.ts.map +1 -0
- package/dist/types/core/httpErrorFormatter.d.ts +7 -0
- package/dist/types/core/httpErrorFormatter.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces/Types.d.ts +10 -0
- package/dist/types/interfaces/Types.d.ts.map +1 -0
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -81,6 +81,23 @@ BackendError.Conflict("..."); // 409, showUser: true
|
|
|
81
81
|
BackendError.UnprocessableEntity("..."); // 422, showUser: true
|
|
82
82
|
BackendError.Internal("..."); // 500, showUser: false
|
|
83
83
|
BackendError.ServiceUnavailable("..."); // 503, showUser: false
|
|
84
|
+
BackendError.ExternalAPI("..."); // 502, showUser: true
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### External / upstream errors
|
|
88
|
+
|
|
89
|
+
Use `ExternalAPI` for failures originating from upstream services (Stripe, bank APIs, HR systems etc). It defaults to HTTP `502 Bad Gateway`, `showUser: true` (so the user gets a helpful message), and `severity: "warning"`.
|
|
90
|
+
|
|
91
|
+
Example:
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
try {
|
|
95
|
+
// call an external API
|
|
96
|
+
await chargeCard();
|
|
97
|
+
} catch (err) {
|
|
98
|
+
// Indicate the error came from an external API — user can be informed
|
|
99
|
+
throw BackendError.ExternalAPI("Payment provider unavailable"); // 502, showUser: true
|
|
100
|
+
}
|
|
84
101
|
```
|
|
85
102
|
|
|
86
103
|
---
|
|
@@ -109,6 +126,14 @@ app.get("/user/:id", async (req, res) => {
|
|
|
109
126
|
|
|
110
127
|
## 🧩 Types
|
|
111
128
|
|
|
129
|
+
The package re-exports TypeScript types so you get full typings when consuming the package. Import types like this:
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
import type { BackendErrorOptions, Severity } from "backend-error";
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
For reference, the exported types look like:
|
|
136
|
+
|
|
112
137
|
```ts
|
|
113
138
|
export type Severity = "info" | "warning" | "error" | "critical";
|
|
114
139
|
|
|
@@ -1,60 +1,45 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return new BackendError({ message: msg, code:
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return new BackendError({ message: msg, code
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return new BackendError({ message: msg, code:
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
BackendError.Conflict = function (msg) {
|
|
47
|
-
return new BackendError({ message: msg, code: 409, severity: "warning", showUser: true });
|
|
48
|
-
};
|
|
49
|
-
BackendError.UnprocessableEntity = function (msg) {
|
|
50
|
-
return new BackendError({ message: msg, code: 422, severity: "warning", showUser: true });
|
|
51
|
-
};
|
|
52
|
-
BackendError.Internal = function (msg) {
|
|
53
|
-
return new BackendError({ message: msg, code: 500, severity: "critical", showUser: false });
|
|
54
|
-
};
|
|
55
|
-
BackendError.ServiceUnavailable = function (msg) {
|
|
56
|
-
return new BackendError({ message: msg, code: 503, severity: "critical", showUser: false });
|
|
57
|
-
};
|
|
58
|
-
return BackendError;
|
|
59
|
-
}(Error));
|
|
60
|
-
exports.BackendError = BackendError;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackendError = void 0;
|
|
4
|
+
class BackendError extends Error {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
super(options.message);
|
|
8
|
+
this.name = "BackendError";
|
|
9
|
+
this.isOperational = (_a = options.isOperational) !== null && _a !== void 0 ? _a : true;
|
|
10
|
+
this.showUser = (_b = options.showUser) !== null && _b !== void 0 ? _b : true;
|
|
11
|
+
this.severity = (_c = options.severity) !== null && _c !== void 0 ? _c : "error";
|
|
12
|
+
this.code = options.code;
|
|
13
|
+
this.data = options.data;
|
|
14
|
+
Object.setPrototypeOf(this, BackendError.prototype);
|
|
15
|
+
}
|
|
16
|
+
static BadRequest(msg) {
|
|
17
|
+
return new BackendError({ message: msg, code: 400, severity: "warning", showUser: true });
|
|
18
|
+
}
|
|
19
|
+
static Unauthorized(msg) {
|
|
20
|
+
return new BackendError({ message: msg, code: 401, severity: "warning", showUser: true });
|
|
21
|
+
}
|
|
22
|
+
static Forbidden(msg) {
|
|
23
|
+
return new BackendError({ message: msg, code: 403, severity: "warning", showUser: true });
|
|
24
|
+
}
|
|
25
|
+
static NotFound(msg) {
|
|
26
|
+
return new BackendError({ message: msg, code: 404, severity: "warning", showUser: true });
|
|
27
|
+
}
|
|
28
|
+
static Conflict(msg) {
|
|
29
|
+
return new BackendError({ message: msg, code: 409, severity: "warning", showUser: true });
|
|
30
|
+
}
|
|
31
|
+
static UnprocessableEntity(msg) {
|
|
32
|
+
return new BackendError({ message: msg, code: 422, severity: "warning", showUser: true });
|
|
33
|
+
}
|
|
34
|
+
static Internal(msg) {
|
|
35
|
+
return new BackendError({ message: msg, code: 500, severity: "critical", showUser: false });
|
|
36
|
+
}
|
|
37
|
+
static ExternalAPI(msg, code = 502) {
|
|
38
|
+
return new BackendError({ message: msg, code, severity: "warning", showUser: true });
|
|
39
|
+
}
|
|
40
|
+
static ServiceUnavailable(msg) {
|
|
41
|
+
return new BackendError({ message: msg, code: 503, severity: "critical", showUser: false });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.BackendError = BackendError;
|
|
45
|
+
//# sourceMappingURL=BackendError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackendError.js","sourceRoot":"","sources":["../../src/core/BackendError.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAa,SAAQ,KAAK;IAOrC,YAAY,OAA4B;;QACtC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAE3B,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,CAAC,aAAa,mCAAI,IAAI,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,IAAI,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,GAAW;QACpC,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,OAAe,GAAG;QAChD,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAW;QACnC,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF;AAvDD,oCAuDC"}
|
|
@@ -1,52 +1,47 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
var body = showUser ? { message: message } : { message: "Internal Server Error" };
|
|
50
|
-
return { status: status, body: body, showUser: showUser, message: message };
|
|
51
|
-
}
|
|
52
|
-
exports.httpErrorFormatter = httpErrorFormatter;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpErrorFormatter = httpErrorFormatter;
|
|
4
|
+
const BackendError_1 = require("./BackendError");
|
|
5
|
+
function isValidStatusCode(code) {
|
|
6
|
+
return typeof code === "number" && Number.isInteger(code) && code >= 100 && code <= 599;
|
|
7
|
+
}
|
|
8
|
+
function httpErrorFormatter(err) {
|
|
9
|
+
// Handle your custom BackendError type
|
|
10
|
+
if (err instanceof BackendError_1.BackendError) {
|
|
11
|
+
const status = isValidStatusCode(err.code) ? err.code : 400;
|
|
12
|
+
// If developer explicitly set showUser, trust that; otherwise default: true for 4xx, false for 5xx
|
|
13
|
+
const showUser = typeof err.showUser === "boolean" ? err.showUser : status < 500;
|
|
14
|
+
const message = err.message || "Error";
|
|
15
|
+
// If showUser is true, return detailed info including data, code, severity; else generic message
|
|
16
|
+
const body = showUser
|
|
17
|
+
? {
|
|
18
|
+
message,
|
|
19
|
+
...(err.data !== undefined && { data: err.data }),
|
|
20
|
+
code: status,
|
|
21
|
+
severity: err.severity,
|
|
22
|
+
}
|
|
23
|
+
: { message: "Internal Server Error" };
|
|
24
|
+
return { status, body, showUser, message };
|
|
25
|
+
}
|
|
26
|
+
// Handle generic Error or string or unknown
|
|
27
|
+
let status = 500;
|
|
28
|
+
let message = "Internal Server Error";
|
|
29
|
+
let showUser = false;
|
|
30
|
+
if (err instanceof Error) {
|
|
31
|
+
message = err.message;
|
|
32
|
+
// Try to extract HTTP status code from common fields 'status' or 'code'
|
|
33
|
+
const maybeStatus = err.status || err.code;
|
|
34
|
+
if (isValidStatusCode(maybeStatus)) {
|
|
35
|
+
status = maybeStatus;
|
|
36
|
+
showUser = status < 500; // show message for 4xx errors by default
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (typeof err === "string") {
|
|
40
|
+
message = err;
|
|
41
|
+
status = 400;
|
|
42
|
+
showUser = true;
|
|
43
|
+
}
|
|
44
|
+
const body = showUser ? { message } : { message: "Internal Server Error" };
|
|
45
|
+
return { status, body, showUser, message };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=httpErrorFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpErrorFormatter.js","sourceRoot":"","sources":["../../src/core/httpErrorFormatter.ts"],"names":[],"mappings":";;AAMA,gDAmDC;AAzDD,iDAA8C;AAE9C,SAAS,iBAAiB,CAAC,IAAa;IACtC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;AAC1F,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAY;IAM7C,uCAAuC;IACvC,IAAI,GAAG,YAAY,2BAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAE5D,mGAAmG;QACnG,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QAEjF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;QAEvC,iGAAiG;QACjG,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC;gBACE,OAAO;gBACP,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB;YACH,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;QAEzC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,4CAA4C;IAC5C,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,OAAO,GAAG,uBAAuB,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAEtB,wEAAwE;QACxE,MAAM,WAAW,GAAI,GAAW,CAAC,MAAM,IAAK,GAAW,CAAC,IAAI,CAAC;QAC7D,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,WAAW,CAAC;YACrB,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,yCAAyC;QACpE,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;QACb,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.httpErrorFormatter = exports.BackendError = void 0;
|
|
4
|
-
var BackendError_1 = require("./core/BackendError");
|
|
5
|
-
Object.defineProperty(exports, "BackendError", { enumerable: true, get: function () { return BackendError_1.BackendError; } });
|
|
6
|
-
var httpErrorFormatter_1 = require("./core/httpErrorFormatter");
|
|
7
|
-
Object.defineProperty(exports, "httpErrorFormatter", { enumerable: true, get: function () { return httpErrorFormatter_1.httpErrorFormatter; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpErrorFormatter = exports.BackendError = void 0;
|
|
4
|
+
var BackendError_1 = require("./core/BackendError");
|
|
5
|
+
Object.defineProperty(exports, "BackendError", { enumerable: true, get: function () { return BackendError_1.BackendError; } });
|
|
6
|
+
var httpErrorFormatter_1 = require("./core/httpErrorFormatter");
|
|
7
|
+
Object.defineProperty(exports, "httpErrorFormatter", { enumerable: true, get: function () { return httpErrorFormatter_1.httpErrorFormatter; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AAA1C,4GAAA,YAAY,OAAA;AACrB,gEAA+D;AAAtD,wHAAA,kBAAkB,OAAA"}
|
package/dist/interfaces/Types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=Types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/interfaces/Types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BackendErrorOptions, Severity } from "../interfaces/Types";
|
|
2
|
+
export declare class BackendError extends Error {
|
|
3
|
+
isOperational: boolean;
|
|
4
|
+
showUser: boolean;
|
|
5
|
+
severity: Severity;
|
|
6
|
+
code?: number;
|
|
7
|
+
data?: any;
|
|
8
|
+
constructor(options: BackendErrorOptions);
|
|
9
|
+
static BadRequest(msg: string): BackendError;
|
|
10
|
+
static Unauthorized(msg: string): BackendError;
|
|
11
|
+
static Forbidden(msg: string): BackendError;
|
|
12
|
+
static NotFound(msg: string): BackendError;
|
|
13
|
+
static Conflict(msg: string): BackendError;
|
|
14
|
+
static UnprocessableEntity(msg: string): BackendError;
|
|
15
|
+
static Internal(msg: string): BackendError;
|
|
16
|
+
static ExternalAPI(msg: string, code?: number): BackendError;
|
|
17
|
+
static ServiceUnavailable(msg: string): BackendError;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=BackendError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackendError.d.ts","sourceRoot":"","sources":["../../../src/core/BackendError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpE,qBAAa,YAAa,SAAQ,KAAK;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;gBAEN,OAAO,EAAE,mBAAmB;IAaxC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM;IAI5B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAI3B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAI3B,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM;IAItC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAI3B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY;IAIlD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM;CAGtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpErrorFormatter.d.ts","sourceRoot":"","sources":["../../../src/core/httpErrorFormatter.ts"],"names":[],"mappings":"AAMA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CA8CA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type Severity = "info" | "warning" | "error" | "critical";
|
|
2
|
+
export interface BackendErrorOptions {
|
|
3
|
+
message: string;
|
|
4
|
+
isOperational?: boolean;
|
|
5
|
+
showUser?: boolean;
|
|
6
|
+
severity?: Severity;
|
|
7
|
+
code?: number;
|
|
8
|
+
data?: any;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/interfaces/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.2.1",
|
|
3
3
|
"name": "backend-error",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"keywords": [
|
|
@@ -27,15 +27,14 @@
|
|
|
27
27
|
"description": "Simple Error handling library.",
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|
|
30
|
-
"url": "https://github.com/eriksturesson/backendError"
|
|
30
|
+
"url": "git+https://github.com/eriksturesson/backendError.git"
|
|
31
31
|
},
|
|
32
32
|
"bugs": {
|
|
33
33
|
"email": "hej@eriksturesson.se",
|
|
34
34
|
"url": "https://github.com/eriksturesson/backendError/issues"
|
|
35
35
|
},
|
|
36
36
|
"engines": {
|
|
37
|
-
"
|
|
38
|
-
"node": "^22.0.0"
|
|
37
|
+
"node": ">=16"
|
|
39
38
|
},
|
|
40
39
|
"main": "dist/index.js",
|
|
41
40
|
"types": "dist/index.d.ts",
|