@hg-ts/http-controller 0.5.24 → 0.5.26

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,8 +1,10 @@
1
1
  import { BaseException } from '@hg-ts/exception';
2
+ import { z } from '@hg-ts/validation';
2
3
  export type ExceptionMap = Map<Class<BaseException, any[]>, number>;
3
4
  export declare const EXCEPTION_METADATA_KEY: unique symbol;
4
5
  export declare class Http {
5
6
  private constructor();
6
7
  static ExceptionStatus(exception: Class<BaseException, any[]>, statusCode: number): MethodDecorator;
8
+ static ValidatedHeader<T>(headerName: string, schema: z.ZodSchema<T>): () => ParameterDecorator;
7
9
  }
8
10
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,qBAAa,IAAI;IAChB,OAAO;WAEO,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;CA2B1G"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEN,CAAC,EACD,MAAM,mBAAmB,CAAC;AAS3B,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,qBAAa,IAAI;IAChB,OAAO;WAEO,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;WA4B5F,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,kBAAkB;CAQtG"}
@@ -1,4 +1,5 @@
1
- import { createSchema } from '@hg-ts/validation';
1
+ import { createSchema, } from '@hg-ts/validation';
2
+ import { createParamDecorator } from '@nestjs/common';
2
3
  import { ApiResponse } from '@nestjs/swagger';
3
4
  import { ExceptionStatusAlreadyDefinedException } from '../exceptions/index.js';
4
5
  import { ExceptionService } from '../services/index.js';
@@ -26,5 +27,12 @@ export class Http {
26
27
  })(target, propertyKey, descriptor);
27
28
  };
28
29
  }
30
+ static ValidatedHeader(headerName, schema) {
31
+ return createParamDecorator((_data, ctx) => {
32
+ const request = ctx.switchToHttp().getRequest();
33
+ const header = request.headers[headerName];
34
+ return schema.parse(header);
35
+ });
36
+ }
29
37
  }
30
38
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEvE,MAAM,OAAO,IAAI;IAChB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,eAAe,CAAC,SAAsC,EAAE,UAAkB;QACvF,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;YACpF,MAAM,SAAS,GACd,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAE/E,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,sCAAsC,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE/E,MAAM,iBAAiB,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,iBAAiB;iBAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,mBAAmB,KAAK,UAAU,CAAC;iBACvE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBACjD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;iBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;iBAChD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YAElC,WAAW,CAAC;gBACX,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9D,MAAM,EAAE,UAAU;aAClB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EACN,YAAY,GAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEvE,MAAM,OAAO,IAAI;IAChB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,eAAe,CAAC,SAAsC,EAAE,UAAkB;QACvF,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;YACpF,MAAM,SAAS,GACd,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAE/E,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,sCAAsC,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE/E,MAAM,iBAAiB,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,iBAAiB;iBAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,mBAAmB,KAAK,UAAU,CAAC;iBACvE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBACjD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;iBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;iBAChD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;YAElC,WAAW,CAAC;gBACX,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC9D,MAAM,EAAE,UAAU;aAClB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,eAAe,CAAI,UAAkB,EAAE,MAAsB;QAC1E,OAAO,oBAAoB,CAAC,CAAC,KAAc,EAAE,GAAG,EAAK,EAAE;YACtD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE3C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -3,7 +3,7 @@ import { ArgumentMetadata, PipeTransform } from '@nestjs/common';
3
3
  export declare class ValidationPipe implements PipeTransform<unknown, unknown> {
4
4
  private readonly dto;
5
5
  constructor(dto?: ZodType);
6
- transform(value: unknown, { metatype }: ArgumentMetadata): unknown;
6
+ transform(value: unknown, { metatype, type }: ArgumentMetadata): unknown;
7
7
  static getInstance(): ValidationPipe;
8
8
  private getSchema;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.pipe.d.ts","sourceRoot":"","sources":["../../src/middlewares/validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,OAAO,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,cAAe,YAAW,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;gBAElB,GAAG,CAAC,EAAE,OAAO;IAIzB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,OAAO;WAM3D,WAAW,IAAI,cAAc;IAI3C,OAAO,CAAC,SAAS;CASjB"}
1
+ {"version":3,"file":"validation.pipe.d.ts","sourceRoot":"","sources":["../../src/middlewares/validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,OAAO,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,cAAe,YAAW,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;gBAElB,GAAG,CAAC,EAAE,OAAO;IAIzB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO;WASjE,WAAW,IAAI,cAAc;IAI3C,OAAO,CAAC,SAAS;CASjB"}
@@ -5,7 +5,10 @@ export class ValidationPipe {
5
5
  constructor(dto) {
6
6
  this.dto = dto ?? null;
7
7
  }
8
- transform(value, { metatype }) {
8
+ transform(value, { metatype, type }) {
9
+ if (type === 'custom') {
10
+ return value;
11
+ }
9
12
  const schema = this.getSchema(metatype);
10
13
  return schema.parse(value);
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.pipe.js","sourceRoot":"","sources":["../../src/middlewares/validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,GAER,MAAM,mBAAmB,CAAC;AAO3B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,MAAM,OAAO,cAAc;IACT,GAAG,CAAiB;IAErC,YAAmB,GAAa;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC;IACxB,CAAC;IAEM,SAAS,CAAC,KAAc,EAAE,EAAE,QAAQ,EAAoB;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAExC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,QAA4B;QAC7C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9B,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,CAAC;CACD"}
1
+ {"version":3,"file":"validation.pipe.js","sourceRoot":"","sources":["../../src/middlewares/validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,GAER,MAAM,mBAAmB,CAAC;AAO3B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,MAAM,OAAO,cAAc;IACT,GAAG,CAAiB;IAErC,YAAmB,GAAa;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC;IACxB,CAAC;IAEM,SAAS,CAAC,KAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAoB;QACpE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAExC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,QAA4B;QAC7C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9B,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/http-controller",
3
- "version": "0.5.24",
3
+ "version": "0.5.26",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -18,15 +18,15 @@
18
18
  "test:dev": "vitest watch"
19
19
  },
20
20
  "devDependencies": {
21
- "@hg-ts-config/typescript": "0.5.24",
22
- "@hg-ts/exception": "0.5.24",
23
- "@hg-ts/execution-mode": "0.5.24",
24
- "@hg-ts/knex": "0.5.24",
25
- "@hg-ts/linter": "0.5.24",
26
- "@hg-ts/logger": "0.5.24",
27
- "@hg-ts/tests": "0.5.24",
28
- "@hg-ts/types": "0.5.24",
29
- "@hg-ts/validation": "0.5.24",
21
+ "@hg-ts-config/typescript": "0.5.26",
22
+ "@hg-ts/exception": "0.5.26",
23
+ "@hg-ts/execution-mode": "0.5.26",
24
+ "@hg-ts/knex": "0.5.26",
25
+ "@hg-ts/linter": "0.5.26",
26
+ "@hg-ts/logger": "0.5.26",
27
+ "@hg-ts/tests": "0.5.26",
28
+ "@hg-ts/types": "0.5.26",
29
+ "@hg-ts/validation": "0.5.26",
30
30
  "@nestjs/common": "11.1.0",
31
31
  "@nestjs/core": "11.1.0",
32
32
  "@nestjs/platform-fastify": "11.1.0",
@@ -47,11 +47,11 @@
47
47
  "vitest": "4.0.14"
48
48
  },
49
49
  "peerDependencies": {
50
- "@hg-ts/exception": "0.5.24",
51
- "@hg-ts/execution-mode": "0.5.24",
52
- "@hg-ts/knex": "0.5.24",
53
- "@hg-ts/logger": "0.5.24",
54
- "@hg-ts/validation": "0.5.24",
50
+ "@hg-ts/exception": "0.5.26",
51
+ "@hg-ts/execution-mode": "0.5.26",
52
+ "@hg-ts/knex": "0.5.26",
53
+ "@hg-ts/logger": "0.5.26",
54
+ "@hg-ts/validation": "0.5.26",
55
55
  "@nestjs/common": "*",
56
56
  "@nestjs/core": "*",
57
57
  "@nestjs/platform-fastify": "*",
@@ -1,7 +1,12 @@
1
1
  import { BaseException } from '@hg-ts/exception';
2
- import { createSchema } from '@hg-ts/validation';
2
+ import {
3
+ createSchema,
4
+ z,
5
+ } from '@hg-ts/validation';
6
+ import { createParamDecorator } from '@nestjs/common';
3
7
 
4
8
  import { ApiResponse } from '@nestjs/swagger';
9
+ import { FastifyRequest } from 'fastify';
5
10
 
6
11
  import { ExceptionStatusAlreadyDefinedException } from '../exceptions/index.js';
7
12
  import { ExceptionService } from '../services/index.js';
@@ -40,4 +45,13 @@ export class Http {
40
45
  })(target, propertyKey, descriptor);
41
46
  };
42
47
  }
48
+
49
+ public static ValidatedHeader<T>(headerName: string, schema: z.ZodSchema<T>): () => ParameterDecorator {
50
+ return createParamDecorator((_data: unknown, ctx): T => {
51
+ const request = ctx.switchToHttp().getRequest<FastifyRequest>();
52
+ const header = request.headers[headerName];
53
+
54
+ return schema.parse(header);
55
+ });
56
+ }
43
57
  }
@@ -17,7 +17,10 @@ export class ValidationPipe implements PipeTransform<unknown, unknown> {
17
17
  this.dto = dto ?? null;
18
18
  }
19
19
 
20
- public transform(value: unknown, { metatype }: ArgumentMetadata): unknown {
20
+ public transform(value: unknown, { metatype, type }: ArgumentMetadata): unknown {
21
+ if (type === 'custom') {
22
+ return value;
23
+ }
21
24
  const schema = this.getSchema(metatype);
22
25
 
23
26
  return schema.parse(value);