@expressots/core 1.7.0 → 1.8.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 +87 -41
- package/lib/CHANGELOG.md +123 -123
- package/lib/README.md +87 -41
- package/lib/cjs/application/app-container.js +3 -3
- package/lib/cjs/application/application.js +18 -4
- package/lib/cjs/console/console.js +3 -1
- package/lib/cjs/container-module/container-module.js +2 -0
- package/lib/cjs/decorator/scope-binding.js +2 -0
- package/lib/cjs/environment/env-validator.js +1 -0
- package/lib/cjs/error/app-error.js +26 -0
- package/lib/cjs/error/error-handler-middleware.js +16 -5
- package/lib/cjs/error/index.js +3 -1
- package/lib/cjs/error/report.js +4 -20
- package/lib/cjs/logger/general-logger.js +2 -2
- package/lib/cjs/types/application/app-container.d.ts +71 -5
- package/lib/cjs/types/application/app-container.d.ts.map +1 -1
- package/lib/cjs/types/application/application.d.ts +5 -1
- package/lib/cjs/types/application/application.d.ts.map +1 -1
- package/lib/cjs/types/common/project-config.provider.d.ts.map +1 -1
- package/lib/cjs/types/console/console.d.ts.map +1 -1
- package/lib/cjs/types/container-module/container-module.d.ts +1 -1
- package/lib/cjs/types/container-module/container-module.d.ts.map +1 -1
- package/lib/cjs/types/controller/base-controller.d.ts.map +1 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts.map +1 -1
- package/lib/cjs/types/environment/env-validator.d.ts.map +1 -1
- package/lib/cjs/types/error/app-error.d.ts +30 -0
- package/lib/cjs/types/error/app-error.d.ts.map +1 -0
- package/lib/cjs/types/error/error-handler-middleware.d.ts +2 -3
- package/lib/cjs/types/error/error-handler-middleware.d.ts.map +1 -1
- package/lib/cjs/types/error/index.d.ts +1 -0
- package/lib/cjs/types/error/index.d.ts.map +1 -1
- package/lib/cjs/types/error/report.d.ts +3 -9
- package/lib/cjs/types/error/report.d.ts.map +1 -1
- package/lib/cjs/types/logger/general-logger.d.ts.map +1 -1
- package/lib/esm/application/app-container.js +14 -11
- package/lib/esm/application/application.js +40 -19
- package/lib/esm/application/index.js +9 -2
- package/lib/esm/common/index.js +2 -1
- package/lib/esm/common/project-config.provider.js +2 -1
- package/lib/esm/console/console.js +18 -10
- package/lib/esm/console/index.js +5 -1
- package/lib/esm/container-module/container-module.js +23 -17
- package/lib/esm/container-module/index.js +6 -1
- package/lib/esm/controller/base-controller.js +9 -6
- package/lib/esm/controller/index.js +5 -1
- package/lib/esm/decorator/index.js +17 -1
- package/lib/esm/decorator/scope-binding.js +10 -4
- package/lib/esm/environment/env-validator.js +20 -13
- package/lib/esm/environment/index.js +5 -1
- package/lib/esm/error/app-error.js +37 -0
- package/lib/esm/error/error-handler-middleware.js +19 -6
- package/lib/esm/error/index.js +9 -2
- package/lib/esm/error/report.js +11 -23
- package/lib/esm/error/status-code.js +4 -1
- package/lib/esm/index.mjs +26 -10
- package/lib/esm/logger/general-logger.js +20 -13
- package/lib/esm/logger/index.js +7 -1
- package/lib/esm/render/handlebars.interface.js +2 -1
- package/lib/esm/render/index.js +2 -1
- package/lib/esm/render/render.type.js +2 -1
- package/lib/esm/types/application/app-container.d.ts +71 -5
- package/lib/esm/types/application/app-container.d.ts.map +1 -1
- package/lib/esm/types/application/application.d.ts +5 -1
- package/lib/esm/types/application/application.d.ts.map +1 -1
- package/lib/esm/types/common/project-config.provider.d.ts.map +1 -1
- package/lib/esm/types/console/console.d.ts.map +1 -1
- package/lib/esm/types/container-module/container-module.d.ts +1 -1
- package/lib/esm/types/container-module/container-module.d.ts.map +1 -1
- package/lib/esm/types/controller/base-controller.d.ts.map +1 -1
- package/lib/esm/types/decorator/scope-binding.d.ts.map +1 -1
- package/lib/esm/types/environment/env-validator.d.ts.map +1 -1
- package/lib/esm/types/error/app-error.d.ts +30 -0
- package/lib/esm/types/error/app-error.d.ts.map +1 -0
- package/lib/esm/types/error/error-handler-middleware.d.ts +2 -3
- package/lib/esm/types/error/error-handler-middleware.d.ts.map +1 -1
- package/lib/esm/types/error/index.d.ts +1 -0
- package/lib/esm/types/error/index.d.ts.map +1 -1
- package/lib/esm/types/error/report.d.ts +3 -9
- package/lib/esm/types/error/report.d.ts.map +1 -1
- package/lib/esm/types/logger/general-logger.d.ts.map +1 -1
- package/lib/package.json +21 -13
- package/package.json +21 -13
package/lib/README.md
CHANGED
|
@@ -1,61 +1,107 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
<a name="readme-top"></a>
|
|
2
|
+
|
|
3
|
+
<!-- PROJECT SHIELDS -->
|
|
4
|
+
[![Contributors][contributors-shield]][contributors-url]
|
|
5
|
+
[![Forks][forks-shield]][forks-url]
|
|
6
|
+
[![Stargazers][stars-shield]][stars-url]
|
|
7
|
+
[![Issues][issues-shield]][issues-url]
|
|
8
|
+
[![MIT License][license-shield]][license-url]
|
|
9
|
+
[![LinkedIn][linkedin-shield]][linkedin-url]
|
|
10
|
+
|
|
11
|
+
<!-- PROJECT LOGO -->
|
|
12
|
+
<br />
|
|
13
|
+
<div align="center">
|
|
14
|
+
<a href="https://github.com/othneildrew/Best-README-Template">
|
|
15
|
+
<img src="https://github.com/expressots/expressots/blob/main/media/expressots.png" alt="Logo" width="120">
|
|
16
|
+
</a>
|
|
17
|
+
|
|
18
|
+
<h3 align="center">ExpressoTS Framework</h3>
|
|
19
|
+
|
|
20
|
+
<p align="center">
|
|
21
|
+
Everything you need to know to build applications with ExpressoTS
|
|
22
|
+
<br />
|
|
23
|
+
<a href="https://doc.expresso-ts.com/"><strong>Explore the docs »</strong></a>
|
|
24
|
+
<br />
|
|
25
|
+
<br />
|
|
26
|
+
<a href="https://github.com/expressots/expressots/discussions">Let's discuss</a>
|
|
27
|
+
·
|
|
28
|
+
<a href="https://github.com/expressots/expressots/issues">Report Bug</a>
|
|
29
|
+
·
|
|
30
|
+
<a href="https://github.com/expressots/expressots/issues">Request Feature</a>
|
|
31
|
+
</p>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<!-- TABLE OF CONTENTS -->
|
|
35
|
+
<details>
|
|
36
|
+
<summary>Table of Contents</summary>
|
|
37
|
+
<ol>
|
|
38
|
+
<li><a href="#about-the-project">About The Project</a></li>
|
|
39
|
+
<li><a href="#getting-started">Getting Started</a></li>
|
|
40
|
+
<li><a href="#contributing">Contributing</a></li>
|
|
41
|
+
<li><a href="#support-the-project">Support the project</a></li>
|
|
42
|
+
<li><a href="#license">License</a></li>
|
|
43
|
+
</ol>
|
|
44
|
+
</details>
|
|
45
|
+
|
|
46
|
+
<!-- ABOUT THE PROJECT -->
|
|
47
|
+
# About The Project
|
|
48
|
+
|
|
49
|
+
ExpressoTS is a [Typescript](https://www.typescriptlang.org/) + [Node.js](https://nodejs.org/en/) lightweight framework for quick building scalable, easy to read and maintain, server-side applications 🐎
|
|
18
50
|
|
|
19
51
|
## Getting Started
|
|
20
52
|
|
|
21
|
-
- Here is our [
|
|
53
|
+
- Here is our [Site](https://expresso-ts.com/)
|
|
54
|
+
- You can find our [Documentation here](https://doc.expresso-ts.com/)
|
|
22
55
|
- Checkout our [First Steps documentation](https://doc.expresso-ts.com/docs/overview/first-steps)
|
|
23
|
-
- Our [CLI Documentation](https://doc.expresso-ts.com/docs/
|
|
56
|
+
- Our [CLI Documentation](https://doc.expresso-ts.com/docs/cli/overview)
|
|
57
|
+
|
|
58
|
+
## Contributing
|
|
24
59
|
|
|
25
|
-
|
|
60
|
+
Welcome to the ExpressoTS community, a place bustling with innovative minds just like yours. We're absolutely thrilled to have you here!
|
|
61
|
+
ExpressoTS is more than just a TypeScript framework; it's a collective effort by developers who are passionate about creating a more efficient, secure, and robust web ecosystem. We firmly believe that the best ideas come from a diversity of perspectives, backgrounds, and skills.
|
|
26
62
|
|
|
27
|
-
|
|
63
|
+
Why Contribute to Documentation?
|
|
28
64
|
|
|
29
|
-
|
|
65
|
+
- **Share Knowledge**: If you've figured out something cool, why keep it to yourself?
|
|
66
|
+
- **Build Your Portfolio**: Contributing to an open-source project like ExpressoTS is a great way to showcase your skills.
|
|
67
|
+
- **Join a Network**: Get to know a community of like-minded developers.
|
|
68
|
+
- **Improve the Product**: Help us fill in the gaps, correct errors, or make complex topics easier to understand.
|
|
30
69
|
|
|
31
|
-
|
|
70
|
+
Ready to contribute?
|
|
32
71
|
|
|
33
|
-
|
|
72
|
+
- [Contributing Guidelines](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md)
|
|
73
|
+
- [How to Contribute](https://github.com/expressots/expressots/blob/main/CONTRIBUTING_HOWTO.md)
|
|
74
|
+
- [Coding Guidelines](https://github.com/rsaz/TypescriptCodingGuidelines)
|
|
34
75
|
|
|
35
76
|
## Support the project
|
|
36
77
|
|
|
37
|
-
|
|
78
|
+
ExpressoTS is an independent open source project with ongoing development made possible thanks to your support. If you'd like to help, please consider:
|
|
38
79
|
|
|
39
|
-
- Become a sponsor on
|
|
80
|
+
- Become a **[sponsor on GitHub](https://github.com/sponsors/expressots)**
|
|
40
81
|
- Follow the **[organization](https://github.com/expressots)** on GitHub and Star ⭐ the project
|
|
41
82
|
- Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
|
|
42
83
|
- Join our **[Discord](https://discord.com/invite/PyPJfGK)**
|
|
43
|
-
- Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues
|
|
84
|
+
- Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues)**
|
|
44
85
|
- Share the project with your friends and colleagues
|
|
45
86
|
|
|
46
|
-
## Contributors
|
|
47
|
-
|
|
48
|
-
- [Daniel Boll](https://github.com/daniel-boll)
|
|
49
|
-
- [Felipe Fontana](https://github.com/f0ntana)
|
|
50
|
-
- [Juliano Soares](https://github.com/juliano-soares)
|
|
51
|
-
- [Vitor Caminha](https://github.com/VitorCaminha)
|
|
52
|
-
- [Ariel Betti](https://github.com/ArielBetti)
|
|
53
|
-
- [Rodrigo da Hora](https://github.com/dahorarodrigo)
|
|
54
|
-
|
|
55
|
-
## Backers
|
|
56
|
-
|
|
57
|
-
- Work in progress
|
|
58
|
-
|
|
59
87
|
## License
|
|
60
88
|
|
|
61
|
-
|
|
89
|
+
Distributed under the MIT License. See [`LICENSE.txt`](https://github.com/expressots/expressots/blob/main/LICENSE) for more information.
|
|
90
|
+
|
|
91
|
+
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
|
92
|
+
|
|
93
|
+
<!-- MARKDOWN LINKS & IMAGES -->
|
|
94
|
+
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
|
|
95
|
+
[contributors-shield]: https://img.shields.io/github/contributors/expressots/expressots?style=for-the-badge
|
|
96
|
+
[contributors-url]: https://github.com/expressots/expressots/graphs/contributors
|
|
97
|
+
[forks-shield]: https://img.shields.io/github/forks/expressots/expressots?style=for-the-badge
|
|
98
|
+
[forks-url]: https://github.com/expressots/expressots/forks
|
|
99
|
+
[stars-shield]: https://img.shields.io/github/stars/expressots/expressots?style=for-the-badge
|
|
100
|
+
[stars-url]: https://github.com/expressots/expressots/stargazers
|
|
101
|
+
[issues-shield]: https://img.shields.io/github/issues/expressots/expressots?style=for-the-badge
|
|
102
|
+
[issues-url]: https://github.com/expressots/expressots/issues
|
|
103
|
+
[license-shield]: https://img.shields.io/github/license/expressots/expressots?style=for-the-badge
|
|
104
|
+
[license-url]: https://github.com/expressots/expressots/blob/main/LICENSE
|
|
105
|
+
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
|
|
106
|
+
[linkedin-url]: https://www.linkedin.com/company/expresso-ts/
|
|
107
|
+
[product-screenshot]: images/screenshot.png
|
|
@@ -27,9 +27,9 @@ const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
|
27
27
|
*/
|
|
28
28
|
let AppContainer = AppContainer_1 = class AppContainer {
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
* Constructs the AppContainer instance.
|
|
31
|
+
* @param options - The options for creating the container. Can include custom default scope and skip base class checks setting.
|
|
32
|
+
*/
|
|
33
33
|
constructor(options) {
|
|
34
34
|
this.options = Object.assign({ defaultScope: inversify_1.BindingScopeEnum.Request }, options);
|
|
35
35
|
}
|
|
@@ -49,7 +49,12 @@ let Application = Application_1 = class Application {
|
|
|
49
49
|
/**
|
|
50
50
|
* Perform actions or cleanup after the server is shutdown.
|
|
51
51
|
*/
|
|
52
|
-
serverShutdown() {
|
|
52
|
+
serverShutdown() { }
|
|
53
|
+
/**
|
|
54
|
+
* Handles process exit by calling serverShutdown and then exiting the process.
|
|
55
|
+
*/
|
|
56
|
+
handleExit() {
|
|
57
|
+
this.serverShutdown();
|
|
53
58
|
process_1.default.exit(0);
|
|
54
59
|
}
|
|
55
60
|
/**
|
|
@@ -78,9 +83,10 @@ let Application = Application_1 = class Application {
|
|
|
78
83
|
app.use(middleware);
|
|
79
84
|
});
|
|
80
85
|
});
|
|
86
|
+
expressServer.setErrorConfig((app) => {
|
|
87
|
+
app.use(error_handler_middleware_1.default);
|
|
88
|
+
});
|
|
81
89
|
this.app = expressServer.build();
|
|
82
|
-
/* Add the error handler middleware */
|
|
83
|
-
this.app.use(error_handler_middleware_1.default);
|
|
84
90
|
return this;
|
|
85
91
|
}
|
|
86
92
|
/**
|
|
@@ -94,7 +100,15 @@ let Application = Application_1 = class Application {
|
|
|
94
100
|
this.environment = environment;
|
|
95
101
|
this.app.listen(this.port, () => {
|
|
96
102
|
new console_1.Console().messageServer(this.port, this.environment, consoleMessage);
|
|
97
|
-
|
|
103
|
+
[
|
|
104
|
+
"SIGTERM",
|
|
105
|
+
"SIGHUP",
|
|
106
|
+
"SIGBREAK",
|
|
107
|
+
"SIGQUIT",
|
|
108
|
+
"SIGINT",
|
|
109
|
+
].forEach((signal) => {
|
|
110
|
+
process_1.default.on(signal, this.handleExit.bind(this));
|
|
111
|
+
});
|
|
98
112
|
});
|
|
99
113
|
this.postServerInitialization();
|
|
100
114
|
}
|
|
@@ -63,7 +63,9 @@ let Console = Console_1 = class Console {
|
|
|
63
63
|
* @param environment - The server environment.
|
|
64
64
|
* @param consoleMessage - Optional application message details for console output.
|
|
65
65
|
*/
|
|
66
|
-
messageServer(
|
|
66
|
+
messageServer(
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
+
port, environment, consoleMessage) {
|
|
67
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
70
|
const appConsoleMessage = {
|
|
69
71
|
appName: (consoleMessage === null || consoleMessage === void 0 ? void 0 : consoleMessage.appName) || "Application",
|
|
@@ -8,6 +8,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var BaseModule_1;
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.scope = exports.CreateModule = void 0;
|
|
11
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11
13
|
const inversify_1 = require("inversify");
|
|
12
14
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
13
15
|
const decorator_1 = require("../decorator");
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.provideTransient = exports.provideSingleton = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
6
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
5
7
|
const provideSingleton = (identifier) => {
|
|
6
8
|
return (0, inversify_binding_decorators_1.fluentProvide)(identifier).inSingletonScope().done();
|
|
@@ -28,6 +28,7 @@ let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
|
|
|
28
28
|
* @param defaultValue - The default value to return if the environment variable is not set.
|
|
29
29
|
* @returns The value of the environment variable, or the default value if not set.
|
|
30
30
|
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
32
|
static get(key, defaultValue = undefined) {
|
|
32
33
|
var _a;
|
|
33
34
|
return (_a = process.env[key]) !== null && _a !== void 0 ? _a : defaultValue;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The AppError class extends the built-in Error class in JavaScript,
|
|
6
|
+
* providing additional properties to manage custom application errors.
|
|
7
|
+
* It captures detailed information about the error, including a status code
|
|
8
|
+
* and an optional service identifier, which can be useful for error handling
|
|
9
|
+
* and logging within the application.
|
|
10
|
+
*
|
|
11
|
+
* @extends {Error}
|
|
12
|
+
*/
|
|
13
|
+
class AppError extends Error {
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} message - The error message to be displayed.
|
|
16
|
+
* @param {number} [statusCode=500] - The HTTP status code associated with the error (default: 500).
|
|
17
|
+
* @param {string} [service] - The service identifier associated with the error.
|
|
18
|
+
*/
|
|
19
|
+
constructor(message, statusCode = 500, service) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.statusCode = statusCode;
|
|
22
|
+
this.service = service;
|
|
23
|
+
Error.captureStackTrace(this, this.constructor);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.AppError = AppError;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const app_error_1 = require("./app-error");
|
|
3
4
|
const status_code_1 = require("./status-code");
|
|
4
5
|
/**
|
|
5
6
|
* errorHandler is a custom Express error-handling middleware function.
|
|
@@ -9,9 +10,19 @@ const status_code_1 = require("./status-code");
|
|
|
9
10
|
* @param res - The Express response object.
|
|
10
11
|
* @param next - The Express next function for passing control to the next middleware function.
|
|
11
12
|
*/
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
function defaultErrorHandler(error, req, res,
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
next) {
|
|
16
|
+
if (error instanceof app_error_1.AppError) {
|
|
17
|
+
res
|
|
18
|
+
.status(error.statusCode)
|
|
19
|
+
.json({ statusCode: error.statusCode, error: error.message });
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
res.status(status_code_1.StatusCode.InternalServerError).json({
|
|
23
|
+
statusCode: status_code_1.StatusCode.InternalServerError,
|
|
24
|
+
error: "An unexpected error occurred.",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
16
27
|
}
|
|
17
|
-
exports.default =
|
|
28
|
+
exports.default = defaultErrorHandler;
|
package/lib/cjs/error/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Report = exports.StatusCode = void 0;
|
|
3
|
+
exports.AppError = exports.Report = exports.StatusCode = void 0;
|
|
4
4
|
var status_code_1 = require("./status-code");
|
|
5
5
|
Object.defineProperty(exports, "StatusCode", { enumerable: true, get: function () { return status_code_1.StatusCode; } });
|
|
6
6
|
var report_1 = require("./report");
|
|
7
7
|
Object.defineProperty(exports, "Report", { enumerable: true, get: function () { return report_1.Report; } });
|
|
8
|
+
var app_error_1 = require("./app-error");
|
|
9
|
+
Object.defineProperty(exports, "AppError", { enumerable: true, get: function () { return app_error_1.AppError; } });
|
package/lib/cjs/error/report.js
CHANGED
|
@@ -9,7 +9,7 @@ var Report_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.Report = void 0;
|
|
11
11
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
12
|
-
const
|
|
12
|
+
const app_error_1 = require("./app-error");
|
|
13
13
|
/**
|
|
14
14
|
* Report class is a utility class to manage and log errors within the application.
|
|
15
15
|
* It is responsible for creating a standardized error object, logging it,
|
|
@@ -28,30 +28,14 @@ let Report = Report_1 = class Report {
|
|
|
28
28
|
*
|
|
29
29
|
* @throws An object of the custom type IAppError, which includes details about the error.
|
|
30
30
|
*/
|
|
31
|
-
|
|
32
|
-
var _a, _b;
|
|
31
|
+
Error(error, statusCode, service) {
|
|
33
32
|
let appError = {};
|
|
34
|
-
Error.captureStackTrace(this, this.Error);
|
|
35
|
-
const callerName = (_b = (_a = this.stack.split("\n")[1]) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.split(" ")[1];
|
|
36
33
|
if (error instanceof Error) {
|
|
37
|
-
appError =
|
|
38
|
-
statusCode: statusCode !== null && statusCode !== void 0 ? statusCode : 500,
|
|
39
|
-
message: error.message,
|
|
40
|
-
service: service !== null && service !== void 0 ? service : callerName,
|
|
41
|
-
name: error.name,
|
|
42
|
-
stack: error.stack,
|
|
43
|
-
};
|
|
34
|
+
appError = new app_error_1.AppError(error.message, statusCode, service);
|
|
44
35
|
}
|
|
45
36
|
else {
|
|
46
|
-
appError =
|
|
47
|
-
statusCode: statusCode !== null && statusCode !== void 0 ? statusCode : 500,
|
|
48
|
-
message: error,
|
|
49
|
-
service: service !== null && service !== void 0 ? service : callerName,
|
|
50
|
-
name: this.Error.name,
|
|
51
|
-
stack: this.stack,
|
|
52
|
-
};
|
|
37
|
+
appError = new app_error_1.AppError(error, statusCode, service);
|
|
53
38
|
}
|
|
54
|
-
(0, logger_1.log)(logger_1.LogLevel.Error, appError, appError.service || "service-undefined");
|
|
55
39
|
throw appError;
|
|
56
40
|
}
|
|
57
41
|
};
|
|
@@ -86,8 +86,8 @@ let GeneralLogger = GeneralLogger_1 = class GeneralLogger {
|
|
|
86
86
|
getPathAndLine(error) {
|
|
87
87
|
let pathLine = "";
|
|
88
88
|
if (error.stack) {
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
const callerLine = error.stack.split("\n")[1];
|
|
90
|
+
const index = callerLine.indexOf("at ");
|
|
91
91
|
pathLine = callerLine.substring(index + +2, callerLine.length);
|
|
92
92
|
}
|
|
93
93
|
return pathLine;
|
|
@@ -1,4 +1,70 @@
|
|
|
1
1
|
import { Container, ContainerModule, interfaces } from "inversify";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a single binding in the dependency injection container.
|
|
4
|
+
*/
|
|
5
|
+
interface Binding {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier for this binding.
|
|
8
|
+
*/
|
|
9
|
+
id: number;
|
|
10
|
+
/**
|
|
11
|
+
* Indicates whether this binding is activated.
|
|
12
|
+
*/
|
|
13
|
+
activated: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Symbol used to identify the service.
|
|
16
|
+
*/
|
|
17
|
+
serviceIdentifier: symbol;
|
|
18
|
+
/**
|
|
19
|
+
* Scope of the binding (e.g., 'Singleton', 'Transient', 'Request').
|
|
20
|
+
*/
|
|
21
|
+
scope: string;
|
|
22
|
+
/**
|
|
23
|
+
* Type of the binding (e.g., 'Instance', 'Factory', 'Provider').
|
|
24
|
+
*/
|
|
25
|
+
type: string;
|
|
26
|
+
/**
|
|
27
|
+
* Object used to match or constrain the binding.
|
|
28
|
+
*/
|
|
29
|
+
constraint: object;
|
|
30
|
+
/**
|
|
31
|
+
* The actual implementation type of the service.
|
|
32
|
+
*/
|
|
33
|
+
implementationType: object;
|
|
34
|
+
/**
|
|
35
|
+
* Cached instance, used if the binding's scope allows it.
|
|
36
|
+
*/
|
|
37
|
+
cache: object | null;
|
|
38
|
+
/**
|
|
39
|
+
* Optional factory to create the service instance.
|
|
40
|
+
*/
|
|
41
|
+
factory: object | null;
|
|
42
|
+
/**
|
|
43
|
+
* Optional provider to create the service instance.
|
|
44
|
+
*/
|
|
45
|
+
provider: object | null;
|
|
46
|
+
/**
|
|
47
|
+
* Function to run when activating a new instance.
|
|
48
|
+
*/
|
|
49
|
+
onActivation: object | null;
|
|
50
|
+
/**
|
|
51
|
+
* Function to run when deactivating an instance.
|
|
52
|
+
*/
|
|
53
|
+
onDeactivation: object | null;
|
|
54
|
+
/**
|
|
55
|
+
* Optional dynamic value that can be used to resolve the service.
|
|
56
|
+
*/
|
|
57
|
+
dynamicValue: object | null;
|
|
58
|
+
/**
|
|
59
|
+
* Module ID where the binding is defined, useful for debugging.
|
|
60
|
+
*/
|
|
61
|
+
moduleId: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Type alias for ServiceIdentifier, used to specify a unique identifier for a service.
|
|
65
|
+
* It's usually a symbol, but can be other types as well.
|
|
66
|
+
*/
|
|
67
|
+
type ServiceIdentifier = typeof Symbol;
|
|
2
68
|
/**
|
|
3
69
|
* Interface for container options that can be passed to the AppContainer class.
|
|
4
70
|
*/
|
|
@@ -29,9 +95,9 @@ declare class AppContainer {
|
|
|
29
95
|
private container;
|
|
30
96
|
private options;
|
|
31
97
|
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
98
|
+
* Constructs the AppContainer instance.
|
|
99
|
+
* @param options - The options for creating the container. Can include custom default scope and skip base class checks setting.
|
|
100
|
+
*/
|
|
35
101
|
constructor(options?: ContainerOptions);
|
|
36
102
|
/**
|
|
37
103
|
* Creates and configures a new dependency injection container.
|
|
@@ -39,12 +105,12 @@ declare class AppContainer {
|
|
|
39
105
|
* @param defaultScope - The default scope to use for bindings. Scoped (Request) by default, but offers Singleton and Transient as well.
|
|
40
106
|
* @returns The configured dependency injection container.
|
|
41
107
|
*/
|
|
42
|
-
create(modules: ContainerModule
|
|
108
|
+
create(modules: Array<ContainerModule>): Container;
|
|
43
109
|
/**
|
|
44
110
|
* Retrieves the binding dictionary of the container.
|
|
45
111
|
* @returns The binding dictionary of the container.
|
|
46
112
|
*/
|
|
47
|
-
getBindingDictionary(): Map<
|
|
113
|
+
getBindingDictionary(): Map<ServiceIdentifier, Array<Binding>>;
|
|
48
114
|
/**
|
|
49
115
|
* Retrieves the container options.
|
|
50
116
|
* @returns The container options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-container.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/application/app-container.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,UAAU,EACX,MAAM,WAAW,CAAC;AAGnB;;GAEG;AACH,UAAU,gBAAgB;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC;IAEvC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"app-container.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/application/app-container.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,UAAU,EACX,MAAM,WAAW,CAAC;AAGnB;;GAEG;AACH,UAAU,OAAO;IACf;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,KAAK,iBAAiB,GAAG,OAAO,MAAM,CAAC;AAEvC;;GAEG;AACH,UAAU,gBAAgB;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC;IAEvC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,cACM,YAAY;IAChB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAmB;IAElC;;;OAGG;gBACS,OAAO,CAAC,EAAE,gBAAgB;IAOtC;;;;;OAKG;IACI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,SAAS;IAYzD;;;OAGG;IACI,oBAAoB,IAAI,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAIrE;;;OAGG;IACI,mBAAmB,IAAI,UAAU,CAAC,gBAAgB;IAIzD;;;OAGG;IACH,IAAW,SAAS,IAAI,SAAS,CAEhC;CACF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -34,13 +34,17 @@ declare class Application {
|
|
|
34
34
|
* Perform actions or cleanup after the server is shutdown.
|
|
35
35
|
*/
|
|
36
36
|
protected serverShutdown(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Handles process exit by calling serverShutdown and then exiting the process.
|
|
39
|
+
*/
|
|
40
|
+
private handleExit;
|
|
37
41
|
/**
|
|
38
42
|
* Create and configure the Express application.
|
|
39
43
|
* @param container - The InversifyJS container.
|
|
40
44
|
* @param middlewares - An array of Express middlewares to be applied.
|
|
41
45
|
* @returns The configured Application instance.
|
|
42
46
|
*/
|
|
43
|
-
create(container: Container, middlewares?: express.RequestHandler
|
|
47
|
+
create(container: Container, middlewares?: Array<express.RequestHandler>): Application;
|
|
44
48
|
/**
|
|
45
49
|
* Start listening on the given port and environment.
|
|
46
50
|
* @param port - The port number to listen on.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/application/application.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAW,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAe,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE/D;;GAEG;AACH,aAAK,iBAAiB;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED;;;GAGG;AACH,cACM,WAAW;IACf,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAoB;IAEvC;;OAEG;;IAGH;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAEnC;;OAEG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAE1C;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/application/application.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAW,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAe,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE/D;;GAEG;AACH,aAAK,iBAAiB;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED;;;GAGG;AACH,cACM,WAAW;IACf,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAoB;IAEvC;;OAEG;;IAGH;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAEnC;;OAEG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAE1C;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAEhC;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;;;;OAKG;IACI,MAAM,CACX,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAM,GAC9C,WAAW;IAqCd;;;;;OAKG;IACI,MAAM,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,iBAAiB,EAC9B,cAAc,CAAC,EAAE,4BAA4B,GAC5C,IAAI;IAuBP;;;;;;;;;;OAUG;IACI,SAAS,CAAC,CAAC,SAAS,qBAAqB,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;CAQpE;AAED,QAAA,MAAM,iBAAiB,EAAE,WAA+B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.provider.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/common/project-config.provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,mBAAW,OAAO;IAChB,UAAU,cAAc;IACxB,UAAU,eAAe;IACzB,WAAW,eAAe;IAC1B,UAAU,cAAc;CACzB;AAED;;;;;;;GAOG;AACH,UAAU,UAAU;
|
|
1
|
+
{"version":3,"file":"project-config.provider.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/common/project-config.provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,mBAAW,OAAO;IAChB,UAAU,cAAc;IACxB,UAAU,eAAe;IACzB,WAAW,eAAe;IAC1B,UAAU,cAAc;CACzB;AAED;;;;;;;GAOG;AACH,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,UAAU,cAAc;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/console/console.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,cACM,OAAO;IACX;;;;OAIG;YACW,UAAU;IAgBxB;;;;;OAKG;IACU,aAAa,
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/console/console.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,cACM,OAAO;IACX;;;;OAIG;YACW,UAAU;IAgBxB;;;;;OAKG;IACU,aAAa,CAExB,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,4BAA4B,GAC5C,OAAO,CAAC,IAAI,CAAC;CA6BjB;AAED,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -22,7 +22,7 @@ declare class BaseModule {
|
|
|
22
22
|
* @param scope - An optional binding scope to be used for all controllers.
|
|
23
23
|
* @returns A ContainerModule with the controller bindings.
|
|
24
24
|
*/
|
|
25
|
-
static createContainerModule(controllers: any
|
|
25
|
+
static createContainerModule(controllers: Array<any>, scope?: interfaces.BindingScope): ContainerModule;
|
|
26
26
|
}
|
|
27
27
|
declare const CreateModule: typeof BaseModule.createContainerModule;
|
|
28
28
|
export { CreateModule, scope };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-module.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/container-module/container-module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"container-module.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/container-module/container-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAS1E;;;;GAIG;AACH,QAAA,MAAM,KAAK,YAAa,WAAW,YAAY,cACpB,GAAG,SAiB7B,CAAC;AAOF;;;GAGG;AACH,cACM,UAAU;IACd;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;;;;OAKG;WACW,qBAAqB,CACjC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,EACvB,KAAK,CAAC,EAAE,UAAU,CAAC,YAAY,GAC9B,eAAe;CAyCnB;AAED,QAAA,MAAM,YAAY,yCAAmC,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-controller.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/controller/base-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-controller.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/controller/base-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD;;;;GAIG;AACH,uBACe,cAAe,YAAW,UAAU,CAAC,UAAU;IAC5D,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;gBACS,WAAW,GAAE,MAAW;IAIpC;;;;;OAKG;cACa,gBAAgB,CAC9B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EACrB,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAE,MAAM;IAK3B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM;IAIvE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI;IAI5E;;;;;;;;;;OAUG;IACH,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,KAAK,GACX,OAAO,CAAC,MAAM,CAAC;CAWnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-binding.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/decorator/scope-binding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scope-binding.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/decorator/scope-binding.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,gBAAgB,eAAgB,GAAG,yBAExC,CAAC;AAEF,QAAA,MAAM,gBAAgB,eAAgB,GAAG,yBAExC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-validator.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/environment/env-validator.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,cACM,oBAAoB;IACxB;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"env-validator.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/environment/env-validator.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,cACM,oBAAoB;IACxB;;;;;OAKG;WAEW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAe,GAAG,GAAG;IAIlE;;;OAGG;WACW,QAAQ,IAAI,IAAI;CAsC/B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,IAAI,OAAO,GAAG,SAAS,CAAC;QACjC,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;KAChC;CACF;AAyBD,OAAO,EAAE,oBAAoB,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The AppError class extends the built-in Error class in JavaScript,
|
|
3
|
+
* providing additional properties to manage custom application errors.
|
|
4
|
+
* It captures detailed information about the error, including a status code
|
|
5
|
+
* and an optional service identifier, which can be useful for error handling
|
|
6
|
+
* and logging within the application.
|
|
7
|
+
*
|
|
8
|
+
* @extends {Error}
|
|
9
|
+
*/
|
|
10
|
+
declare class AppError extends Error {
|
|
11
|
+
/**
|
|
12
|
+
* The HTTP status code associated with the error.
|
|
13
|
+
* Commonly used to define the HTTP response status code.
|
|
14
|
+
*/
|
|
15
|
+
statusCode: number;
|
|
16
|
+
/**
|
|
17
|
+
* The service identifier associated with the error.
|
|
18
|
+
* This property can be used to trace the origin of the error in the application.
|
|
19
|
+
* It is optional and can be left undefined.
|
|
20
|
+
*/
|
|
21
|
+
service?: string;
|
|
22
|
+
/**
|
|
23
|
+
* @param {string} message - The error message to be displayed.
|
|
24
|
+
* @param {number} [statusCode=500] - The HTTP status code associated with the error (default: 500).
|
|
25
|
+
* @param {string} [service] - The service identifier associated with the error.
|
|
26
|
+
*/
|
|
27
|
+
constructor(message: string, statusCode?: number, service?: string);
|
|
28
|
+
}
|
|
29
|
+
export { AppError };
|
|
30
|
+
//# sourceMappingURL=app-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/app-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAM,QAAS,SAAQ,KAAK;IAC1B;;;OAGG;IACI,UAAU,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,MAAM;CAMxE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { NextFunction, Request, Response } from "express";
|
|
2
|
-
import { IAppError } from "./report";
|
|
3
2
|
/**
|
|
4
3
|
* errorHandler is a custom Express error-handling middleware function.
|
|
5
4
|
* It logs the error, sets the status code, and sends a JSON response containing the status code and error message.
|
|
@@ -8,6 +7,6 @@ import { IAppError } from "./report";
|
|
|
8
7
|
* @param res - The Express response object.
|
|
9
8
|
* @param next - The Express next function for passing control to the next middleware function.
|
|
10
9
|
*/
|
|
11
|
-
declare function
|
|
12
|
-
export default
|
|
10
|
+
declare function defaultErrorHandler(error: Error, req: Request, res: Response, next: NextFunction): void;
|
|
11
|
+
export default defaultErrorHandler;
|
|
13
12
|
//# sourceMappingURL=error-handler-middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler-middleware.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/error-handler-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"error-handler-middleware.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/error-handler-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI1D;;;;;;;GAOG;AACH,iBAAS,mBAAmB,CAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EAEb,IAAI,EAAE,YAAY,GACjB,IAAI,CAWN;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|