@bool-ts/core 1.1.0 → 1.1.2
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/bun.lockb +0 -0
- package/dist/decorators/controller.js +10 -6
- package/dist/decorators/http.js +34 -25
- package/dist/decorators/index.js +23 -5
- package/dist/decorators/inject.js +9 -5
- package/dist/decorators/injectable.js +8 -4
- package/dist/decorators/module.js +8 -4
- package/dist/hooks/factory.js +48 -21
- package/dist/hooks/index.js +7 -2
- package/dist/hooks/injector.js +10 -7
- package/dist/http/clientError.js +7 -3
- package/dist/http/index.js +25 -7
- package/dist/http/serverError.js +7 -3
- package/dist/index.js +21 -5
- package/dist/interfaces/index.js +3 -1
- package/package.json +2 -2
- package/tsconfig.json +1 -1
package/bun.lockb
CHANGED
|
Binary file
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Controller = exports.controllerKey = void 0;
|
|
4
|
+
const injectable_1 = require("./injectable");
|
|
5
|
+
exports.controllerKey = "__bool:controller__";
|
|
6
|
+
const Controller = (prefix) => (target, context) => {
|
|
7
|
+
Reflect.defineMetadata(exports.controllerKey, !prefix.startsWith("/") ? `/${prefix}` : prefix, target);
|
|
8
|
+
Reflect.defineMetadata(injectable_1.injectableKey, undefined, target);
|
|
6
9
|
return target;
|
|
7
10
|
};
|
|
8
|
-
|
|
11
|
+
exports.Controller = Controller;
|
|
12
|
+
exports.default = exports.Controller;
|
package/dist/decorators/http.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Options = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.controllerRoutesKey = void 0;
|
|
4
|
+
exports.controllerRoutesKey = "__bool:controller.routes__";
|
|
2
5
|
/**
|
|
3
6
|
*
|
|
4
7
|
* @param path
|
|
5
8
|
* @returns
|
|
6
9
|
*/
|
|
7
|
-
|
|
10
|
+
const Get = (path = "/") => (target, methodName, descriptor) => {
|
|
8
11
|
if (typeof descriptor.value !== "function") {
|
|
9
12
|
throw Error("Get decorator only use for method.");
|
|
10
13
|
}
|
|
11
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
12
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
14
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
15
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
13
16
|
{
|
|
14
17
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
15
18
|
httpMethod: "GET",
|
|
@@ -18,17 +21,18 @@ export const Get = (path = "/") => (target, methodName, descriptor) => {
|
|
|
18
21
|
}
|
|
19
22
|
], target.constructor);
|
|
20
23
|
};
|
|
24
|
+
exports.Get = Get;
|
|
21
25
|
/**
|
|
22
26
|
*
|
|
23
27
|
* @param path
|
|
24
28
|
* @returns
|
|
25
29
|
*/
|
|
26
|
-
|
|
30
|
+
const Post = (path = "/") => (target, methodName, descriptor) => {
|
|
27
31
|
if (typeof descriptor.value !== "function") {
|
|
28
32
|
throw Error("Post decorator only use for method.");
|
|
29
33
|
}
|
|
30
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
31
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
34
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
35
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
32
36
|
{
|
|
33
37
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
34
38
|
httpMethod: "POST",
|
|
@@ -37,17 +41,18 @@ export const Post = (path = "/") => (target, methodName, descriptor) => {
|
|
|
37
41
|
}
|
|
38
42
|
], target.constructor);
|
|
39
43
|
};
|
|
44
|
+
exports.Post = Post;
|
|
40
45
|
/**
|
|
41
46
|
*
|
|
42
47
|
* @param path
|
|
43
48
|
* @returns
|
|
44
49
|
*/
|
|
45
|
-
|
|
50
|
+
const Put = (path = "/") => (target, methodName, descriptor) => {
|
|
46
51
|
if (typeof descriptor.value !== "function") {
|
|
47
52
|
throw Error("Put decorator only use for method.");
|
|
48
53
|
}
|
|
49
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
50
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
54
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
55
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
51
56
|
{
|
|
52
57
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
53
58
|
httpMethod: "PUT",
|
|
@@ -56,17 +61,18 @@ export const Put = (path = "/") => (target, methodName, descriptor) => {
|
|
|
56
61
|
}
|
|
57
62
|
], target.constructor);
|
|
58
63
|
};
|
|
64
|
+
exports.Put = Put;
|
|
59
65
|
/**
|
|
60
66
|
*
|
|
61
67
|
* @param path
|
|
62
68
|
* @returns
|
|
63
69
|
*/
|
|
64
|
-
|
|
70
|
+
const Patch = (path = "/") => (target, methodName, descriptor) => {
|
|
65
71
|
if (typeof descriptor.value !== "function") {
|
|
66
72
|
throw Error("Patch decorator only use for method.");
|
|
67
73
|
}
|
|
68
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
69
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
74
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
75
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
70
76
|
{
|
|
71
77
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
72
78
|
httpMethod: "PATCH",
|
|
@@ -75,17 +81,18 @@ export const Patch = (path = "/") => (target, methodName, descriptor) => {
|
|
|
75
81
|
}
|
|
76
82
|
], target.constructor);
|
|
77
83
|
};
|
|
84
|
+
exports.Patch = Patch;
|
|
78
85
|
/**
|
|
79
86
|
*
|
|
80
87
|
* @param path
|
|
81
88
|
* @returns
|
|
82
89
|
*/
|
|
83
|
-
|
|
90
|
+
const Delete = (path = "/") => (target, methodName, descriptor) => {
|
|
84
91
|
if (typeof descriptor.value !== "function") {
|
|
85
92
|
throw Error("Delete decorator only use for method.");
|
|
86
93
|
}
|
|
87
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
88
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
94
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
95
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
89
96
|
{
|
|
90
97
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
91
98
|
httpMethod: "DELETE",
|
|
@@ -94,17 +101,18 @@ export const Delete = (path = "/") => (target, methodName, descriptor) => {
|
|
|
94
101
|
}
|
|
95
102
|
], target.constructor);
|
|
96
103
|
};
|
|
104
|
+
exports.Delete = Delete;
|
|
97
105
|
/**
|
|
98
106
|
*
|
|
99
107
|
* @param path
|
|
100
108
|
* @returns
|
|
101
109
|
*/
|
|
102
|
-
|
|
110
|
+
const Options = (path = "/") => (target, methodName, descriptor) => {
|
|
103
111
|
if (typeof descriptor.value !== "function") {
|
|
104
112
|
throw Error("Options decorator only use for method.");
|
|
105
113
|
}
|
|
106
|
-
Reflect.defineMetadata(controllerRoutesKey, [
|
|
107
|
-
...Reflect.getOwnMetadata(controllerRoutesKey, target.constructor) || [],
|
|
114
|
+
Reflect.defineMetadata(exports.controllerRoutesKey, [
|
|
115
|
+
...Reflect.getOwnMetadata(exports.controllerRoutesKey, target.constructor) || [],
|
|
108
116
|
{
|
|
109
117
|
path: !path.startsWith("/") ? `/${path}` : path,
|
|
110
118
|
httpMethod: "OPTIONS",
|
|
@@ -113,10 +121,11 @@ export const Options = (path = "/") => (target, methodName, descriptor) => {
|
|
|
113
121
|
}
|
|
114
122
|
], target.constructor);
|
|
115
123
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
exports.Options = Options;
|
|
125
|
+
exports.default = {
|
|
126
|
+
Get: exports.Get,
|
|
127
|
+
Post: exports.Post,
|
|
128
|
+
Put: exports.Put,
|
|
129
|
+
Patch: exports.Patch,
|
|
130
|
+
Delete: exports.Delete
|
|
122
131
|
};
|
package/dist/decorators/index.js
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.controllerRoutesKey = exports.Options = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.moduleKey = exports.Module = exports.injectableKey = exports.Injectable = exports.injectKey = exports.Inject = exports.controllerKey = exports.Controller = void 0;
|
|
4
|
+
var controller_1 = require("./controller");
|
|
5
|
+
Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return controller_1.Controller; } });
|
|
6
|
+
Object.defineProperty(exports, "controllerKey", { enumerable: true, get: function () { return controller_1.controllerKey; } });
|
|
7
|
+
var inject_1 = require("./inject");
|
|
8
|
+
Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return inject_1.Inject; } });
|
|
9
|
+
Object.defineProperty(exports, "injectKey", { enumerable: true, get: function () { return inject_1.injectKey; } });
|
|
10
|
+
var injectable_1 = require("./injectable");
|
|
11
|
+
Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return injectable_1.Injectable; } });
|
|
12
|
+
Object.defineProperty(exports, "injectableKey", { enumerable: true, get: function () { return injectable_1.injectableKey; } });
|
|
13
|
+
var module_1 = require("./module");
|
|
14
|
+
Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return module_1.Module; } });
|
|
15
|
+
Object.defineProperty(exports, "moduleKey", { enumerable: true, get: function () { return module_1.moduleKey; } });
|
|
16
|
+
var http_1 = require("./http");
|
|
17
|
+
Object.defineProperty(exports, "Get", { enumerable: true, get: function () { return http_1.Get; } });
|
|
18
|
+
Object.defineProperty(exports, "Post", { enumerable: true, get: function () { return http_1.Post; } });
|
|
19
|
+
Object.defineProperty(exports, "Put", { enumerable: true, get: function () { return http_1.Put; } });
|
|
20
|
+
Object.defineProperty(exports, "Patch", { enumerable: true, get: function () { return http_1.Patch; } });
|
|
21
|
+
Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return http_1.Delete; } });
|
|
22
|
+
Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return http_1.Options; } });
|
|
23
|
+
Object.defineProperty(exports, "controllerRoutesKey", { enumerable: true, get: function () { return http_1.controllerRoutesKey; } });
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Inject = exports.injectKey = void 0;
|
|
4
|
+
exports.injectKey = "design:paramtypes";
|
|
5
|
+
const Inject = (classDefinition) => {
|
|
3
6
|
return (target, parameterName, parameterIndex) => {
|
|
4
|
-
const designParameterTypes = Reflect.getMetadata(injectKey, target) || [];
|
|
7
|
+
const designParameterTypes = Reflect.getMetadata(exports.injectKey, target) || [];
|
|
5
8
|
designParameterTypes[parameterIndex] = classDefinition;
|
|
6
|
-
Reflect.defineMetadata(injectKey, designParameterTypes, target);
|
|
9
|
+
Reflect.defineMetadata(exports.injectKey, designParameterTypes, target);
|
|
7
10
|
};
|
|
8
11
|
};
|
|
9
|
-
|
|
12
|
+
exports.Inject = Inject;
|
|
13
|
+
exports.default = exports.Inject;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Injectable = exports.injectableKey = void 0;
|
|
4
|
+
exports.injectableKey = "__bool:injectable__";
|
|
5
|
+
const Injectable = () => (target, context) => {
|
|
6
|
+
Reflect.defineMetadata(exports.injectableKey, undefined, target);
|
|
4
7
|
return target;
|
|
5
8
|
};
|
|
6
|
-
|
|
9
|
+
exports.Injectable = Injectable;
|
|
10
|
+
exports.default = exports.Injectable;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Module = exports.moduleKey = void 0;
|
|
4
|
+
exports.moduleKey = "__bool:module__";
|
|
5
|
+
const Module = (args) => (target, context) => {
|
|
6
|
+
Reflect.defineMetadata(exports.moduleKey, args, target);
|
|
4
7
|
return target;
|
|
5
8
|
};
|
|
6
|
-
|
|
9
|
+
exports.Module = Module;
|
|
10
|
+
exports.default = exports.Module;
|
package/dist/hooks/factory.js
CHANGED
|
@@ -1,26 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.BoolFactory = void 0;
|
|
27
|
+
require("reflect-metadata");
|
|
28
|
+
require("colors");
|
|
29
|
+
const Qs = __importStar(require("qs"));
|
|
30
|
+
const ResponseTime = __importStar(require("response-time"));
|
|
31
|
+
const decorators_1 = require("../decorators");
|
|
32
|
+
const express_1 = __importStar(require("express"));
|
|
33
|
+
const injector_1 = require("./injector");
|
|
34
|
+
const http_1 = require("../http");
|
|
9
35
|
/**
|
|
10
36
|
*
|
|
11
37
|
* @param target
|
|
12
38
|
* @param router
|
|
13
39
|
*/
|
|
14
|
-
const controllerCreator = (target, router = Router()) => {
|
|
15
|
-
if (!Reflect.getOwnMetadataKeys(target).includes(controllerKey)) {
|
|
40
|
+
const controllerCreator = (target, router = (0, express_1.Router)()) => {
|
|
41
|
+
if (!Reflect.getOwnMetadataKeys(target).includes(decorators_1.controllerKey)) {
|
|
16
42
|
throw Error(`${target.name} is not a controller.`);
|
|
17
43
|
}
|
|
18
|
-
const controller = Injector.get(target);
|
|
44
|
+
const controller = injector_1.Injector.get(target);
|
|
19
45
|
if (!controller) {
|
|
20
46
|
throw Error("Can not initialize controller.");
|
|
21
47
|
}
|
|
22
|
-
const controllerMetadata = Reflect.getOwnMetadata(controllerKey, target) || "/";
|
|
23
|
-
const routesMetadata = (Reflect.getOwnMetadata(controllerRoutesKey, target) || []);
|
|
48
|
+
const controllerMetadata = Reflect.getOwnMetadata(decorators_1.controllerKey, target) || "/";
|
|
49
|
+
const routesMetadata = (Reflect.getOwnMetadata(decorators_1.controllerRoutesKey, target) || []);
|
|
24
50
|
const innerRouter = router.route(controllerMetadata);
|
|
25
51
|
routesMetadata.forEach(route => {
|
|
26
52
|
if (typeof route.descriptor.value !== "function") {
|
|
@@ -47,18 +73,18 @@ const controllerCreator = (target, router = Router()) => {
|
|
|
47
73
|
*
|
|
48
74
|
* @param target
|
|
49
75
|
*/
|
|
50
|
-
|
|
51
|
-
if (!Reflect.getOwnMetadataKeys(target).includes(moduleKey)) {
|
|
76
|
+
const BoolFactory = (target, options) => {
|
|
77
|
+
if (!Reflect.getOwnMetadataKeys(target).includes(decorators_1.moduleKey)) {
|
|
52
78
|
throw Error(`${target.name} is not a module.`);
|
|
53
79
|
}
|
|
54
|
-
const metadata = Reflect.getOwnMetadata(moduleKey, target);
|
|
80
|
+
const metadata = Reflect.getOwnMetadata(decorators_1.moduleKey, target);
|
|
55
81
|
const routers = !metadata?.controllers ? [] : metadata.controllers.map(controllerConstructor => controllerCreator(controllerConstructor));
|
|
56
82
|
const allowOrigins = !metadata?.allowOrigins ?
|
|
57
83
|
["*"] : typeof metadata.allowOrigins !== "string" ?
|
|
58
84
|
metadata.allowOrigins : [metadata.allowOrigins];
|
|
59
85
|
const allowMethods = !metadata?.allowMethods ?
|
|
60
86
|
["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"] : metadata.allowMethods;
|
|
61
|
-
const app =
|
|
87
|
+
const app = (0, express_1.default)();
|
|
62
88
|
const factoryOptions = Object.freeze({
|
|
63
89
|
allowLogsMethods: !options?.log?.methods ? ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"] : options.log.methods
|
|
64
90
|
});
|
|
@@ -67,14 +93,14 @@ export const BoolFactory = (target, options) => {
|
|
|
67
93
|
depth: !options?.queryParser?.depth || options.queryParser.depth < 0 ? 10 : options.queryParser.depth,
|
|
68
94
|
arrayLimit: !options?.queryParser?.arrayLimit || options.queryParser.arrayLimit < 0 ? 50 : options.queryParser.arrayLimit
|
|
69
95
|
}));
|
|
70
|
-
app.use(urlencoded({
|
|
96
|
+
app.use((0, express_1.urlencoded)({
|
|
71
97
|
extended: true,
|
|
72
98
|
inflate: true,
|
|
73
99
|
limit: "1mb",
|
|
74
100
|
parameterLimit: 20,
|
|
75
101
|
type: "application/x-www-form-urlencoded",
|
|
76
102
|
verify: undefined
|
|
77
|
-
}), json({
|
|
103
|
+
}), (0, express_1.json)({
|
|
78
104
|
inflate: true,
|
|
79
105
|
limit: "5mb",
|
|
80
106
|
reviver: undefined,
|
|
@@ -98,7 +124,7 @@ export const BoolFactory = (target, options) => {
|
|
|
98
124
|
},
|
|
99
125
|
// Error catcher
|
|
100
126
|
(err, req, res, next) => {
|
|
101
|
-
errorInfer(res, err);
|
|
127
|
+
(0, http_1.errorInfer)(res, err);
|
|
102
128
|
if (!options?.debug) {
|
|
103
129
|
return;
|
|
104
130
|
}
|
|
@@ -141,4 +167,5 @@ export const BoolFactory = (target, options) => {
|
|
|
141
167
|
}
|
|
142
168
|
return app;
|
|
143
169
|
};
|
|
144
|
-
|
|
170
|
+
exports.BoolFactory = BoolFactory;
|
|
171
|
+
exports.default = exports.BoolFactory;
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Injector = exports.BoolFactory = void 0;
|
|
4
|
+
var factory_1 = require("./factory");
|
|
5
|
+
Object.defineProperty(exports, "BoolFactory", { enumerable: true, get: function () { return factory_1.BoolFactory; } });
|
|
6
|
+
var injector_1 = require("./injector");
|
|
7
|
+
Object.defineProperty(exports, "Injector", { enumerable: true, get: function () { return injector_1.Injector; } });
|
package/dist/hooks/injector.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Injector = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const decorators_1 = require("../decorators");
|
|
6
|
+
exports.Injector = new class {
|
|
4
7
|
_mapper = new Map();
|
|
5
8
|
/**
|
|
6
9
|
*
|
|
@@ -11,15 +14,15 @@ export const Injector = new class {
|
|
|
11
14
|
return this._mapper.get(classDefinition);
|
|
12
15
|
}
|
|
13
16
|
const ownMetadataKeys = Reflect.getMetadataKeys(classDefinition);
|
|
14
|
-
if (!ownMetadataKeys.includes(injectableKey)) {
|
|
17
|
+
if (!ownMetadataKeys.includes(decorators_1.injectableKey)) {
|
|
15
18
|
throw Error("Missing dependency declaration, please check @Injectable() used on dependency(ies).");
|
|
16
19
|
}
|
|
17
20
|
// Initialize dependencies injection
|
|
18
|
-
const dependencies = Reflect.getOwnMetadata(injectKey, classDefinition) || [];
|
|
19
|
-
const injections = dependencies.map(dependency => Injector.get(dependency));
|
|
21
|
+
const dependencies = Reflect.getOwnMetadata(decorators_1.injectKey, classDefinition) || [];
|
|
22
|
+
const injections = dependencies.map(dependency => exports.Injector.get(dependency));
|
|
20
23
|
const instance = new classDefinition(...injections);
|
|
21
24
|
this._mapper.set(classDefinition, instance);
|
|
22
25
|
return instance;
|
|
23
26
|
}
|
|
24
27
|
};
|
|
25
|
-
|
|
28
|
+
exports.default = exports.Injector;
|
package/dist/http/clientError.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpClientError = exports.httpClientErrors = void 0;
|
|
4
|
+
exports.httpClientErrors = Object.freeze({
|
|
2
5
|
400: "BAD_REQUEST",
|
|
3
6
|
401: "UNAUTHORIZED",
|
|
4
7
|
402: "PAYMENT_REQUIRED",
|
|
@@ -29,14 +32,15 @@ export const httpClientErrors = Object.freeze({
|
|
|
29
32
|
431: "REQUEST_HEADER_FIELDS_TOO_LARGE",
|
|
30
33
|
451: "UNAVAILABLE_FOR_LEGAL_REASONS"
|
|
31
34
|
});
|
|
32
|
-
|
|
35
|
+
class HttpClientError extends Error {
|
|
33
36
|
httpCode;
|
|
34
37
|
message;
|
|
35
38
|
data;
|
|
36
39
|
constructor({ httpCode, data }) {
|
|
37
40
|
super();
|
|
38
41
|
this.httpCode = httpCode;
|
|
39
|
-
this.message = httpClientErrors[httpCode];
|
|
42
|
+
this.message = exports.httpClientErrors[httpCode];
|
|
40
43
|
this.data = data;
|
|
41
44
|
}
|
|
42
45
|
}
|
|
46
|
+
exports.HttpClientError = HttpClientError;
|
package/dist/http/index.js
CHANGED
|
@@ -1,15 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.errorInfer = void 0;
|
|
18
|
+
const clientError_1 = require("./clientError");
|
|
19
|
+
const serverError_1 = require("./serverError");
|
|
20
|
+
const errorInfer = (res, data) => {
|
|
4
21
|
if (res.headersSent) {
|
|
5
22
|
return;
|
|
6
23
|
}
|
|
7
24
|
try {
|
|
8
|
-
if (data instanceof HttpClientError) {
|
|
25
|
+
if (data instanceof clientError_1.HttpClientError) {
|
|
9
26
|
res.status(data.httpCode).json(data);
|
|
10
27
|
return;
|
|
11
28
|
}
|
|
12
|
-
if (data instanceof HttpServerError) {
|
|
29
|
+
if (data instanceof serverError_1.HttpServerError) {
|
|
13
30
|
res.status(data.httpCode).json(data);
|
|
14
31
|
return;
|
|
15
32
|
}
|
|
@@ -54,5 +71,6 @@ export const errorInfer = (res, data) => {
|
|
|
54
71
|
res.end();
|
|
55
72
|
}
|
|
56
73
|
};
|
|
57
|
-
|
|
58
|
-
|
|
74
|
+
exports.errorInfer = errorInfer;
|
|
75
|
+
__exportStar(require("./clientError"), exports);
|
|
76
|
+
__exportStar(require("./serverError"), exports);
|
package/dist/http/serverError.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpServerError = exports.httpServerErrors = void 0;
|
|
4
|
+
exports.httpServerErrors = Object.freeze({
|
|
2
5
|
500: "INTERNAL_SERVER_ERROR",
|
|
3
6
|
501: "NOT_IMPLEMENTED",
|
|
4
7
|
502: "BAD_GATEWAY",
|
|
@@ -11,14 +14,15 @@ export const httpServerErrors = Object.freeze({
|
|
|
11
14
|
510: "NOT_EXTENDED",
|
|
12
15
|
511: "NETWORK_AUTHENTICATION_REQUIRED"
|
|
13
16
|
});
|
|
14
|
-
|
|
17
|
+
class HttpServerError extends Error {
|
|
15
18
|
httpCode;
|
|
16
19
|
message;
|
|
17
20
|
data;
|
|
18
21
|
constructor({ httpCode, data }) {
|
|
19
22
|
super();
|
|
20
23
|
this.httpCode = httpCode;
|
|
21
|
-
this.message = httpServerErrors[httpCode];
|
|
24
|
+
this.message = exports.httpServerErrors[httpCode];
|
|
22
25
|
this.data = data;
|
|
23
26
|
}
|
|
24
27
|
}
|
|
28
|
+
exports.HttpServerError = HttpServerError;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
require("reflect-metadata");
|
|
18
|
+
__exportStar(require("./interfaces"), exports);
|
|
19
|
+
__exportStar(require("./hooks"), exports);
|
|
20
|
+
__exportStar(require("./decorators"), exports);
|
|
21
|
+
__exportStar(require("./http"), exports);
|
package/dist/interfaces/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bool-ts/core",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"homepage": "https://github.com/BoolTS/core#readme",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"colors": "^1.4.0",
|
|
22
|
-
"express": "
|
|
22
|
+
"express": "^5.0.0-beta.3",
|
|
23
23
|
"qs": "^6.12.1",
|
|
24
24
|
"reflect-metadata": "^0.2.2",
|
|
25
25
|
"response-time": "^2.3.2"
|
package/tsconfig.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
|
23
23
|
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
|
24
24
|
/* Modules */
|
|
25
|
-
"module": "
|
|
25
|
+
"module": "commonjs", /* Specify what module code is generated. */
|
|
26
26
|
"rootDir": "./src", /* Specify the root folder within your source files. */
|
|
27
27
|
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
|
28
28
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|