@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.
@@ -1,4 +1,5 @@
1
1
  import { MetadataTypes } from "./MetadataTypes.js";
2
+ export { FastResponse } from "srvx";
2
3
  export type MaybePromise<T> = T | Promise<T>;
3
4
  export interface MiddlewareOptions<T = any> {
4
5
  middlewareArgs?: T;
@@ -1,5 +1 @@
1
- /**
2
- * Generate random hash
3
- * @returns string
4
- */
5
1
  export default function generateRandomHash(): string;
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.65.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js
38
- var require_decorate = __commonJS({ "node_modules/.pnpm/@oxc-project+runtime@0.65.0/node_modules/@oxc-project/runtime/src/helpers/decorate.js"(exports, module) {
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 } = route.data;
598
- let fakeResponse = new Response(void 0, { headers: { "Content-Type": request.headers.get("Content-Type") ?? "application/json" } });
599
- for await (const hook of middlewares?.beforeMiddlewares ?? []) try {
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?.afterMiddlewares ?? []) try {
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
- return new Response(body, {
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 Response();
649
- if (response != null && response instanceof Response) return response;
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 Response(void 0, {
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 Response(JSON.stringify({ ...error }, void 0, 2), { status });
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 Response(JSON.stringify({ ...error?.cause ?? _internalError }, void 0, 2), { status });
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 Response(void 0, {
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.65.0/node_modules/@oxc-project/runtime/src/helpers/esm/decorate.js
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 } = route.data;
568
- let fakeResponse = new Response(void 0, { headers: { "Content-Type": request.headers.get("Content-Type") ?? "application/json" } });
569
- for await (const hook of middlewares?.beforeMiddlewares ?? []) try {
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?.afterMiddlewares ?? []) try {
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
- return new Response(body, {
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 Response();
619
- if (response != null && response instanceof Response) return response;
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 Response(void 0, {
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 Response(JSON.stringify({ ...error }, void 0, 2), { status });
1067
+ if (error instanceof HttpError) return new FastResponse(JSON.stringify({ ...error }, void 0, 2), { status });
1064
1068
  this.gLogger.error(error);
1065
- return new Response(JSON.stringify({ ...error?.cause ?? _internalError }, void 0, 2), { status });
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 Response(void 0, {
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.2",
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.4.0",
30
- "@vercube/di": "0.0.2",
31
- "@vercube/logger": "0.0.2"
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",