@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.
- package/dist/decorators/decorators.d.ts +2 -0
- package/dist/decorators/decorators.d.ts.map +1 -1
- package/dist/decorators/decorators.js +9 -1
- package/dist/decorators/decorators.js.map +1 -1
- package/dist/middlewares/validation.pipe.d.ts +1 -1
- package/dist/middlewares/validation.pipe.d.ts.map +1 -1
- package/dist/middlewares/validation.pipe.js +4 -1
- package/dist/middlewares/validation.pipe.js.map +1 -1
- package/package.json +15 -15
- package/src/decorators/decorators.ts +15 -1
- package/src/middlewares/validation.pipe.ts +4 -1
|
@@ -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;
|
|
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,
|
|
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;
|
|
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;
|
|
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.
|
|
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.
|
|
22
|
-
"@hg-ts/exception": "0.5.
|
|
23
|
-
"@hg-ts/execution-mode": "0.5.
|
|
24
|
-
"@hg-ts/knex": "0.5.
|
|
25
|
-
"@hg-ts/linter": "0.5.
|
|
26
|
-
"@hg-ts/logger": "0.5.
|
|
27
|
-
"@hg-ts/tests": "0.5.
|
|
28
|
-
"@hg-ts/types": "0.5.
|
|
29
|
-
"@hg-ts/validation": "0.5.
|
|
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.
|
|
51
|
-
"@hg-ts/execution-mode": "0.5.
|
|
52
|
-
"@hg-ts/knex": "0.5.
|
|
53
|
-
"@hg-ts/logger": "0.5.
|
|
54
|
-
"@hg-ts/validation": "0.5.
|
|
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 {
|
|
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);
|