@vercube/core 0.0.2 → 0.0.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/Types/CommonTypes.d.ts +1 -0
- package/dist/Utils/InternalUtils.d.ts +0 -4
- package/dist/index.cjs +28 -17
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +22 -18
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -34,8 +34,8 @@ const __vercube_logger = __toESM(require("@vercube/logger"));
|
|
|
34
34
|
const c12 = __toESM(require("c12"));
|
|
35
35
|
const defu = __toESM(require("defu"));
|
|
36
36
|
|
|
37
|
-
//#region node_modules/.pnpm/@oxc-project+runtime@0.
|
|
38
|
-
var require_decorate = __commonJS({ "node_modules/.pnpm/@oxc-project+runtime@0.
|
|
37
|
+
//#region node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
|
|
38
|
+
var require_decorate = __commonJS({ "node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
|
|
39
39
|
function __decorate(decorators, target, key, desc) {
|
|
40
40
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
41
41
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -594,9 +594,12 @@ var RequestHandler = class {
|
|
|
594
594
|
*/
|
|
595
595
|
async handleRequest(request, route) {
|
|
596
596
|
try {
|
|
597
|
-
const { instance, propertyName, actions, args, middlewares
|
|
598
|
-
|
|
599
|
-
|
|
597
|
+
const { instance, propertyName, actions = [], args = [], middlewares = {
|
|
598
|
+
beforeMiddlewares: [],
|
|
599
|
+
afterMiddlewares: []
|
|
600
|
+
} } = route.data;
|
|
601
|
+
let fakeResponse = new srvx.FastResponse(void 0, { headers: { "Content-Type": request.headers.get("Content-Type") ?? "application/json" } });
|
|
602
|
+
if (middlewares.beforeMiddlewares.length > 0) for await (const hook of middlewares.beforeMiddlewares) try {
|
|
600
603
|
const hookResponse = await hook.middleware.onRequest?.(request, fakeResponse, {
|
|
601
604
|
middlewareArgs: hook.args,
|
|
602
605
|
methodArgs: args
|
|
@@ -609,25 +612,26 @@ var RequestHandler = class {
|
|
|
609
612
|
const actionResponse = action.handler(request, fakeResponse);
|
|
610
613
|
if (actionResponse !== null) fakeResponse = this.processOverrideResponse(actionResponse, fakeResponse);
|
|
611
614
|
}
|
|
612
|
-
const resolvedArgs = await this.gMetadataResolver.resolveArgs(args, {
|
|
615
|
+
const resolvedArgs = args.length > 0 ? await this.gMetadataResolver.resolveArgs(args, {
|
|
613
616
|
...route,
|
|
614
617
|
request,
|
|
615
618
|
response: fakeResponse
|
|
616
|
-
});
|
|
619
|
+
}) : [];
|
|
617
620
|
let handlerResponse = instance[propertyName].call(instance, ...resolvedArgs?.map((a) => a.resolved) ?? []);
|
|
618
621
|
if (handlerResponse instanceof Promise) handlerResponse = await handlerResponse;
|
|
619
|
-
for await (const hook of middlewares
|
|
622
|
+
if (middlewares.afterMiddlewares.length > 0) for await (const hook of middlewares.afterMiddlewares) try {
|
|
620
623
|
const hookResponse = await hook.middleware.onResponse?.(request, fakeResponse, handlerResponse);
|
|
621
624
|
if (hookResponse !== null) fakeResponse = this.processOverrideResponse(hookResponse, fakeResponse);
|
|
622
625
|
} catch (error_) {
|
|
623
626
|
this.gContainer.get(ErrorHandlerProvider).handleError(error_);
|
|
624
627
|
}
|
|
625
628
|
const body = fakeResponse?.body ?? JSON.stringify(handlerResponse);
|
|
626
|
-
|
|
627
|
-
status: fakeResponse.status,
|
|
628
|
-
statusText: fakeResponse.statusText,
|
|
629
|
+
const response = new Response(body, {
|
|
630
|
+
status: fakeResponse.status ?? 200,
|
|
631
|
+
statusText: fakeResponse.statusText ?? "OK",
|
|
629
632
|
headers: fakeResponse.headers
|
|
630
633
|
});
|
|
634
|
+
return response;
|
|
631
635
|
} catch (error_) {
|
|
632
636
|
return this.gContainer.get(ErrorHandlerProvider).handleError(error_);
|
|
633
637
|
}
|
|
@@ -645,11 +649,11 @@ var RequestHandler = class {
|
|
|
645
649
|
* @private
|
|
646
650
|
*/
|
|
647
651
|
processOverrideResponse(response, base) {
|
|
648
|
-
let fakeResponse = base ?? new
|
|
649
|
-
if (response != null && response instanceof
|
|
652
|
+
let fakeResponse = base ?? new srvx.FastResponse();
|
|
653
|
+
if (response != null && response instanceof srvx.FastResponse) return response;
|
|
650
654
|
else if (response !== null) {
|
|
651
655
|
const responseInit = response;
|
|
652
|
-
fakeResponse = new
|
|
656
|
+
fakeResponse = new srvx.FastResponse(void 0, {
|
|
653
657
|
status: responseInit?.status ?? fakeResponse.status,
|
|
654
658
|
headers: responseInit?.headers ?? fakeResponse.headers,
|
|
655
659
|
statusText: responseInit?.statusText ?? fakeResponse.statusText
|
|
@@ -1090,9 +1094,9 @@ var DefaultErrorHandlerProvider = class extends ErrorHandlerProvider {
|
|
|
1090
1094
|
handleError(error) {
|
|
1091
1095
|
const _internalError = new InternalServerError(error?.message ?? "Internal server error");
|
|
1092
1096
|
const status = error?.status ?? 500;
|
|
1093
|
-
if (error instanceof HttpError) return new
|
|
1097
|
+
if (error instanceof HttpError) return new srvx.FastResponse(JSON.stringify({ ...error }, void 0, 2), { status });
|
|
1094
1098
|
this.gLogger.error(error);
|
|
1095
|
-
return new
|
|
1099
|
+
return new srvx.FastResponse(JSON.stringify({ ...error?.cause ?? _internalError }, void 0, 2), { status });
|
|
1096
1100
|
}
|
|
1097
1101
|
};
|
|
1098
1102
|
(0, import_decorate.default)([(0, __vercube_di.Inject)(__vercube_logger.Logger)], DefaultErrorHandlerProvider.prototype, "gLogger", void 0);
|
|
@@ -2252,7 +2256,7 @@ var RedirectDecorator = class extends __vercube_di.BaseDecorator {
|
|
|
2252
2256
|
initializeMetadata(this.prototype);
|
|
2253
2257
|
const method = initializeMetadataMethod(this.prototype, this.propertyName);
|
|
2254
2258
|
method.actions.push({ handler: () => {
|
|
2255
|
-
return new
|
|
2259
|
+
return new srvx.FastResponse(void 0, {
|
|
2256
2260
|
status: this.options.code,
|
|
2257
2261
|
headers: { "Location": this.options.location }
|
|
2258
2262
|
});
|
|
@@ -2651,6 +2655,12 @@ exports.Connect = Connect
|
|
|
2651
2655
|
exports.Controller = Controller
|
|
2652
2656
|
exports.Delete = Delete
|
|
2653
2657
|
exports.ErrorHandlerProvider = ErrorHandlerProvider
|
|
2658
|
+
Object.defineProperty(exports, 'FastResponse', {
|
|
2659
|
+
enumerable: true,
|
|
2660
|
+
get: function () {
|
|
2661
|
+
return srvx.FastResponse;
|
|
2662
|
+
}
|
|
2663
|
+
});
|
|
2654
2664
|
exports.ForbiddenError = ForbiddenError
|
|
2655
2665
|
exports.Get = Get
|
|
2656
2666
|
exports.GlobalMiddlewareRegistry = GlobalMiddlewareRegistry
|
|
@@ -2679,6 +2689,7 @@ exports.QueryParams = QueryParams
|
|
|
2679
2689
|
exports.Redirect = Redirect
|
|
2680
2690
|
exports.Request = Request
|
|
2681
2691
|
exports.Response = Response$1
|
|
2692
|
+
exports.Router = Router
|
|
2682
2693
|
exports.Session = Session
|
|
2683
2694
|
exports.SetHeader = SetHeader
|
|
2684
2695
|
exports.Status = Status
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from "./Services/Middleware/GlobalMiddlewareRegistry.js";
|
|
|
34
34
|
export * from "./Services/HttpServer/HttpServer.js";
|
|
35
35
|
export * from "./Services/Metadata/MetadataResolver.js";
|
|
36
36
|
export * from "./Services/ErrorHandler/ErrorHandlerProvider.js";
|
|
37
|
+
export * from "./Services/Router/Router.js";
|
|
37
38
|
export * from "./Errors/HttpError.js";
|
|
38
39
|
export * from "./Errors/Http/BadRequestError.js";
|
|
39
40
|
export * from "./Errors/Http/ForbiddenError.js";
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseDecorator, Container, Inject, InjectOptional, createDecorator, initializeContainer } from "@vercube/di";
|
|
2
|
-
import { serve } from "srvx";
|
|
2
|
+
import { FastResponse, serve } from "srvx";
|
|
3
3
|
import { addRoute, createRouter, findRoute } from "rou3";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
5
5
|
import { extname, join, normalize } from "node:path";
|
|
@@ -8,7 +8,7 @@ import { BaseLogger, Logger, colors } from "@vercube/logger";
|
|
|
8
8
|
import { loadConfig } from "c12";
|
|
9
9
|
import { defu } from "defu";
|
|
10
10
|
|
|
11
|
-
//#region node_modules/.pnpm/@oxc-project+runtime@0.
|
|
11
|
+
//#region node_modules/.pnpm/@oxc-project+runtime@0.67.0/node_modules/@oxc-project/runtime/src/helpers/esm/decorate.js
|
|
12
12
|
function __decorate(decorators, target, key, desc) {
|
|
13
13
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
14
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -564,9 +564,12 @@ var RequestHandler = class {
|
|
|
564
564
|
*/
|
|
565
565
|
async handleRequest(request, route) {
|
|
566
566
|
try {
|
|
567
|
-
const { instance, propertyName, actions, args, middlewares
|
|
568
|
-
|
|
569
|
-
|
|
567
|
+
const { instance, propertyName, actions = [], args = [], middlewares = {
|
|
568
|
+
beforeMiddlewares: [],
|
|
569
|
+
afterMiddlewares: []
|
|
570
|
+
} } = route.data;
|
|
571
|
+
let fakeResponse = new FastResponse(void 0, { headers: { "Content-Type": request.headers.get("Content-Type") ?? "application/json" } });
|
|
572
|
+
if (middlewares.beforeMiddlewares.length > 0) for await (const hook of middlewares.beforeMiddlewares) try {
|
|
570
573
|
const hookResponse = await hook.middleware.onRequest?.(request, fakeResponse, {
|
|
571
574
|
middlewareArgs: hook.args,
|
|
572
575
|
methodArgs: args
|
|
@@ -579,25 +582,26 @@ var RequestHandler = class {
|
|
|
579
582
|
const actionResponse = action.handler(request, fakeResponse);
|
|
580
583
|
if (actionResponse !== null) fakeResponse = this.processOverrideResponse(actionResponse, fakeResponse);
|
|
581
584
|
}
|
|
582
|
-
const resolvedArgs = await this.gMetadataResolver.resolveArgs(args, {
|
|
585
|
+
const resolvedArgs = args.length > 0 ? await this.gMetadataResolver.resolveArgs(args, {
|
|
583
586
|
...route,
|
|
584
587
|
request,
|
|
585
588
|
response: fakeResponse
|
|
586
|
-
});
|
|
589
|
+
}) : [];
|
|
587
590
|
let handlerResponse = instance[propertyName].call(instance, ...resolvedArgs?.map((a) => a.resolved) ?? []);
|
|
588
591
|
if (handlerResponse instanceof Promise) handlerResponse = await handlerResponse;
|
|
589
|
-
for await (const hook of middlewares
|
|
592
|
+
if (middlewares.afterMiddlewares.length > 0) for await (const hook of middlewares.afterMiddlewares) try {
|
|
590
593
|
const hookResponse = await hook.middleware.onResponse?.(request, fakeResponse, handlerResponse);
|
|
591
594
|
if (hookResponse !== null) fakeResponse = this.processOverrideResponse(hookResponse, fakeResponse);
|
|
592
595
|
} catch (error_) {
|
|
593
596
|
this.gContainer.get(ErrorHandlerProvider).handleError(error_);
|
|
594
597
|
}
|
|
595
598
|
const body = fakeResponse?.body ?? JSON.stringify(handlerResponse);
|
|
596
|
-
|
|
597
|
-
status: fakeResponse.status,
|
|
598
|
-
statusText: fakeResponse.statusText,
|
|
599
|
+
const response = new Response(body, {
|
|
600
|
+
status: fakeResponse.status ?? 200,
|
|
601
|
+
statusText: fakeResponse.statusText ?? "OK",
|
|
599
602
|
headers: fakeResponse.headers
|
|
600
603
|
});
|
|
604
|
+
return response;
|
|
601
605
|
} catch (error_) {
|
|
602
606
|
return this.gContainer.get(ErrorHandlerProvider).handleError(error_);
|
|
603
607
|
}
|
|
@@ -615,11 +619,11 @@ var RequestHandler = class {
|
|
|
615
619
|
* @private
|
|
616
620
|
*/
|
|
617
621
|
processOverrideResponse(response, base) {
|
|
618
|
-
let fakeResponse = base ?? new
|
|
619
|
-
if (response != null && response instanceof
|
|
622
|
+
let fakeResponse = base ?? new FastResponse();
|
|
623
|
+
if (response != null && response instanceof FastResponse) return response;
|
|
620
624
|
else if (response !== null) {
|
|
621
625
|
const responseInit = response;
|
|
622
|
-
fakeResponse = new
|
|
626
|
+
fakeResponse = new FastResponse(void 0, {
|
|
623
627
|
status: responseInit?.status ?? fakeResponse.status,
|
|
624
628
|
headers: responseInit?.headers ?? fakeResponse.headers,
|
|
625
629
|
statusText: responseInit?.statusText ?? fakeResponse.statusText
|
|
@@ -1060,9 +1064,9 @@ var DefaultErrorHandlerProvider = class extends ErrorHandlerProvider {
|
|
|
1060
1064
|
handleError(error) {
|
|
1061
1065
|
const _internalError = new InternalServerError(error?.message ?? "Internal server error");
|
|
1062
1066
|
const status = error?.status ?? 500;
|
|
1063
|
-
if (error instanceof HttpError) return new
|
|
1067
|
+
if (error instanceof HttpError) return new FastResponse(JSON.stringify({ ...error }, void 0, 2), { status });
|
|
1064
1068
|
this.gLogger.error(error);
|
|
1065
|
-
return new
|
|
1069
|
+
return new FastResponse(JSON.stringify({ ...error?.cause ?? _internalError }, void 0, 2), { status });
|
|
1066
1070
|
}
|
|
1067
1071
|
};
|
|
1068
1072
|
__decorate([Inject(Logger)], DefaultErrorHandlerProvider.prototype, "gLogger", void 0);
|
|
@@ -2222,7 +2226,7 @@ var RedirectDecorator = class extends BaseDecorator {
|
|
|
2222
2226
|
initializeMetadata(this.prototype);
|
|
2223
2227
|
const method = initializeMetadataMethod(this.prototype, this.propertyName);
|
|
2224
2228
|
method.actions.push({ handler: () => {
|
|
2225
|
-
return new
|
|
2229
|
+
return new FastResponse(void 0, {
|
|
2226
2230
|
status: this.options.code,
|
|
2227
2231
|
headers: { "Location": this.options.location }
|
|
2228
2232
|
});
|
|
@@ -2612,4 +2616,4 @@ let HTTPStatus = /* @__PURE__ */ function(HTTPStatus$1) {
|
|
|
2612
2616
|
}({});
|
|
2613
2617
|
|
|
2614
2618
|
//#endregion
|
|
2615
|
-
export { App, BadRequestError, BaseMiddleware, BasePlugin, Body, Connect, Controller, Delete, ErrorHandlerProvider, ForbiddenError, Get, GlobalMiddlewareRegistry, HTTPStatus, Head, Header, Headers$1 as Headers, HooksService, HttpError, HttpServer, InternalServerError, Listen, MetadataResolver, MethodNotAllowedError, Middleware, MultipartFormData, NotAcceptableError, NotFoundError, Options, Param, Patch, Post, Put, QueryParam, QueryParams, Redirect, Request, Response$1 as Response, Session, SetHeader, Status, Trace, UnauthorizedError, createApp, createMetadataCtx, createMetadataMethod, defineConfig, initializeMetadata, initializeMetadataMethod, loadVercubeConfig };
|
|
2619
|
+
export { App, BadRequestError, BaseMiddleware, BasePlugin, Body, Connect, Controller, Delete, ErrorHandlerProvider, FastResponse, ForbiddenError, Get, GlobalMiddlewareRegistry, HTTPStatus, Head, Header, Headers$1 as Headers, HooksService, HttpError, HttpServer, InternalServerError, Listen, MetadataResolver, MethodNotAllowedError, Middleware, MultipartFormData, NotAcceptableError, NotFoundError, Options, Param, Patch, Post, Put, QueryParam, QueryParams, Redirect, Request, Response$1 as Response, Router, Session, SetHeader, Status, Trace, UnauthorizedError, createApp, createMetadataCtx, createMetadataMethod, defineConfig, initializeMetadata, initializeMetadataMethod, loadVercubeConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vercube/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Core module for Vercube framework",
|
|
5
5
|
"repository": "@vercube/core",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"defu": "6.1.4",
|
|
27
27
|
"pathe": "2.0.3",
|
|
28
28
|
"rou3": "0.6.1",
|
|
29
|
-
"srvx": "0.
|
|
30
|
-
"@vercube/di": "0.0.
|
|
31
|
-
"@vercube/logger": "0.0.
|
|
29
|
+
"srvx": "0.6.0",
|
|
30
|
+
"@vercube/di": "0.0.3",
|
|
31
|
+
"@vercube/logger": "0.0.3"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@vitest/coverage-v8": "^3.1.2",
|