@hestjs/core 0.1.1 → 0.1.3
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/dist/application/application-factory.js +20 -16
- package/dist/application/application-factory.js.map +1 -1
- package/dist/application/hest-application.js +5 -1
- package/dist/application/hest-application.js.map +1 -1
- package/dist/application/index.js +18 -2
- package/dist/application/index.js.map +1 -1
- package/dist/container/container.js +12 -8
- package/dist/container/container.js.map +1 -1
- package/dist/container/index.js +18 -2
- package/dist/container/index.js.map +1 -1
- package/dist/container/injection-token.js +4 -1
- package/dist/container/injection-token.js.map +1 -1
- package/dist/decorators/controller.js +11 -8
- package/dist/decorators/controller.js.map +1 -1
- package/dist/decorators/index.js +20 -4
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/injectable.js +10 -7
- package/dist/decorators/injectable.js.map +1 -1
- package/dist/decorators/module.js +9 -6
- package/dist/decorators/module.js.map +1 -1
- package/dist/decorators/route.js +20 -17
- package/dist/decorators/route.js.map +1 -1
- package/dist/exceptions/base-exception.js +5 -1
- package/dist/exceptions/base-exception.js.map +1 -1
- package/dist/exceptions/exception-filter.js +11 -5
- package/dist/exceptions/exception-filter.js.map +1 -1
- package/dist/exceptions/http-exception.js +20 -9
- package/dist/exceptions/http-exception.js.map +1 -1
- package/dist/exceptions/index.js +19 -3
- package/dist/exceptions/index.js.map +1 -1
- package/dist/index.js +40 -14
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +17 -1
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/interceptor.js +18 -12
- package/dist/interceptors/interceptor.js.map +1 -1
- package/dist/interfaces/application.js +2 -1
- package/dist/interfaces/index.js +19 -3
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/metadata.js +2 -1
- package/dist/interfaces/router.js +2 -1
- package/dist/metadata/index.js +18 -2
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/metadata-scanner.js +15 -11
- package/dist/metadata/metadata-scanner.js.map +1 -1
- package/dist/metadata/reflector.js +6 -2
- package/dist/metadata/reflector.js.map +1 -1
- package/dist/middlewares/index.js +17 -1
- package/dist/middlewares/index.js.map +1 -1
- package/dist/middlewares/middleware.js +13 -7
- package/dist/middlewares/middleware.js.map +1 -1
- package/dist/router/index.js +18 -2
- package/dist/router/index.js.map +1 -1
- package/dist/router/route-metadata.js +5 -1
- package/dist/router/route-metadata.js.map +1 -1
- package/dist/router/router-explorer.js +25 -21
- package/dist/router/router-explorer.js.map +1 -1
- package/dist/utils/constants.js +10 -7
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/helpers.js +13 -6
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/index.js +18 -2
- package/dist/utils/index.js.map +1 -1
- package/package.json +6 -4
@@ -1,7 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RouteMetadata = void 0;
|
1
4
|
/**
|
2
5
|
* 路由元数据收集器
|
3
6
|
*/
|
4
|
-
|
7
|
+
class RouteMetadata {
|
5
8
|
routes = [];
|
6
9
|
/**
|
7
10
|
* 添加路由
|
@@ -40,4 +43,5 @@ export class RouteMetadata {
|
|
40
43
|
return this.routes.length;
|
41
44
|
}
|
42
45
|
}
|
46
|
+
exports.RouteMetadata = RouteMetadata;
|
43
47
|
//# sourceMappingURL=route-metadata.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"route-metadata.js","sourceRoot":"","sources":["../../src/router/route-metadata.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,
|
1
|
+
{"version":3,"file":"route-metadata.js","sourceRoot":"","sources":["../../src/router/route-metadata.ts"],"names":[],"mappings":";;;AAYA;;GAEG;AACH,MAAa,aAAa;IAChB,MAAM,GAAgB,EAAE,CAAC;IAEjC;;OAEG;IACH,GAAG,CAAC,KAAgB;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAkB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF;AA5CD,sCA4CC"}
|
@@ -1,13 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RouterExplorer = void 0;
|
4
|
+
const logger_1 = require("@hestjs/logger");
|
5
|
+
const exception_filter_1 = require("../exceptions/exception-filter");
|
6
|
+
const interceptor_1 = require("../interceptors/interceptor");
|
7
|
+
const metadata_scanner_1 = require("../metadata/metadata-scanner");
|
8
|
+
const constants_1 = require("../utils/constants");
|
9
|
+
const logger = (0, logger_1.createLogger)("Router");
|
7
10
|
/**
|
8
11
|
* 路由资源管理器
|
9
12
|
*/
|
10
|
-
|
13
|
+
class RouterExplorer {
|
11
14
|
app;
|
12
15
|
container;
|
13
16
|
globalFilters = [];
|
@@ -40,11 +43,11 @@ export class RouterExplorer {
|
|
40
43
|
* 探索单个控制器
|
41
44
|
*/
|
42
45
|
exploreController(controllerClass) {
|
43
|
-
const controllerMetadata = MetadataScanner.scanController(controllerClass);
|
46
|
+
const controllerMetadata = metadata_scanner_1.MetadataScanner.scanController(controllerClass);
|
44
47
|
if (!controllerMetadata) {
|
45
48
|
throw new Error(`Controller metadata not found for ${controllerClass.name}`);
|
46
49
|
}
|
47
|
-
const routes = MetadataScanner.scanRoutes(controllerClass);
|
50
|
+
const routes = metadata_scanner_1.MetadataScanner.scanRoutes(controllerClass);
|
48
51
|
const controllerInstance = this.container.resolve(controllerClass);
|
49
52
|
routes.forEach((route) => {
|
50
53
|
this.registerRoute(controllerInstance, controllerMetadata.path, route);
|
@@ -57,12 +60,12 @@ export class RouterExplorer {
|
|
57
60
|
const fullPath = this.combinePaths(controllerPath, route.path);
|
58
61
|
const method = route.method.toLowerCase();
|
59
62
|
// 获取参数元数据
|
60
|
-
const paramMetadata = MetadataScanner.scanParameters(controllerInstance.constructor, route.methodName);
|
63
|
+
const paramMetadata = metadata_scanner_1.MetadataScanner.scanParameters(controllerInstance.constructor, route.methodName);
|
61
64
|
// 创建增强的路由处理器(支持拦截器和异常处理)
|
62
65
|
const handler = async (c) => {
|
63
66
|
try {
|
64
67
|
// 创建执行上下文
|
65
|
-
const executionContext = new DefaultExecutionContext(controllerInstance.constructor, { name: route.methodName }, [], c);
|
68
|
+
const executionContext = new interceptor_1.DefaultExecutionContext(controllerInstance.constructor, { name: route.methodName }, [], c);
|
66
69
|
// 原始方法执行逻辑
|
67
70
|
const executeMethod = async () => {
|
68
71
|
const resolutionResult = await this.resolveParameters(c, paramMetadata);
|
@@ -130,7 +133,7 @@ export class RouterExplorer {
|
|
130
133
|
let value;
|
131
134
|
try {
|
132
135
|
switch (param.type) {
|
133
|
-
case ParamType.BODY:
|
136
|
+
case constants_1.ParamType.BODY:
|
134
137
|
try {
|
135
138
|
value = await c.req.json();
|
136
139
|
}
|
@@ -138,22 +141,22 @@ export class RouterExplorer {
|
|
138
141
|
value = await c.req.text();
|
139
142
|
}
|
140
143
|
break;
|
141
|
-
case ParamType.PARAM:
|
144
|
+
case constants_1.ParamType.PARAM:
|
142
145
|
value = param.key ? c.req.param(param.key) : c.req.param();
|
143
146
|
break;
|
144
|
-
case ParamType.QUERY:
|
147
|
+
case constants_1.ParamType.QUERY:
|
145
148
|
value = param.key ? c.req.query(param.key) : c.req.query();
|
146
149
|
break;
|
147
|
-
case ParamType.HEADER:
|
150
|
+
case constants_1.ParamType.HEADER:
|
148
151
|
value = param.key ? c.req.header(param.key) : c.req.header();
|
149
152
|
break;
|
150
|
-
case ParamType.REQUEST:
|
153
|
+
case constants_1.ParamType.REQUEST:
|
151
154
|
value = c.req;
|
152
155
|
break;
|
153
|
-
case ParamType.RESPONSE:
|
156
|
+
case constants_1.ParamType.RESPONSE:
|
154
157
|
value = c;
|
155
158
|
break;
|
156
|
-
case ParamType.CONTEXT:
|
159
|
+
case constants_1.ParamType.CONTEXT:
|
157
160
|
value = c;
|
158
161
|
break;
|
159
162
|
default:
|
@@ -188,7 +191,7 @@ export class RouterExplorer {
|
|
188
191
|
return await handler();
|
189
192
|
}
|
190
193
|
const interceptor = this.globalInterceptors[index++];
|
191
|
-
const callHandler = new DefaultCallHandler(callNext);
|
194
|
+
const callHandler = new interceptor_1.DefaultCallHandler(callNext);
|
192
195
|
return await interceptor.intercept(context, callHandler);
|
193
196
|
};
|
194
197
|
return await callNext();
|
@@ -197,7 +200,7 @@ export class RouterExplorer {
|
|
197
200
|
* 处理异常
|
198
201
|
*/
|
199
202
|
handleException(error, context) {
|
200
|
-
const argumentsHost = new DefaultArgumentsHost(context);
|
203
|
+
const argumentsHost = new exception_filter_1.DefaultArgumentsHost(context);
|
201
204
|
// 优先使用全局异常过滤器
|
202
205
|
for (const filter of this.globalFilters) {
|
203
206
|
try {
|
@@ -208,7 +211,7 @@ export class RouterExplorer {
|
|
208
211
|
}
|
209
212
|
}
|
210
213
|
// 默认异常处理
|
211
|
-
const defaultFilter = new DefaultExceptionFilter();
|
214
|
+
const defaultFilter = new exception_filter_1.DefaultExceptionFilter();
|
212
215
|
return defaultFilter.catch(error, argumentsHost);
|
213
216
|
}
|
214
217
|
/**
|
@@ -223,6 +226,7 @@ export class RouterExplorer {
|
|
223
226
|
return `${base}/${route}`;
|
224
227
|
}
|
225
228
|
}
|
229
|
+
exports.RouterExplorer = RouterExplorer;
|
226
230
|
// 辅助函数:根据 HTTP 方法和路径返回对应的 Emoji
|
227
231
|
function getRouteEmoji(method, path) {
|
228
232
|
// 1. 根据 HTTP 方法选择基础 Emoji
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"router-explorer.js","sourceRoot":"","sources":["../../src/router/router-explorer.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"router-explorer.js","sourceRoot":"","sources":["../../src/router/router-explorer.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/constants.js
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Scope = exports.ParamType = exports.HttpMethod = exports.METADATA_KEYS = void 0;
|
1
4
|
// 元数据键常量
|
2
|
-
|
5
|
+
exports.METADATA_KEYS = {
|
3
6
|
CONTROLLER: Symbol('controller'),
|
4
7
|
INJECTABLE: Symbol('injectable'),
|
5
8
|
MODULE: Symbol('module'),
|
@@ -9,7 +12,7 @@ export const METADATA_KEYS = {
|
|
9
12
|
GUARD: Symbol('guard'),
|
10
13
|
};
|
11
14
|
// HTTP 方法枚举
|
12
|
-
|
15
|
+
var HttpMethod;
|
13
16
|
(function (HttpMethod) {
|
14
17
|
HttpMethod["GET"] = "GET";
|
15
18
|
HttpMethod["POST"] = "POST";
|
@@ -18,9 +21,9 @@ export var HttpMethod;
|
|
18
21
|
HttpMethod["PATCH"] = "PATCH";
|
19
22
|
HttpMethod["OPTIONS"] = "OPTIONS";
|
20
23
|
HttpMethod["HEAD"] = "HEAD";
|
21
|
-
})(HttpMethod || (HttpMethod = {}));
|
24
|
+
})(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
|
22
25
|
// 参数类型枚举
|
23
|
-
|
26
|
+
var ParamType;
|
24
27
|
(function (ParamType) {
|
25
28
|
ParamType["BODY"] = "body";
|
26
29
|
ParamType["PARAM"] = "param";
|
@@ -29,12 +32,12 @@ export var ParamType;
|
|
29
32
|
ParamType["REQUEST"] = "request";
|
30
33
|
ParamType["RESPONSE"] = "response";
|
31
34
|
ParamType["CONTEXT"] = "context";
|
32
|
-
})(ParamType || (ParamType = {}));
|
35
|
+
})(ParamType || (exports.ParamType = ParamType = {}));
|
33
36
|
// 注入作用域
|
34
|
-
|
37
|
+
var Scope;
|
35
38
|
(function (Scope) {
|
36
39
|
Scope["SINGLETON"] = "singleton";
|
37
40
|
Scope["TRANSIENT"] = "transient";
|
38
41
|
Scope["REQUEST"] = "request";
|
39
|
-
})(Scope || (Scope = {}));
|
42
|
+
})(Scope || (exports.Scope = Scope = {}));
|
40
43
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,SAAS;
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACI,QAAA,aAAa,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;CACd,CAAC;AAEX,YAAY;AACZ,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,2BAAa,CAAA;AACf,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,SAAS;AACT,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;AACrB,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,QAAQ;AACR,IAAY,KAIX;AAJD,WAAY,KAAK;IACf,gCAAuB,CAAA;IACvB,gCAAuB,CAAA;IACvB,4BAAmB,CAAA;AACrB,CAAC,EAJW,KAAK,qBAAL,KAAK,QAIhB"}
|
package/dist/utils/helpers.js
CHANGED
@@ -1,14 +1,21 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isConstructor = isConstructor;
|
4
|
+
exports.getParamTypes = getParamTypes;
|
5
|
+
exports.getReturnType = getReturnType;
|
6
|
+
exports.generateId = generateId;
|
7
|
+
exports.deepMerge = deepMerge;
|
8
|
+
require("reflect-metadata");
|
2
9
|
/**
|
3
10
|
* 检查是否为类构造函数
|
4
11
|
*/
|
5
|
-
|
12
|
+
function isConstructor(target) {
|
6
13
|
return typeof target === 'function' && target.prototype && target.prototype.constructor === target;
|
7
14
|
}
|
8
15
|
/**
|
9
16
|
* 获取函数参数类型
|
10
17
|
*/
|
11
|
-
|
18
|
+
function getParamTypes(target, propertyKey) {
|
12
19
|
if (propertyKey) {
|
13
20
|
return Reflect.getMetadata('design:paramtypes', target.prototype, propertyKey) || [];
|
14
21
|
}
|
@@ -17,19 +24,19 @@ export function getParamTypes(target, propertyKey) {
|
|
17
24
|
/**
|
18
25
|
* 获取函数返回类型
|
19
26
|
*/
|
20
|
-
|
27
|
+
function getReturnType(target, propertyKey) {
|
21
28
|
return Reflect.getMetadata('design:returntype', target.prototype, propertyKey);
|
22
29
|
}
|
23
30
|
/**
|
24
31
|
* 生成唯一标识符
|
25
32
|
*/
|
26
|
-
|
33
|
+
function generateId() {
|
27
34
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
28
35
|
}
|
29
36
|
/**
|
30
37
|
* 深度合并对象
|
31
38
|
*/
|
32
|
-
|
39
|
+
function deepMerge(target, source) {
|
33
40
|
const result = { ...target };
|
34
41
|
for (const key in source) {
|
35
42
|
if (source.hasOwnProperty(key)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;AAYA,sCAEC;AAKD,sCAKC;AAKD,sCAEC;AAKD,gCAEC;AAKD,8BAiBC;AA5DD,4BAA0B;AAS1B;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAW;IACvC,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAW,EAAE,WAA6B;IACtE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;IACvF,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAW,EAAE,WAA4B;IACrE,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAW,EAAE,MAAW;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAQ;IACxB,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/utils/index.js
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
-
|
2
|
-
|
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
|
+
__exportStar(require("./constants"), exports);
|
18
|
+
__exportStar(require("./helpers"), exports);
|
3
19
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hestjs/core",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.3",
|
4
4
|
"description": "HestJS Core Framework - A TypeScript framework built on Hono with dependency injection and decorators",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -28,14 +28,16 @@
|
|
28
28
|
"author": "aqz236",
|
29
29
|
"license": "MIT",
|
30
30
|
"dependencies": {
|
31
|
-
"@hestjs/logger": "
|
31
|
+
"@hestjs/logger": "workspace:*",
|
32
32
|
"hono": "^4.8.9",
|
33
|
+
"pino": "^9.7.0",
|
34
|
+
"pino-pretty": "^13.0.0",
|
33
35
|
"reflect-metadata": "^0.2.2",
|
34
|
-
"tsyringe": "^4.
|
36
|
+
"tsyringe": "^4.10.0",
|
35
37
|
"untyped": "^2.0.0"
|
36
38
|
},
|
37
39
|
"devDependencies": {
|
38
|
-
"@types/node": "^
|
40
|
+
"@types/node": "^24.1.0",
|
39
41
|
"typescript": "5.8.3"
|
40
42
|
},
|
41
43
|
"peerDependencies": {
|