@zenofolio/hyper-decor 1.0.4 → 1.0.8
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/.agent/rules/philosophy.md +103 -0
- package/.agent/rules/writing.md +32 -0
- package/README.md +107 -142
- package/dist/__internals/constants.d.ts +1 -58
- package/dist/__internals/constants.js +3 -65
- package/dist/__internals/helpers/lifecycle.helper.d.ts +3 -0
- package/dist/__internals/helpers/lifecycle.helper.js +25 -0
- package/dist/__internals/helpers/merge-metadata.d.ts +2 -3
- package/dist/__internals/helpers/merge-metadata.js +43 -23
- package/dist/__internals/helpers/prepare.helper.d.ts +5 -0
- package/dist/__internals/helpers/prepare.helper.js +392 -0
- package/dist/__internals/stores/hyper.store.d.ts +5 -0
- package/dist/__internals/stores/hyper.store.js +5 -0
- package/dist/__internals/stores/index.d.ts +4 -15
- package/dist/__internals/stores/index.js +18 -35
- package/dist/__internals/stores/meta.store.d.ts +34 -0
- package/dist/__internals/stores/meta.store.js +107 -0
- package/dist/__internals/stores/scope.store.d.ts +14 -0
- package/dist/__internals/stores/scope.store.js +29 -0
- package/dist/__internals/stores/serivces.store.d.ts +1 -0
- package/dist/__internals/stores/{store.interface.js → serivces.store.js} +2 -0
- package/dist/__internals/transform/middleware.transform.d.ts +3 -0
- package/dist/__internals/transform/middleware.transform.js +19 -0
- package/dist/__internals/transform/role.transform.d.ts +1 -1
- package/dist/__internals/transform/role.transform.js +10 -7
- package/dist/__internals/transform/scope.transfrom.d.ts +5 -7
- package/dist/__internals/transform/scope.transfrom.js +53 -39
- package/dist/__internals/transform/transform.registry.d.ts +33 -0
- package/dist/__internals/transform/transform.registry.js +59 -0
- package/dist/__internals/types.d.ts +53 -4
- package/dist/__internals/utils/function.util.d.ts +1 -4
- package/dist/__internals/utils/function.util.js +22 -10
- package/dist/common/bootstrap.d.ts +6 -2
- package/dist/common/bootstrap.js +51 -8
- package/dist/common/helpers/index.d.ts +1 -0
- package/dist/common/helpers/index.js +1 -0
- package/dist/common/helpers/scopes.d.ts +3 -3
- package/dist/common/helpers/scopes.js +7 -8
- package/dist/common/helpers/state.d.ts +17 -0
- package/dist/common/helpers/state.js +44 -0
- package/dist/common/message-bus.d.ts +11 -0
- package/dist/common/message-bus.js +51 -0
- package/dist/common/testing.d.ts +56 -0
- package/dist/common/testing.js +193 -0
- package/dist/common/transport.d.ts +10 -0
- package/dist/common/transport.js +59 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -1
- package/dist/decorators.d.ts +1 -0
- package/dist/{common/openapi/index.js → decorators.js} +1 -2
- package/dist/extension.js +11 -2
- package/dist/index.d.ts +11 -3
- package/dist/index.js +11 -3
- package/dist/lib/event/meta.store.d.ts +4 -0
- package/dist/lib/event/meta.store.js +5 -0
- package/dist/lib/openapi/collectors/class.collector.d.ts +5 -0
- package/dist/lib/openapi/collectors/class.collector.js +10 -0
- package/dist/lib/openapi/collectors/index.d.ts +3 -0
- package/dist/lib/openapi/collectors/index.js +19 -0
- package/dist/lib/openapi/collectors/method.collector.d.ts +7 -0
- package/dist/lib/openapi/collectors/method.collector.js +101 -0
- package/dist/lib/openapi/collectors/schema.collector.d.ts +6 -0
- package/dist/lib/openapi/collectors/schema.collector.js +29 -0
- package/dist/lib/openapi/constants.d.ts +47 -0
- package/dist/lib/openapi/constants.js +61 -0
- package/dist/lib/openapi/decorators.d.ts +16 -0
- package/dist/lib/openapi/decorators.js +93 -0
- package/dist/lib/openapi/index.d.ts +30 -0
- package/dist/lib/openapi/index.js +136 -0
- package/dist/lib/openapi/metadata.d.ts +7 -0
- package/dist/lib/openapi/metadata.js +8 -0
- package/dist/lib/openapi/metadata.registry.d.ts +29 -0
- package/dist/lib/openapi/metadata.registry.js +41 -0
- package/dist/lib/openapi/types.d.ts +131 -0
- package/dist/lib/server/decorators/File.d.ts +37 -0
- package/dist/{decorators → lib/server/decorators}/File.js +62 -75
- package/dist/lib/server/decorators/Http.d.ts +12 -0
- package/dist/lib/server/decorators/Http.js +56 -0
- package/dist/lib/server/decorators/HyperApp.d.ts +7 -0
- package/dist/lib/server/decorators/HyperApp.js +14 -0
- package/dist/lib/server/decorators/HyperController.d.ts +6 -0
- package/dist/lib/server/decorators/HyperController.js +15 -0
- package/dist/lib/server/decorators/HyperModule.d.ts +6 -0
- package/dist/lib/server/decorators/HyperModule.js +13 -0
- package/dist/lib/server/decorators/HyperService.d.ts +12 -0
- package/dist/lib/server/decorators/HyperService.js +30 -0
- package/dist/lib/server/decorators/Messaging.d.ts +8 -0
- package/dist/lib/server/decorators/Messaging.js +19 -0
- package/dist/lib/server/decorators/Middleware.d.ts +18 -0
- package/dist/lib/server/decorators/Middleware.js +52 -0
- package/dist/lib/server/decorators/Output.d.ts +6 -0
- package/dist/lib/server/decorators/Output.js +14 -0
- package/dist/lib/server/decorators/Pass.d.ts +10 -0
- package/dist/lib/server/decorators/Pass.js +13 -0
- package/dist/lib/server/decorators/Role.d.ts +7 -0
- package/dist/lib/server/decorators/Role.js +14 -0
- package/dist/lib/server/decorators/Routes.d.ts +14 -0
- package/dist/lib/server/decorators/Routes.js +39 -0
- package/dist/lib/server/decorators/Scope.d.ts +7 -0
- package/dist/lib/server/decorators/Scope.js +14 -0
- package/dist/{decorators → lib/server/decorators}/index.d.ts +9 -4
- package/dist/{decorators → lib/server/decorators}/index.js +9 -4
- package/dist/lib/server/decorators/metadata.d.ts +1 -0
- package/dist/lib/server/decorators/metadata.js +5 -0
- package/dist/lib/server/decorators/types.d.ts +125 -0
- package/dist/lib/server/decorators/types.js +6 -0
- package/dist/{exeptions → lib/server/exeptions}/HyperException.d.ts +2 -1
- package/dist/{exeptions → lib/server/exeptions}/HyperException.js +2 -1
- package/dist/{exeptions → lib/server/exeptions}/HyperFileException.js +1 -1
- package/dist/{exeptions → lib/server/exeptions}/NotRoleException.js +1 -1
- package/dist/{exeptions → lib/server/exeptions}/NotScopeException.js +1 -1
- package/dist/lib/tree/tree.d.ts +36 -0
- package/dist/lib/tree/tree.js +106 -0
- package/dist/type.d.ts +13 -2
- package/hyper-express-decorators.d.ts +1 -0
- package/package.json +81 -60
- package/scripts/clean.js +56 -0
- package/scripts/test-server.ts +85 -0
- package/tsconfig.json +18 -13
- package/vitest.config.mjs +30 -0
- package/.mocharc.js +0 -5
- package/dist/__internals/creators/request.creator.d.ts +0 -12
- package/dist/__internals/creators/request.creator.js +0 -53
- package/dist/__internals/creators/routes.creator.d.ts +0 -10
- package/dist/__internals/creators/routes.creator.js +0 -37
- package/dist/__internals/decorator-base.d.ts +0 -30
- package/dist/__internals/decorator-base.js +0 -86
- package/dist/__internals/store.d.ts +0 -10
- package/dist/__internals/store.js +0 -17
- package/dist/__internals/stores/middleware.store.d.ts +0 -7
- package/dist/__internals/stores/middleware.store.js +0 -19
- package/dist/__internals/stores/params.store.d.ts +0 -21
- package/dist/__internals/stores/params.store.js +0 -65
- package/dist/__internals/stores/routes.store.d.ts +0 -17
- package/dist/__internals/stores/routes.store.js +0 -43
- package/dist/__internals/stores/store.interface.d.ts +0 -8
- package/dist/__internals/transform/method.transform.d.ts +0 -2
- package/dist/__internals/transform/method.transform.js +0 -20
- package/dist/__internals/transform/pass.transfrom.d.ts +0 -1
- package/dist/__internals/transform/pass.transfrom.js +0 -2
- package/dist/__internals/utils/mixin.utils.d.ts +0 -11
- package/dist/__internals/utils/mixin.utils.js +0 -34
- package/dist/__internals/utils/router.d.ts +0 -1
- package/dist/__internals/utils/router.js +0 -2
- package/dist/common/openapi/collect-class-data.d.ts +0 -21
- package/dist/common/openapi/collect-class-data.js +0 -45
- package/dist/common/openapi/collect-function-data.d.ts +0 -32
- package/dist/common/openapi/collect-function-data.js +0 -70
- package/dist/common/openapi/index.d.ts +0 -2
- package/dist/decorators/File.d.ts +0 -65
- package/dist/decorators/Http.d.ts +0 -55
- package/dist/decorators/Http.js +0 -93
- package/dist/decorators/HyperApp.d.ts +0 -7
- package/dist/decorators/HyperApp.js +0 -262
- package/dist/decorators/HyperController.d.ts +0 -2
- package/dist/decorators/HyperController.js +0 -19
- package/dist/decorators/HyperModule.d.ts +0 -5
- package/dist/decorators/HyperModule.js +0 -14
- package/dist/decorators/Middleware.d.ts +0 -24
- package/dist/decorators/Middleware.js +0 -51
- package/dist/decorators/Pass.d.ts +0 -12
- package/dist/decorators/Pass.js +0 -29
- package/dist/decorators/Role.d.ts +0 -6
- package/dist/decorators/Role.js +0 -34
- package/dist/decorators/Routes.d.ts +0 -14
- package/dist/decorators/Routes.js +0 -21
- package/dist/decorators/Scope.d.ts +0 -6
- package/dist/decorators/Scope.js +0 -25
- package/dist/decorators/types.d.ts +0 -89
- /package/dist/{decorators → lib/openapi}/types.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicateControllerPathException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicateControllerPathException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicatedException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicatedException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicatedHandlerException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/DuplicatedHandlerException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/HyperFileException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/MethodNotFountException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/MethodNotFountException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/NotPropertyException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/NotPropertyException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/NotRoleException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/NotScopeException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/WrongPlaceException.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/WrongPlaceException.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/index.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/index.js +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/types.d.ts +0 -0
- /package/dist/{exeptions → lib/server/exeptions}/types.js +0 -0
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.HyperApp = void 0;
|
|
16
|
-
require("reflect-metadata");
|
|
17
|
-
const constants_1 = require("../__internals/constants");
|
|
18
|
-
const hyper_express_1 = require("hyper-express");
|
|
19
|
-
const decorator_base_1 = require("../__internals/decorator-base");
|
|
20
|
-
const path_util_1 = require("../__internals/utils/path.util");
|
|
21
|
-
const scope_transfrom_1 = __importDefault(require("../__internals/transform/scope.transfrom"));
|
|
22
|
-
const role_transform_1 = __importDefault(require("../__internals/transform/role.transform"));
|
|
23
|
-
const object_util_1 = require("../__internals/utils/object.util");
|
|
24
|
-
const merge_metadata_1 = require("../__internals/helpers/merge-metadata");
|
|
25
|
-
const tsyringe_1 = require("tsyringe");
|
|
26
|
-
/**
|
|
27
|
-
* Decorator to define the main application class with assigned modules.
|
|
28
|
-
* @param modules - List of modules to be used in the application.
|
|
29
|
-
*/
|
|
30
|
-
const HyperApp = (options) => (0, decorator_base_1.DecoratorHelper)({
|
|
31
|
-
type: constants_1.KEY_TYPE_APP,
|
|
32
|
-
key: constants_1.KEY_PARAMS_APP,
|
|
33
|
-
options: options !== null && options !== void 0 ? options : { modules: [] },
|
|
34
|
-
}, (options, Target) => {
|
|
35
|
-
return class extends hyper_express_1.Server {
|
|
36
|
-
constructor(...args) {
|
|
37
|
-
super(options.options);
|
|
38
|
-
this.listArguments = [];
|
|
39
|
-
this.storeLogs = {};
|
|
40
|
-
this.listArguments = args;
|
|
41
|
-
}
|
|
42
|
-
prepare() {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
this.mergeMetadata(Target);
|
|
45
|
-
yield this.applyOptions(Target);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
/** Fusiona los metadatos relevantes al Target */
|
|
49
|
-
mergeMetadata(targetPrototype) {
|
|
50
|
-
(0, merge_metadata_1.mergeMetadata)(targetPrototype, this.constructor, [
|
|
51
|
-
constants_1.KEY_PARAMS_MIDDLEWARES,
|
|
52
|
-
constants_1.KEY_PARAMS_SCOPE,
|
|
53
|
-
constants_1.KEY_PARAMS_ROLE,
|
|
54
|
-
constants_1.KEY_PARAMS_PASS,
|
|
55
|
-
]);
|
|
56
|
-
}
|
|
57
|
-
/** Aplica las opciones y prepara la instancia del Target */
|
|
58
|
-
applyOptions(Target) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
var _a;
|
|
61
|
-
yield applyAppOptions(options, Target, this, this.log.bind(this));
|
|
62
|
-
const target = Reflect.construct(Target, this.listArguments);
|
|
63
|
-
(_a = target === null || target === void 0 ? void 0 : target.onPrepare) === null || _a === void 0 ? void 0 : _a.call(target);
|
|
64
|
-
this.showLogs();
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/** Maneja los logs respetando las opciones configuradas */
|
|
68
|
-
log(space, message) {
|
|
69
|
-
var _a;
|
|
70
|
-
var _b;
|
|
71
|
-
if (((_a = options.logs) === null || _a === void 0 ? void 0 : _a[space]) === false)
|
|
72
|
-
return;
|
|
73
|
-
((_b = this.storeLogs)[space] || (_b[space] = [])).push(`- ${message}`);
|
|
74
|
-
}
|
|
75
|
-
showLogs() {
|
|
76
|
-
var _a, _b, _c;
|
|
77
|
-
const content = ["\n\n"];
|
|
78
|
-
content.push("/////////////////////////////");
|
|
79
|
-
content.push(`- HyperExpress Application`);
|
|
80
|
-
content.push(`- ${(_a = options.name) !== null && _a !== void 0 ? _a : "Hyper App"} - ${(_b = options.version) !== null && _b !== void 0 ? _b : "1.0.0"}`);
|
|
81
|
-
content.push("/////////////////////////////\n");
|
|
82
|
-
content.push("\nLogs:");
|
|
83
|
-
Object.entries(this.storeLogs).forEach(([space, logs]) => {
|
|
84
|
-
if (!logs.length)
|
|
85
|
-
return;
|
|
86
|
-
content.push(`- [${space.toUpperCase()}]`);
|
|
87
|
-
logs.forEach((log) => content.push(` ${log}`));
|
|
88
|
-
content.push("");
|
|
89
|
-
});
|
|
90
|
-
(_c = options.logger) === null || _c === void 0 ? void 0 : _c.call(this, content.join("\n"));
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
});
|
|
94
|
-
exports.HyperApp = HyperApp;
|
|
95
|
-
//////////////////////////////////
|
|
96
|
-
/// Private methods
|
|
97
|
-
//////////////////////////////////
|
|
98
|
-
const if_router = (current) => {
|
|
99
|
-
if (!current || !((current === null || current === void 0 ? void 0 : current.prototype) instanceof hyper_express_1.Router))
|
|
100
|
-
return new hyper_express_1.Router();
|
|
101
|
-
return new current();
|
|
102
|
-
};
|
|
103
|
-
function getData(target) {
|
|
104
|
-
var _a, _b, _c, _d, _e;
|
|
105
|
-
const app = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_APP, target);
|
|
106
|
-
const module = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_MODULE, target);
|
|
107
|
-
const controller = (0, decorator_base_1.getDecorData)(constants_1.KEY_TYPE_CONTROLLER, target);
|
|
108
|
-
const middlewares = (_a = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_MIDDLEWARES, target)) !== null && _a !== void 0 ? _a : [];
|
|
109
|
-
const scopes = (_b = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_SCOPE, target)) !== null && _b !== void 0 ? _b : [];
|
|
110
|
-
const roles = (_c = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_ROLE, target)) !== null && _c !== void 0 ? _c : [];
|
|
111
|
-
const routes = (_d = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_ROUTE, target)) !== null && _d !== void 0 ? _d : {
|
|
112
|
-
routes: [],
|
|
113
|
-
};
|
|
114
|
-
const params = (_e = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_PARAM, target)) !== null && _e !== void 0 ? _e : {};
|
|
115
|
-
const pass = (0, decorator_base_1.getDecorData)(constants_1.KEY_PARAMS_PASS, target);
|
|
116
|
-
return {
|
|
117
|
-
app,
|
|
118
|
-
module,
|
|
119
|
-
controller,
|
|
120
|
-
middlewares,
|
|
121
|
-
scopes,
|
|
122
|
-
roles,
|
|
123
|
-
routes,
|
|
124
|
-
params,
|
|
125
|
-
pass,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
function applyAppOptions(options, Target, app, log) {
|
|
129
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
var _a, _b;
|
|
131
|
-
const data = getData(Target);
|
|
132
|
-
const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : "/";
|
|
133
|
-
const services = (_b = options.imports) !== null && _b !== void 0 ? _b : [];
|
|
134
|
-
if (data.middlewares.length) {
|
|
135
|
-
app.use(...data.middlewares);
|
|
136
|
-
log("middleware", `${Target.name} with middlewares: ${data.middlewares.map((e) => e.name).join(", ")}`);
|
|
137
|
-
}
|
|
138
|
-
(0, scope_transfrom_1.default)(data.scopes, (middleware) => {
|
|
139
|
-
app.use(middleware);
|
|
140
|
-
log("middleware", `${Target.name} with scopes: ${data.scopes.join(", ")}`);
|
|
141
|
-
});
|
|
142
|
-
(0, role_transform_1.default)(data.roles, (middleware) => {
|
|
143
|
-
app.use(middleware);
|
|
144
|
-
log("middleware", `${Target.name} with roles: ${data.roles.join(", ")}`);
|
|
145
|
-
});
|
|
146
|
-
const routers = yield Promise.all(options.modules.map((module) => __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
var _a, _b;
|
|
148
|
-
const path = (_b = (_a = getData(module).module) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : "/";
|
|
149
|
-
return prepareTarget({
|
|
150
|
-
target: module,
|
|
151
|
-
router: if_router(module),
|
|
152
|
-
namespace: `${Target.name}/${module.name}`,
|
|
153
|
-
instance: app,
|
|
154
|
-
prefix: path,
|
|
155
|
-
log,
|
|
156
|
-
});
|
|
157
|
-
})));
|
|
158
|
-
routers.forEach(({ router, path }) => {
|
|
159
|
-
app.use((0, path_util_1.join)(prefix, path), router);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
function prepareTarget(_a) {
|
|
164
|
-
return __awaiter(this, arguments, void 0, function* ({ target, router, prefix = "/", namespace = "", instance, log, }) {
|
|
165
|
-
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
166
|
-
const _router = router !== null && router !== void 0 ? router : if_router(target);
|
|
167
|
-
const data = getData(target);
|
|
168
|
-
const modules = (_c = (_b = data.module) === null || _b === void 0 ? void 0 : _b.modules) !== null && _c !== void 0 ? _c : [];
|
|
169
|
-
const controllers = (_e = (_d = data.module) === null || _d === void 0 ? void 0 : _d.controllers) !== null && _e !== void 0 ? _e : [];
|
|
170
|
-
const routes = (_f = data.routes) !== null && _f !== void 0 ? _f : [];
|
|
171
|
-
const middlewares = (_g = data.middlewares) !== null && _g !== void 0 ? _g : [];
|
|
172
|
-
const scopes = (_h = data.scopes) !== null && _h !== void 0 ? _h : [];
|
|
173
|
-
const roles = (_j = data.roles) !== null && _j !== void 0 ? _j : [];
|
|
174
|
-
////////////////////////////////
|
|
175
|
-
/// Attach Middlewares
|
|
176
|
-
////////////////////////////////
|
|
177
|
-
_router.use(...middlewares);
|
|
178
|
-
(0, scope_transfrom_1.default)(scopes, (middleware) => _router.use(middleware));
|
|
179
|
-
(0, role_transform_1.default)(roles, (middleware) => _router.use(middleware));
|
|
180
|
-
////////////////////////////////
|
|
181
|
-
/// Prepare Modules
|
|
182
|
-
////////////////////////////////
|
|
183
|
-
yield (0, object_util_1.$each)(modules, (module) => __awaiter(this, void 0, void 0, function* () {
|
|
184
|
-
const moduleData = getData(module);
|
|
185
|
-
if (!moduleData.module)
|
|
186
|
-
return;
|
|
187
|
-
const router = yield prepareTarget({
|
|
188
|
-
target: module,
|
|
189
|
-
namespace: `${namespace}/${module.name}`,
|
|
190
|
-
prefix: moduleData.module.path,
|
|
191
|
-
instance: tsyringe_1.container.resolve(module),
|
|
192
|
-
log,
|
|
193
|
-
});
|
|
194
|
-
_router.use(router.path, router.router);
|
|
195
|
-
}));
|
|
196
|
-
// ////////////////////////////////
|
|
197
|
-
// /// Prepare Controllers
|
|
198
|
-
// ////////////////////////////////
|
|
199
|
-
yield (0, object_util_1.$each)(controllers, (controller) => __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
const data = getData(controller);
|
|
201
|
-
const controllerData = data.controller;
|
|
202
|
-
if (!controllerData)
|
|
203
|
-
return;
|
|
204
|
-
const router = yield prepareTarget({
|
|
205
|
-
target: controller,
|
|
206
|
-
namespace: `${namespace}/${controller.name}`,
|
|
207
|
-
prefix: controllerData.path,
|
|
208
|
-
instance: tsyringe_1.container.resolve(controller),
|
|
209
|
-
log,
|
|
210
|
-
});
|
|
211
|
-
_router.use(router.path, router.router);
|
|
212
|
-
}));
|
|
213
|
-
////////////////////////////////
|
|
214
|
-
/// Prepare Routes
|
|
215
|
-
////////////////////////////////
|
|
216
|
-
yield (0, object_util_1.$each)(Array.from(routes.routes), (route) => __awaiter(this, void 0, void 0, function* () {
|
|
217
|
-
if (typeof route !== "object")
|
|
218
|
-
return;
|
|
219
|
-
yield prepareRoutes({
|
|
220
|
-
target: target,
|
|
221
|
-
router: _router,
|
|
222
|
-
route,
|
|
223
|
-
namespace,
|
|
224
|
-
instance,
|
|
225
|
-
prefix,
|
|
226
|
-
log,
|
|
227
|
-
});
|
|
228
|
-
}));
|
|
229
|
-
return {
|
|
230
|
-
router: _router,
|
|
231
|
-
path: prefix,
|
|
232
|
-
};
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
function prepareRoutes(_a) {
|
|
236
|
-
return __awaiter(this, arguments, void 0, function* ({ target, router, route, instance, namespace, prefix, scopes = [], roles = [], log, }) {
|
|
237
|
-
var _b, _c, _d;
|
|
238
|
-
const { method, path, handler, propertyKey } = route;
|
|
239
|
-
const metadata = getData(handler);
|
|
240
|
-
const params = (_d = (_c = (_b = metadata.params) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c[propertyKey]) !== null && _d !== void 0 ? _d : [];
|
|
241
|
-
const $fn = Reflect.get(router, method);
|
|
242
|
-
const hasParams = params.length > 0;
|
|
243
|
-
if (!$fn)
|
|
244
|
-
return;
|
|
245
|
-
const middlewares = [...metadata.middlewares];
|
|
246
|
-
(0, role_transform_1.default)(metadata.roles, (middleware) => middlewares.push(middleware));
|
|
247
|
-
(0, scope_transfrom_1.default)(metadata.scopes, (middleware) => middlewares.push(middleware));
|
|
248
|
-
log("routes", `${namespace}/${propertyKey} ${method.toUpperCase()} { ${path} }`);
|
|
249
|
-
if (!hasParams) {
|
|
250
|
-
$fn.call(router, path, ...middlewares, handler.bind(instance));
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
$fn.call(router, path, ...middlewares, (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
254
|
-
const args = yield Promise.all(params.map((param) => __awaiter(this, void 0, void 0, function* () {
|
|
255
|
-
const { resolver, key } = param;
|
|
256
|
-
return yield resolver(req, res);
|
|
257
|
-
})));
|
|
258
|
-
return handler.bind(instance)(...args, req, res);
|
|
259
|
-
}));
|
|
260
|
-
}
|
|
261
|
-
});
|
|
262
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HyperController = void 0;
|
|
4
|
-
const decorator_base_1 = require("../__internals/decorator-base");
|
|
5
|
-
const constants_1 = require("../__internals/constants");
|
|
6
|
-
const HyperController = (options) => {
|
|
7
|
-
var _a, _b, _c;
|
|
8
|
-
const isString = typeof options === "string";
|
|
9
|
-
return (0, decorator_base_1.DecoratorHelper)({
|
|
10
|
-
type: constants_1.KEY_TYPE_CONTROLLER,
|
|
11
|
-
key: constants_1.KEY_PARAMS_CONTROLLER,
|
|
12
|
-
options: {
|
|
13
|
-
path: isString ? options : (_a = options === null || options === void 0 ? void 0 : options.path) !== null && _a !== void 0 ? _a : "/",
|
|
14
|
-
roles: isString ? [] : (_b = options === null || options === void 0 ? void 0 : options.roles) !== null && _b !== void 0 ? _b : [],
|
|
15
|
-
scopes: isString ? [] : (_c = options === null || options === void 0 ? void 0 : options.scopes) !== null && _c !== void 0 ? _c : [],
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
exports.HyperController = HyperController;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HyperModule = void 0;
|
|
4
|
-
const constants_1 = require("../__internals/constants");
|
|
5
|
-
const decorator_base_1 = require("../__internals/decorator-base");
|
|
6
|
-
/**
|
|
7
|
-
* Decorator to define a module with controllers and services.
|
|
8
|
-
*/
|
|
9
|
-
const HyperModule = (options) => (0, decorator_base_1.DecoratorHelper)({
|
|
10
|
-
type: constants_1.KEY_PARAMS_MODULE,
|
|
11
|
-
key: constants_1.KEY_PARAMS_MODULE,
|
|
12
|
-
options,
|
|
13
|
-
});
|
|
14
|
-
exports.HyperModule = HyperModule;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
|
-
import { MiddlewareHandler } from "hyper-express";
|
|
3
|
-
/**
|
|
4
|
-
* Middleware decorator to attach middleware to controllers, modules, and routes.
|
|
5
|
-
*/
|
|
6
|
-
export declare const Middleware: {
|
|
7
|
-
(...middleware: MiddlewareHandler[]): ClassDecorator & MethodDecorator;
|
|
8
|
-
/**
|
|
9
|
-
* Exclude middleware from matching paths.
|
|
10
|
-
*
|
|
11
|
-
* @param expresiosn
|
|
12
|
-
* @param middleware
|
|
13
|
-
* @returns
|
|
14
|
-
*/
|
|
15
|
-
exclude(expresiosn: RegExp | RegExp[], middleware: MiddlewareHandler): ClassDecorator & MethodDecorator;
|
|
16
|
-
/**
|
|
17
|
-
* Only run middleware on matching paths.
|
|
18
|
-
*
|
|
19
|
-
* @param expresiosn
|
|
20
|
-
* @param middleware
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
only(expresiosn: RegExp | RegExp[], middleware: MiddlewareHandler): ClassDecorator & MethodDecorator;
|
|
24
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Middleware = void 0;
|
|
7
|
-
require("reflect-metadata");
|
|
8
|
-
const constants_1 = require("../__internals/constants");
|
|
9
|
-
const stores_1 = __importDefault(require("../__internals/stores"));
|
|
10
|
-
/**
|
|
11
|
-
* Middleware decorator to attach middleware to controllers, modules, and routes.
|
|
12
|
-
*/
|
|
13
|
-
const Middleware = (...middleware) => (Target, propertyKey, descriptor) => {
|
|
14
|
-
stores_1.default.define(constants_1.KEY_PARAMS_MIDDLEWARES, middleware, {
|
|
15
|
-
target: Target,
|
|
16
|
-
propertyKey,
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
exports.Middleware = Middleware;
|
|
20
|
-
/**
|
|
21
|
-
* Exclude middleware from matching paths.
|
|
22
|
-
*
|
|
23
|
-
* @param expresiosn
|
|
24
|
-
* @param middleware
|
|
25
|
-
* @returns
|
|
26
|
-
*/
|
|
27
|
-
exports.Middleware.exclude = (expresiosn, middleware) => {
|
|
28
|
-
return (0, exports.Middleware)((req, res, next) => {
|
|
29
|
-
expresiosn = Array.isArray(expresiosn) ? expresiosn : [expresiosn];
|
|
30
|
-
const excluude = expresiosn.some((exp) => exp.test(req.path));
|
|
31
|
-
if (excluude)
|
|
32
|
-
return next();
|
|
33
|
-
return middleware(req, res, next);
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Only run middleware on matching paths.
|
|
38
|
-
*
|
|
39
|
-
* @param expresiosn
|
|
40
|
-
* @param middleware
|
|
41
|
-
* @returns
|
|
42
|
-
*/
|
|
43
|
-
exports.Middleware.only = (expresiosn, middleware) => {
|
|
44
|
-
return (0, exports.Middleware)((req, res, next) => {
|
|
45
|
-
expresiosn = Array.isArray(expresiosn) ? expresiosn : [expresiosn];
|
|
46
|
-
const only = expresiosn.some((exp) => exp.test(req.path));
|
|
47
|
-
if (!only)
|
|
48
|
-
return next();
|
|
49
|
-
return middleware(req, res, next);
|
|
50
|
-
});
|
|
51
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Request, Response } from "hyper-express";
|
|
2
|
-
interface PassOptions {
|
|
3
|
-
(req: Request, res: Response): boolean | Promise<boolean>;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* This method will pass all checks if the function returns true.
|
|
7
|
-
*
|
|
8
|
-
* @param options
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export declare const Pass: (options: PassOptions) => ClassDecorator & MethodDecorator;
|
|
12
|
-
export {};
|
package/dist/decorators/Pass.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Pass = void 0;
|
|
7
|
-
const who_helper_1 = __importDefault(require("../__internals/helpers/who.helper"));
|
|
8
|
-
const NotPropertyException_1 = __importDefault(require("../exeptions/NotPropertyException"));
|
|
9
|
-
const constants_1 = require("../__internals/constants");
|
|
10
|
-
/**
|
|
11
|
-
* This method will pass all checks if the function returns true.
|
|
12
|
-
*
|
|
13
|
-
* @param options
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
const Pass = (options) => (target, propertyKey, descriptorOrIndex) => {
|
|
17
|
-
const { isProperty, isMethod } = (0, who_helper_1.default)(target, propertyKey, descriptorOrIndex);
|
|
18
|
-
if (isProperty) {
|
|
19
|
-
throw new NotPropertyException_1.default(`${target.constructor.name}.${propertyKey === null || propertyKey === void 0 ? void 0 : propertyKey.toString()}`, target);
|
|
20
|
-
}
|
|
21
|
-
if (isMethod) {
|
|
22
|
-
Reflect.defineMetadata(constants_1.KEY_PARAMS_PASS, options, target, propertyKey);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
Reflect.defineMetadata(constants_1.KEY_PARAMS_PASS, options, target);
|
|
26
|
-
}
|
|
27
|
-
return target;
|
|
28
|
-
};
|
|
29
|
-
exports.Pass = Pass;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
|
-
import { RoleType } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* Role decorator for setting role-based access control.
|
|
5
|
-
*/
|
|
6
|
-
export declare const Role: <T extends string = string>(roles: RoleType<T>) => (target: any, propertyKey?: any, descriptorOrIndex?: any) => void;
|
package/dist/decorators/Role.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Role = void 0;
|
|
7
|
-
require("reflect-metadata");
|
|
8
|
-
const constants_1 = require("../__internals/constants");
|
|
9
|
-
const who_helper_1 = __importDefault(require("../__internals/helpers/who.helper"));
|
|
10
|
-
const stores_1 = __importDefault(require("../__internals/stores"));
|
|
11
|
-
const exeptions_1 = require("../exeptions");
|
|
12
|
-
/**
|
|
13
|
-
* Role decorator for setting role-based access control.
|
|
14
|
-
*/
|
|
15
|
-
const Role = (roles) => (target, propertyKey, descriptorOrIndex) => {
|
|
16
|
-
const _roles = Array.isArray(roles) ? roles : [roles];
|
|
17
|
-
if (!_roles.length) {
|
|
18
|
-
exeptions_1.HyperException.throw(`Role decorator must have at least one role.`, "HyperException", {
|
|
19
|
-
target,
|
|
20
|
-
propertyKey,
|
|
21
|
-
descriptorOrIndex,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
const { isProperty, isMethod } = (0, who_helper_1.default)(target, propertyKey, descriptorOrIndex);
|
|
25
|
-
if (isProperty) {
|
|
26
|
-
throw new Error(`Scope decorator cannot be used as parameter decorator in ${target.constructor.name}.${propertyKey}`);
|
|
27
|
-
}
|
|
28
|
-
const list = stores_1.default.list(constants_1.KEY_PARAMS_ROLE, {
|
|
29
|
-
target,
|
|
30
|
-
propertyKey,
|
|
31
|
-
});
|
|
32
|
-
list.set(..._roles);
|
|
33
|
-
};
|
|
34
|
-
exports.Role = Role;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
|
-
export declare const Get: (path?: string) => MethodDecorator & ClassDecorator;
|
|
3
|
-
export declare const Post: (path?: string) => MethodDecorator & ClassDecorator;
|
|
4
|
-
export declare const Put: (path?: string) => MethodDecorator & ClassDecorator;
|
|
5
|
-
export declare const Delete: (path?: string) => MethodDecorator & ClassDecorator;
|
|
6
|
-
export declare const Patch: (path?: string) => MethodDecorator & ClassDecorator;
|
|
7
|
-
export declare const Options: (path?: string) => MethodDecorator & ClassDecorator;
|
|
8
|
-
export declare const Head: (path?: string) => MethodDecorator & ClassDecorator;
|
|
9
|
-
export declare const Trace: (path?: string) => MethodDecorator & ClassDecorator;
|
|
10
|
-
export declare const Any: (path?: string) => MethodDecorator & ClassDecorator;
|
|
11
|
-
export declare const All: (path?: string) => MethodDecorator & ClassDecorator;
|
|
12
|
-
export declare const Connect: (path?: string) => MethodDecorator & ClassDecorator;
|
|
13
|
-
export declare const WS: (path?: string) => MethodDecorator & ClassDecorator;
|
|
14
|
-
export declare const Upgrade: (path?: string) => MethodDecorator & ClassDecorator;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Upgrade = exports.WS = exports.Connect = exports.All = exports.Any = exports.Trace = exports.Head = exports.Options = exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = void 0;
|
|
7
|
-
require("reflect-metadata");
|
|
8
|
-
const routes_creator_1 = __importDefault(require("../__internals/creators/routes.creator"));
|
|
9
|
-
exports.Get = (0, routes_creator_1.default)("get");
|
|
10
|
-
exports.Post = (0, routes_creator_1.default)("post");
|
|
11
|
-
exports.Put = (0, routes_creator_1.default)("put");
|
|
12
|
-
exports.Delete = (0, routes_creator_1.default)("delete");
|
|
13
|
-
exports.Patch = (0, routes_creator_1.default)("patch");
|
|
14
|
-
exports.Options = (0, routes_creator_1.default)("options");
|
|
15
|
-
exports.Head = (0, routes_creator_1.default)("head");
|
|
16
|
-
exports.Trace = (0, routes_creator_1.default)("trace");
|
|
17
|
-
exports.Any = (0, routes_creator_1.default)("any");
|
|
18
|
-
exports.All = (0, routes_creator_1.default)("all");
|
|
19
|
-
exports.Connect = (0, routes_creator_1.default)("connect");
|
|
20
|
-
exports.WS = (0, routes_creator_1.default)("ws");
|
|
21
|
-
exports.Upgrade = (0, routes_creator_1.default)("upgrade");
|
package/dist/decorators/Scope.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Scope = void 0;
|
|
7
|
-
require("reflect-metadata");
|
|
8
|
-
const constants_1 = require("../__internals/constants");
|
|
9
|
-
const who_helper_1 = __importDefault(require("../__internals/helpers/who.helper"));
|
|
10
|
-
const stores_1 = __importDefault(require("../__internals/stores"));
|
|
11
|
-
/**
|
|
12
|
-
* Scope decorator for defining access scopes.
|
|
13
|
-
*/
|
|
14
|
-
const Scope = (scopes) => (target, propertyKey, descriptorOrIndex) => {
|
|
15
|
-
const { isProperty, isMethod } = (0, who_helper_1.default)(target, propertyKey, descriptorOrIndex);
|
|
16
|
-
if (isProperty) {
|
|
17
|
-
throw new Error(`Scope decorator cannot be used as parameter decorator in ${target.constructor.name}.${propertyKey}`);
|
|
18
|
-
}
|
|
19
|
-
const list = stores_1.default.list(constants_1.KEY_PARAMS_SCOPE, {
|
|
20
|
-
target,
|
|
21
|
-
propertyKey,
|
|
22
|
-
});
|
|
23
|
-
list.set(...(Array.isArray(scopes) ? scopes : [scopes]));
|
|
24
|
-
};
|
|
25
|
-
exports.Scope = Scope;
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import type { MiddlewareHandler, Request, Response, ServerConstructorOptions } from "hyper-express";
|
|
2
|
-
export type Constructor<R extends any = any> = new (...args: any[]) => R;
|
|
3
|
-
export type ConstructorDecorator = (target: Constructor, kay?: any, descriptor?: PropertyDescriptor) => Constructor;
|
|
4
|
-
export type HyperClassDecorator<T> = (options?: T) => ConstructorDecorator;
|
|
5
|
-
export type HyperMethodDecorator<T> = (options?: T) => (target: any, key?: any, descriptor?: PropertyDescriptor) => void;
|
|
6
|
-
export interface LogSpaces {
|
|
7
|
-
controllers: boolean;
|
|
8
|
-
middleware: boolean;
|
|
9
|
-
routes: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface HyperAppMetadata {
|
|
12
|
-
name?: string;
|
|
13
|
-
version?: string;
|
|
14
|
-
description?: string;
|
|
15
|
-
author?: string;
|
|
16
|
-
license?: string;
|
|
17
|
-
prefix?: string;
|
|
18
|
-
logger?: (...args: any[]) => void;
|
|
19
|
-
logs?: LogSpaces;
|
|
20
|
-
modules: Constructor[];
|
|
21
|
-
imports?: Constructor[];
|
|
22
|
-
options?: ServerConstructorOptions;
|
|
23
|
-
}
|
|
24
|
-
export type HyperAppDecorator = (options?: HyperAppMetadata) => (target: Constructor) => Constructor;
|
|
25
|
-
export type HyperModuleMetadata = {
|
|
26
|
-
path: string;
|
|
27
|
-
name?: string;
|
|
28
|
-
roles?: string[];
|
|
29
|
-
scopes?: string[];
|
|
30
|
-
modules?: Constructor[];
|
|
31
|
-
controllers?: Constructor[];
|
|
32
|
-
imports?: Constructor[];
|
|
33
|
-
};
|
|
34
|
-
export type HyperModuleDecorator = HyperClassDecorator<HyperModuleMetadata>;
|
|
35
|
-
export type HyperControllerMetadata = {
|
|
36
|
-
path?: string;
|
|
37
|
-
roles?: string[];
|
|
38
|
-
scopes?: string[];
|
|
39
|
-
imports?: Constructor[];
|
|
40
|
-
};
|
|
41
|
-
export type HyperControllerDecorator = HyperClassDecorator<HyperControllerMetadata | string>;
|
|
42
|
-
export type ParameterResolver = (req: Request, res: Response) => any | Promise<any>;
|
|
43
|
-
export type HyperParamerMetadata = {
|
|
44
|
-
params: Record<string, {
|
|
45
|
-
index: number;
|
|
46
|
-
type: any;
|
|
47
|
-
key: string;
|
|
48
|
-
name: string;
|
|
49
|
-
method: string;
|
|
50
|
-
resolver: ParameterResolver;
|
|
51
|
-
}[]>;
|
|
52
|
-
};
|
|
53
|
-
export type HyperParamDecorator = (key: string) => (target: any, key: string, index: number) => void;
|
|
54
|
-
export type RoleMap<T> = {
|
|
55
|
-
role: T;
|
|
56
|
-
description: string;
|
|
57
|
-
message?: string;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Type definition for Role decorator.
|
|
61
|
-
* It can accept a single role, an array of roles, or a function that evaluates roles dynamically.
|
|
62
|
-
*/
|
|
63
|
-
export type RoleType<T extends string = string> = T | T[] | RoleMap<T> | RoleMap<T>[];
|
|
64
|
-
export type ScopeMap<T> = {
|
|
65
|
-
scope: T;
|
|
66
|
-
description: string;
|
|
67
|
-
message?: string;
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Type definition for Scope decorator.
|
|
71
|
-
* It can accept a single scope or multiple scopes as an array of strings.
|
|
72
|
-
*/
|
|
73
|
-
export type ScopeType<T extends string = string> = T | T[] | ScopeMap<T> | ScopeMap<T>[];
|
|
74
|
-
/**
|
|
75
|
-
* Type definition for Route metadata.
|
|
76
|
-
* Contains method, path, and handler function name.
|
|
77
|
-
*/
|
|
78
|
-
export interface RouteMetadata {
|
|
79
|
-
className: string;
|
|
80
|
-
method: string;
|
|
81
|
-
path: string;
|
|
82
|
-
propertyKey: string;
|
|
83
|
-
handler: (...args: any[]) => any;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Type definition for Middleware.
|
|
87
|
-
* Middleware can be a single handler or an array of handlers.
|
|
88
|
-
*/
|
|
89
|
-
export type MiddlewareType = MiddlewareHandler | MiddlewareHandler[];
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|