@lerianstudio/sindarian-server 1.0.0-beta.9 → 1.0.0
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/constants/keys.d.ts +1 -0
- package/dist/constants/keys.d.ts.map +1 -1
- package/dist/constants/keys.js +2 -1
- package/dist/constants/keys.js.map +1 -1
- package/dist/controllers/decorators/body-decorator.d.ts +12 -16
- package/dist/controllers/decorators/body-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/body-decorator.js +52 -58
- package/dist/controllers/decorators/body-decorator.js.map +1 -1
- package/dist/controllers/decorators/controller-decorator.d.ts +5 -4
- package/dist/controllers/decorators/controller-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/controller-decorator.js +29 -22
- package/dist/controllers/decorators/controller-decorator.js.map +1 -1
- package/dist/controllers/decorators/param-decorator.d.ts +4 -9
- package/dist/controllers/decorators/param-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/param-decorator.js +33 -29
- package/dist/controllers/decorators/param-decorator.js.map +1 -1
- package/dist/controllers/decorators/query-decorator.d.ts +11 -15
- package/dist/controllers/decorators/query-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/query-decorator.js +24 -38
- package/dist/controllers/decorators/query-decorator.js.map +1 -1
- package/dist/controllers/decorators/request-decorator.d.ts +8 -12
- package/dist/controllers/decorators/request-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/request-decorator.js +21 -17
- package/dist/controllers/decorators/request-decorator.js.map +1 -1
- package/dist/controllers/decorators/route-decorator.d.ts +12 -1
- package/dist/controllers/decorators/route-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/route-decorator.js +24 -16
- package/dist/controllers/decorators/route-decorator.js.map +1 -1
- package/dist/exceptions/api-exception.d.ts +4 -7
- package/dist/exceptions/api-exception.d.ts.map +1 -1
- package/dist/exceptions/api-exception.js +8 -4
- package/dist/exceptions/api-exception.js.map +1 -1
- package/dist/exceptions/base-exception-filter.d.ts.map +1 -1
- package/dist/exceptions/base-exception-filter.js +10 -3
- package/dist/exceptions/base-exception-filter.js.map +1 -1
- package/dist/exceptions/decorators/use-filters-decorator.d.ts +12 -1
- package/dist/exceptions/decorators/use-filters-decorator.d.ts.map +1 -1
- package/dist/exceptions/decorators/use-filters-decorator.js +34 -3
- package/dist/exceptions/decorators/use-filters-decorator.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptor/decorators/use-interceptor-decorator.d.ts +10 -3
- package/dist/interceptor/decorators/use-interceptor-decorator.d.ts.map +1 -1
- package/dist/interceptor/decorators/use-interceptor-decorator.js +60 -22
- package/dist/interceptor/decorators/use-interceptor-decorator.js.map +1 -1
- package/dist/modules/module-decorator.d.ts +2 -2
- package/dist/modules/module-decorator.d.ts.map +1 -1
- package/dist/modules/module-decorator.js +7 -13
- package/dist/modules/module-decorator.js.map +1 -1
- package/dist/pipes/decorators/index.d.ts +2 -0
- package/dist/pipes/decorators/index.d.ts.map +1 -0
- package/dist/pipes/decorators/index.js +6 -0
- package/dist/pipes/decorators/index.js.map +1 -0
- package/dist/pipes/decorators/use-pipes.d.ts +19 -0
- package/dist/pipes/decorators/use-pipes.d.ts.map +1 -0
- package/dist/pipes/decorators/use-pipes.js +118 -0
- package/dist/pipes/decorators/use-pipes.js.map +1 -0
- package/dist/pipes/index.d.ts +3 -0
- package/dist/pipes/index.d.ts.map +1 -0
- package/dist/pipes/index.js +18 -0
- package/dist/pipes/index.js.map +1 -0
- package/dist/pipes/pipe-transform.d.ts +46 -0
- package/dist/pipes/pipe-transform.d.ts.map +1 -0
- package/dist/pipes/pipe-transform.js +3 -0
- package/dist/pipes/pipe-transform.js.map +1 -0
- package/dist/server/server-factory.d.ts +10 -0
- package/dist/server/server-factory.d.ts.map +1 -1
- package/dist/server/server-factory.js +43 -23
- package/dist/server/server-factory.js.map +1 -1
- package/dist/services/pipes.d.ts +2 -0
- package/dist/services/pipes.d.ts.map +1 -0
- package/dist/services/pipes.js +5 -0
- package/dist/services/pipes.js.map +1 -0
- package/dist/zod/create-zod-dto.d.ts +16 -0
- package/dist/zod/create-zod-dto.d.ts.map +1 -0
- package/dist/zod/create-zod-dto.js +14 -0
- package/dist/zod/create-zod-dto.js.map +1 -0
- package/dist/zod/index.d.ts +3 -0
- package/dist/zod/index.d.ts.map +1 -0
- package/dist/zod/index.js +8 -0
- package/dist/zod/index.js.map +1 -0
- package/dist/zod/zod-validation-pipe.d.ts +5 -0
- package/dist/zod/zod-validation-pipe.d.ts.map +1 -0
- package/dist/zod/zod-validation-pipe.js +35 -0
- package/dist/zod/zod-validation-pipe.js.map +1 -0
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-decorator.d.ts","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AASlD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"module-decorator.d.ts","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AASlD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAK1C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AAIxE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAEtE,KAAK,QAAQ,GACT;IACE,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD,KAAK,CAAA;AAET,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,UAAU,EAAE,KAAK,CAAA;CAClB,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,GAAG,CAAC,QAAQ,CAAa,GACjC,cAAc,EAAE,CAmClB;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CA+C9D"}
|
|
@@ -8,6 +8,8 @@ const scopes_1 = require("../constants/scopes");
|
|
|
8
8
|
const controller_decorator_1 = require("../controllers/decorators/controller-decorator");
|
|
9
9
|
const use_interceptor_decorator_1 = require("../interceptor/decorators/use-interceptor-decorator");
|
|
10
10
|
const logger_1 = require("../logger/logger");
|
|
11
|
+
const use_pipes_1 = require("../pipes/decorators/use-pipes");
|
|
12
|
+
const use_filters_decorator_1 = require("../exceptions/decorators/use-filters-decorator");
|
|
11
13
|
function moduleHandler(target, visited = new Set()) {
|
|
12
14
|
// Prevent infinite recursion by tracking visited modules
|
|
13
15
|
if (visited.has(target)) {
|
|
@@ -24,7 +26,7 @@ function moduleHandler(target, visited = new Set()) {
|
|
|
24
26
|
}
|
|
25
27
|
if (controllers) {
|
|
26
28
|
for (const controller of controllers) {
|
|
27
|
-
const controllerRoutes =
|
|
29
|
+
const controllerRoutes = controller_decorator_1.ControllerHandler.getRoutes(controller).map((route) => ({
|
|
28
30
|
...route,
|
|
29
31
|
controller
|
|
30
32
|
}));
|
|
@@ -51,18 +53,10 @@ function Module(options) {
|
|
|
51
53
|
controllers.forEach((controller) => {
|
|
52
54
|
// Bind the controller
|
|
53
55
|
container.bind(controller).to(controller).inSingletonScope();
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (typeof interceptor === 'function') {
|
|
59
|
-
container.bind(interceptor).toSelf().inSingletonScope();
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
// If it's an instance, bind it to its constructor class as a constant value
|
|
63
|
-
container.bind(interceptor.constructor).toConstantValue(interceptor);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
56
|
+
// Bind other related decorators
|
|
57
|
+
use_interceptor_decorator_1.InterceptorHandler.register(container, controller);
|
|
58
|
+
use_pipes_1.PipeHandler.register(container, controller);
|
|
59
|
+
use_filters_decorator_1.FilterHandler.register(container, controller);
|
|
66
60
|
});
|
|
67
61
|
}
|
|
68
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-decorator.js","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":";;AAyCA,
|
|
1
|
+
{"version":3,"file":"module-decorator.js","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipes/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UsePipes = void 0;
|
|
4
|
+
var use_pipes_1 = require("./use-pipes");
|
|
5
|
+
Object.defineProperty(exports, "UsePipes", { enumerable: true, get: function () { return use_pipes_1.UsePipes; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/decorators/index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAA7B,qGAAA,QAAQ,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PipeTransform } from '../pipe-transform';
|
|
2
|
+
import { Class } from '../../types/class';
|
|
3
|
+
import { RouteContext } from '../../controllers/decorators/route-decorator';
|
|
4
|
+
import { Container } from '../../dependency-injection';
|
|
5
|
+
type PipeMetadata = {
|
|
6
|
+
pipes: (Class<PipeTransform> | PipeTransform)[];
|
|
7
|
+
};
|
|
8
|
+
export declare class PipeHandler {
|
|
9
|
+
static getClassMetadata(target: object): PipeMetadata | undefined;
|
|
10
|
+
static getMethodMetadata(target: object, propertyKey: string | symbol): PipeMetadata | undefined;
|
|
11
|
+
static register(container: Container, target: Class): void;
|
|
12
|
+
static fetch(container: Container, target: object, methodName: string | symbol): Promise<PipeTransform[]>;
|
|
13
|
+
static execute(target: object, propertyKey: string | symbol, pipes: PipeTransform[], args: RouteContext[]): Promise<any[]>;
|
|
14
|
+
private static _fetch;
|
|
15
|
+
private static _register;
|
|
16
|
+
}
|
|
17
|
+
export declare function UsePipes(...pipes: (Class<PipeTransform> | PipeTransform)[]): (target: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) => void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=use-pipes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pipes.d.ts","sourceRoot":"","sources":["../../../src/pipes/decorators/use-pipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EACL,YAAY,EAEb,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,EAAE,CAAA;CAChD,CAAA;AAED,qBAAa,WAAW;IACtB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjE,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,YAAY,GAAG,SAAS;IAgB3B,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK;WA4BtC,KAAK,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC;WA2Bd,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,YAAY,EAAE,GACnB,OAAO,CAAC,GAAG,EAAE,CAAC;mBAmCI,MAAM;mBAUN,SAAS;CAc/B;AAED,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,EAAE,IAEvE,QAAQ,GAAG,EACX,cAAc,MAAM,GAAG,MAAM,EAC7B,aAAa,kBAAkB,UA0BlC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PipeHandler = void 0;
|
|
4
|
+
exports.UsePipes = UsePipes;
|
|
5
|
+
const keys_1 = require("../../constants/keys");
|
|
6
|
+
const get_class_methods_1 = require("../../utils/class/get-class-methods");
|
|
7
|
+
const route_decorator_1 = require("../../controllers/decorators/route-decorator");
|
|
8
|
+
class PipeHandler {
|
|
9
|
+
static getClassMetadata(target) {
|
|
10
|
+
return Reflect.getOwnMetadata(keys_1.PIPE_KEY, target);
|
|
11
|
+
}
|
|
12
|
+
static getMethodMetadata(target, propertyKey) {
|
|
13
|
+
// First check if metadata exists directly on the target (method-level decorator)
|
|
14
|
+
let metadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target, propertyKey);
|
|
15
|
+
// If not found, check on the constructor prototype (class-level decorator)
|
|
16
|
+
if (!metadata && target.constructor) {
|
|
17
|
+
metadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target.constructor.prototype, propertyKey);
|
|
18
|
+
}
|
|
19
|
+
return metadata;
|
|
20
|
+
}
|
|
21
|
+
static register(container, target) {
|
|
22
|
+
const metadata = PipeHandler.getClassMetadata(target);
|
|
23
|
+
if (metadata && metadata?.pipes?.length !== 0) {
|
|
24
|
+
const { pipes } = metadata;
|
|
25
|
+
pipes.forEach((pipe) => {
|
|
26
|
+
PipeHandler._register(container, pipe);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// Register methods pipes
|
|
30
|
+
const methodNames = (0, get_class_methods_1.getClassMethods)(target);
|
|
31
|
+
methodNames.forEach((methodName) => {
|
|
32
|
+
const methodMetadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target.prototype, methodName);
|
|
33
|
+
if (methodMetadata) {
|
|
34
|
+
methodMetadata.pipes.forEach((pipe) => {
|
|
35
|
+
PipeHandler._register(container, pipe);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
static async fetch(container, target, methodName) {
|
|
41
|
+
const pipes = [];
|
|
42
|
+
const metadata = PipeHandler.getClassMetadata(target.constructor);
|
|
43
|
+
if (metadata && metadata.pipes.length > 0) {
|
|
44
|
+
pipes.push(...(await Promise.all(metadata.pipes.map((pipe) => PipeHandler._fetch(container, pipe)))));
|
|
45
|
+
}
|
|
46
|
+
const methodMetadata = PipeHandler.getMethodMetadata(target, methodName);
|
|
47
|
+
if (methodMetadata) {
|
|
48
|
+
pipes.push(...(await Promise.all(methodMetadata.pipes.map((pipe) => PipeHandler._fetch(container, pipe)))));
|
|
49
|
+
}
|
|
50
|
+
return pipes;
|
|
51
|
+
}
|
|
52
|
+
static async execute(target, propertyKey, pipes, args) {
|
|
53
|
+
const metadata = route_decorator_1.RouteHandler.getMetadata(target.constructor, propertyKey);
|
|
54
|
+
if (pipes.length === 0) {
|
|
55
|
+
return args;
|
|
56
|
+
}
|
|
57
|
+
// Get paramTypes from route metadata (which contains the method parameter types)
|
|
58
|
+
const paramTypes = metadata?.paramTypes || [];
|
|
59
|
+
const pipedArgs = await Promise.all(args.map(async (arg) => {
|
|
60
|
+
// Get the parameter type for this argument - prefer arg.paramType over paramTypes array
|
|
61
|
+
const metatype = arg.paramType || paramTypes[arg.parameterIndex];
|
|
62
|
+
// Process through pipes (pipes parameter contains resolved instances)
|
|
63
|
+
let result = arg.parameter;
|
|
64
|
+
for (const pipe of pipes) {
|
|
65
|
+
result = await pipe.transform(result, {
|
|
66
|
+
type: arg.type || 'custom',
|
|
67
|
+
metatype: metatype,
|
|
68
|
+
data: arg.parameter
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
...arg,
|
|
73
|
+
parameter: result
|
|
74
|
+
};
|
|
75
|
+
}));
|
|
76
|
+
return pipedArgs.map((arg) => arg.parameter);
|
|
77
|
+
}
|
|
78
|
+
static async _fetch(container, pipe) {
|
|
79
|
+
if (typeof pipe === 'function') {
|
|
80
|
+
return container.getAsync(pipe);
|
|
81
|
+
}
|
|
82
|
+
return container.getAsync(pipe.constructor);
|
|
83
|
+
}
|
|
84
|
+
static async _register(container, pipe) {
|
|
85
|
+
// If it's a class constructor (function), register it in the container
|
|
86
|
+
if (typeof pipe === 'function') {
|
|
87
|
+
if (!container.isBound(pipe)) {
|
|
88
|
+
container.bind(pipe).toSelf().inSingletonScope();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// If it's an instance, bind it to its constructor class as a constant value
|
|
93
|
+
container.bind(pipe.constructor).toConstantValue(pipe);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.PipeHandler = PipeHandler;
|
|
98
|
+
function UsePipes(...pipes) {
|
|
99
|
+
return (target, propertyKey, descriptor) => {
|
|
100
|
+
if (descriptor && propertyKey) {
|
|
101
|
+
// Method decorator
|
|
102
|
+
Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes }, target, propertyKey);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
// Class decorator
|
|
107
|
+
const methodNames = (0, get_class_methods_1.getClassMethods)(target);
|
|
108
|
+
// Store class-level pipes metadata
|
|
109
|
+
Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes, paramTypes: [] }, target);
|
|
110
|
+
// Process each method and store its paramTypes
|
|
111
|
+
methodNames.forEach((methodName) => {
|
|
112
|
+
// Store method-specific metadata with class pipes and method paramTypes
|
|
113
|
+
Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes }, target.prototype, methodName);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=use-pipes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pipes.js","sourceRoot":"","sources":["../../../src/pipes/decorators/use-pipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./decorators"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Class } from '../types/class';
|
|
2
|
+
/**
|
|
3
|
+
* @publicApi
|
|
4
|
+
*/
|
|
5
|
+
export type Paramtype = 'body' | 'query' | 'param' | 'custom';
|
|
6
|
+
export type Transform<T = any> = (value: T, metadata: ArgumentMetadata) => any;
|
|
7
|
+
/**
|
|
8
|
+
* Interface describing a pipe implementation's `transform()` method metadata argument.
|
|
9
|
+
*
|
|
10
|
+
* @see [Pipes](https://docs.nestjs.com/pipes)
|
|
11
|
+
*
|
|
12
|
+
* @publicApi
|
|
13
|
+
*/
|
|
14
|
+
export interface ArgumentMetadata {
|
|
15
|
+
/**
|
|
16
|
+
* Indicates whether argument is a body, query, param, or custom parameter
|
|
17
|
+
*/
|
|
18
|
+
readonly type: Paramtype;
|
|
19
|
+
/**
|
|
20
|
+
* Underlying base type (e.g., `String`) of the parameter, based on the type
|
|
21
|
+
* definition in the route handler.
|
|
22
|
+
*/
|
|
23
|
+
readonly metatype?: Class<any> | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* String passed as an argument to the decorator.
|
|
26
|
+
* Example: `@Body('userId')` would yield `userId`
|
|
27
|
+
*/
|
|
28
|
+
readonly data?: string | undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Interface describing implementation of a pipe.
|
|
32
|
+
*
|
|
33
|
+
* @see [Pipes](https://docs.nestjs.com/pipes)
|
|
34
|
+
*
|
|
35
|
+
* @publicApi
|
|
36
|
+
*/
|
|
37
|
+
export interface PipeTransform<T = any, R = any> {
|
|
38
|
+
/**
|
|
39
|
+
* Method to implement a custom pipe. Called with two parameters
|
|
40
|
+
*
|
|
41
|
+
* @param value argument before it is received by route handler method
|
|
42
|
+
* @param metadata contains metadata about the value
|
|
43
|
+
*/
|
|
44
|
+
transform(value: T, metadata: ArgumentMetadata): R;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=pipe-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe-transform.d.ts","sourceRoot":"","sources":["../../src/pipes/pipe-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE7D,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,KAAK,GAAG,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;IAC7C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAA;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe-transform.js","sourceRoot":"","sources":["../../src/pipes/pipe-transform.ts"],"names":[],"mappings":""}
|
|
@@ -5,6 +5,7 @@ import { ModuleMetadata } from '../modules/module-decorator';
|
|
|
5
5
|
import { Class } from '../types/class';
|
|
6
6
|
import { NextRequest } from 'next/server';
|
|
7
7
|
import { LoggerService } from '../logger/logger-service';
|
|
8
|
+
import { PipeTransform } from '../pipes/pipe-transform';
|
|
8
9
|
export type ServerFactoryOptions = {
|
|
9
10
|
logger?: LoggerService | boolean;
|
|
10
11
|
};
|
|
@@ -12,6 +13,7 @@ export declare class ServerFactory {
|
|
|
12
13
|
private globalPrefix;
|
|
13
14
|
private globalFilters;
|
|
14
15
|
private globalInterceptors;
|
|
16
|
+
private globalPipes;
|
|
15
17
|
private readonly module;
|
|
16
18
|
private readonly container;
|
|
17
19
|
private readonly routes;
|
|
@@ -24,6 +26,7 @@ export declare class ServerFactory {
|
|
|
24
26
|
setGlobalPrefix(prefix: string): void;
|
|
25
27
|
useGlobalFilters(...filters: ExceptionFilter[]): void;
|
|
26
28
|
useGlobalInterceptors(...interceptors: Interceptor[]): void;
|
|
29
|
+
useGlobalPipes(...pipes: PipeTransform[]): void;
|
|
27
30
|
/**
|
|
28
31
|
* Handle a request
|
|
29
32
|
* @param request - The request to handle
|
|
@@ -50,5 +53,12 @@ export declare class ServerFactory {
|
|
|
50
53
|
private _fetchInterceptors;
|
|
51
54
|
private _fetchHandler;
|
|
52
55
|
private _fetchExceptionFilters;
|
|
56
|
+
/**
|
|
57
|
+
* Fetch the pipes for a controller method
|
|
58
|
+
* @param controller
|
|
59
|
+
* @param methodName
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
private _fetchPipes;
|
|
53
63
|
}
|
|
54
64
|
//# sourceMappingURL=server-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-factory.d.ts","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"server-factory.d.ts","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAiB,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAI1E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAIvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAKtD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAA;CACjC,CAAA;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;WAQ3D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAYlE;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,gBAAgB,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE;IAI9C,qBAAqB,CAAC,GAAG,YAAY,EAAE,WAAW,EAAE;IAIpD,cAAc,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE;IAI/C;;;;;OAKG;IACU,OAAO,CAClB,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE;IAgFtC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;YAiBL,kBAAkB;IAqBhC,OAAO,CAAC,aAAa;YAiBP,sBAAsB;IAgBpC;;;;;OAKG;YACW,WAAW;CAqB1B"}
|
|
@@ -18,11 +18,15 @@ const server_1 = require("next/server");
|
|
|
18
18
|
const logger_1 = require("../logger/logger");
|
|
19
19
|
const api_exception_1 = require("../exceptions/api-exception");
|
|
20
20
|
const lodash_1 = require("lodash");
|
|
21
|
+
const pipes_1 = require("../services/pipes");
|
|
22
|
+
const use_pipes_1 = require("../pipes/decorators/use-pipes");
|
|
23
|
+
const route_decorator_1 = require("../controllers/decorators/route-decorator");
|
|
21
24
|
class ServerFactory {
|
|
22
25
|
constructor(module, container, routes) {
|
|
23
26
|
this.globalPrefix = '';
|
|
24
27
|
this.globalFilters = [new base_exception_filter_1.BaseExceptionFilter()];
|
|
25
28
|
this.globalInterceptors = [];
|
|
29
|
+
this.globalPipes = [];
|
|
26
30
|
this.module = module;
|
|
27
31
|
this.container = container;
|
|
28
32
|
this.routes = routes;
|
|
@@ -48,6 +52,9 @@ class ServerFactory {
|
|
|
48
52
|
useGlobalInterceptors(...interceptors) {
|
|
49
53
|
this.globalInterceptors.push(...interceptors);
|
|
50
54
|
}
|
|
55
|
+
useGlobalPipes(...pipes) {
|
|
56
|
+
this.globalPipes.push(...pipes);
|
|
57
|
+
}
|
|
51
58
|
/**
|
|
52
59
|
* Handle a request
|
|
53
60
|
* @param request - The request to handle
|
|
@@ -61,15 +68,22 @@ class ServerFactory {
|
|
|
61
68
|
// Bind the current request to the container for this request lifecycle
|
|
62
69
|
(0, request_1.bindRequest)(this.container, request);
|
|
63
70
|
const { pathname, method } = this._parseRequest(request);
|
|
64
|
-
const
|
|
65
|
-
controller = await this.container.getAsync(
|
|
66
|
-
const handler = this._fetchHandler(controller,
|
|
71
|
+
const match = this._fetchRoute(pathname, method);
|
|
72
|
+
controller = await this.container.getAsync(match?.controller);
|
|
73
|
+
const handler = this._fetchHandler(controller, match?.methodName);
|
|
67
74
|
const executionContext = new execution_context_1.ExecutionContext(controller.constructor, handler, [request]);
|
|
68
75
|
// Check if there's any interceptors to execute
|
|
69
76
|
const interceptors = await this._fetchInterceptors(controller);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
// Check if there's any pipes to execute
|
|
78
|
+
const pipes = await this._fetchPipes(controller, match?.methodName);
|
|
79
|
+
return await use_interceptor_decorator_1.InterceptorHandler.execute(executionContext, interceptors, async () => {
|
|
80
|
+
// Parse args
|
|
81
|
+
const args = await route_decorator_1.RouteHandler.getArgs(controller, match?.methodName, [request, { params }]);
|
|
82
|
+
// Run registered pipes
|
|
83
|
+
const pipedArgs = await use_pipes_1.PipeHandler.execute(controller, match?.methodName, pipes, args);
|
|
84
|
+
// Execute controller
|
|
85
|
+
return await handler.call(controller, ...pipedArgs);
|
|
86
|
+
});
|
|
73
87
|
}
|
|
74
88
|
catch (error) {
|
|
75
89
|
const filters = await this._fetchExceptionFilters(controller);
|
|
@@ -133,18 +147,9 @@ class ServerFactory {
|
|
|
133
147
|
if (appInterceptor) {
|
|
134
148
|
interceptors.push(await this.container.getAsync(interceptor_1.APP_INTERCEPTOR));
|
|
135
149
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const resolvedInterceptors = await Promise.all(metadata.map((interceptor) => {
|
|
140
|
-
// If it's a class constructor (function), resolve from container
|
|
141
|
-
if (typeof interceptor === 'function') {
|
|
142
|
-
return this.container.getAsync(interceptor);
|
|
143
|
-
}
|
|
144
|
-
// If it's an instance, resolve from container using its constructor
|
|
145
|
-
return this.container.getAsync(interceptor.constructor);
|
|
146
|
-
}));
|
|
147
|
-
interceptors.push(...resolvedInterceptors);
|
|
150
|
+
if (controller) {
|
|
151
|
+
// Fetch controller interceptors
|
|
152
|
+
interceptors.push(...(await use_interceptor_decorator_1.InterceptorHandler.fetch(this.container, controller)));
|
|
148
153
|
}
|
|
149
154
|
return interceptors.reverse();
|
|
150
155
|
}
|
|
@@ -164,14 +169,29 @@ class ServerFactory {
|
|
|
164
169
|
filters.push(await this.container.getAsync(filters_1.APP_FILTER));
|
|
165
170
|
}
|
|
166
171
|
if (controller) {
|
|
167
|
-
|
|
168
|
-
const controllerFilters = (0, use_filters_decorator_1.filterHandler)(controller.constructor);
|
|
169
|
-
if (controllerFilters.length > 0) {
|
|
170
|
-
filters.push(...controllerFilters);
|
|
171
|
-
}
|
|
172
|
+
filters.push(...(await use_filters_decorator_1.FilterHandler.fetch(this.container, controller)));
|
|
172
173
|
}
|
|
173
174
|
return filters.reverse();
|
|
174
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Fetch the pipes for a controller method
|
|
178
|
+
* @param controller
|
|
179
|
+
* @param methodName
|
|
180
|
+
* @returns
|
|
181
|
+
*/
|
|
182
|
+
async _fetchPipes(controller, methodName) {
|
|
183
|
+
const pipes = [...this.globalPipes];
|
|
184
|
+
// Fetch any registered global pipes
|
|
185
|
+
const appPipe = this.container.isBound(pipes_1.APP_PIPE);
|
|
186
|
+
if (appPipe) {
|
|
187
|
+
pipes.push(await this.container.getAsync(pipes_1.APP_PIPE));
|
|
188
|
+
}
|
|
189
|
+
// Fetch controller pipes
|
|
190
|
+
if (controller) {
|
|
191
|
+
pipes.push(...(await use_pipes_1.PipeHandler.fetch(this.container, controller, methodName)));
|
|
192
|
+
}
|
|
193
|
+
return pipes.reverse();
|
|
194
|
+
}
|
|
175
195
|
}
|
|
176
196
|
exports.ServerFactory = ServerFactory;
|
|
177
197
|
//# sourceMappingURL=server-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-factory.js","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AACxD,mEAA8D;AAC9D,2CAAkD;AAElD,gEAA4D;AAC5D,8EAAwE;AACxE,6EAAsE;AACtE,yFAA6E;AAE7E,
|
|
1
|
+
{"version":3,"file":"server-factory.js","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipes.d.ts","sourceRoot":"","sources":["../../src/services/pipes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,eAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../src/services/pipes.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type * as z3 from 'zod/v3';
|
|
2
|
+
import { $ZodType } from 'zod/v4/core/index.cjs';
|
|
3
|
+
export interface UnknownSchema {
|
|
4
|
+
parse(input: unknown): unknown;
|
|
5
|
+
array?: () => UnknownSchema;
|
|
6
|
+
}
|
|
7
|
+
export interface ZodDto<TSchema extends UnknownSchema> {
|
|
8
|
+
new (): ReturnType<TSchema['parse']>;
|
|
9
|
+
isZodDto: true;
|
|
10
|
+
schema: TSchema;
|
|
11
|
+
create(input: unknown): ReturnType<TSchema['parse']>;
|
|
12
|
+
}
|
|
13
|
+
export declare function createZodDto<TSchema extends UnknownSchema | z3.ZodTypeAny | ($ZodType & {
|
|
14
|
+
parse: (input: unknown) => unknown;
|
|
15
|
+
})>(schema: TSchema): ZodDto<TSchema>;
|
|
16
|
+
//# sourceMappingURL=create-zod-dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-zod-dto.d.ts","sourceRoot":"","sources":["../../src/zod/create-zod-dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,aAAa;IACnD,QAAQ,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACpC,QAAQ,EAAE,IAAI,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,wBAAgB,YAAY,CAC1B,OAAO,SACH,aAAa,GACb,EAAE,CAAC,UAAU,GACb,CAAC,QAAQ,GAAG;IAAE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,CAAC,EACvD,MAAM,EAAE,OAAO,GAUsB,MAAM,CAAC,OAAO,CAAC,CACrD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createZodDto = createZodDto;
|
|
4
|
+
function createZodDto(schema) {
|
|
5
|
+
class AugmentedZodDto {
|
|
6
|
+
static create(input) {
|
|
7
|
+
return this.schema.parse(input);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
AugmentedZodDto.isZodDto = true;
|
|
11
|
+
AugmentedZodDto.schema = schema;
|
|
12
|
+
return AugmentedZodDto;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=create-zod-dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-zod-dto.js","sourceRoot":"","sources":["../../src/zod/create-zod-dto.ts"],"names":[],"mappings":";;AAeA,oCAgBC;AAhBD,SAAgB,YAAY,CAK1B,MAAe;IACf,MAAM,eAAe;QAIZ,MAAM,CAAC,MAAM,CAAC,KAAc;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;;IALsB,wBAAQ,GAAG,IAAI,CAAA;IACf,sBAAM,GAAG,MAAM,CAAA;IAOxC,OAAO,eAA6C,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZodValidationPipe = exports.createZodDto = void 0;
|
|
4
|
+
var create_zod_dto_1 = require("./create-zod-dto");
|
|
5
|
+
Object.defineProperty(exports, "createZodDto", { enumerable: true, get: function () { return create_zod_dto_1.createZodDto; } });
|
|
6
|
+
var zod_validation_pipe_1 = require("./zod-validation-pipe");
|
|
7
|
+
Object.defineProperty(exports, "ZodValidationPipe", { enumerable: true, get: function () { return zod_validation_pipe_1.ZodValidationPipe; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":";;;AAAA,mDAAuD;AAAtC,8GAAA,YAAY,OAAA;AAC7B,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-validation-pipe.d.ts","sourceRoot":"","sources":["../../src/zod/zod-validation-pipe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGxE,qBACa,iBAAkB,YAAW,aAAa;IACrD,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,GAAG,GAAG;CAmBvD"}
|