@lerianstudio/sindarian-server 1.0.0-beta.9 → 1.1.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/README.md +268 -21
- package/dist/constants/keys.d.ts +3 -0
- package/dist/constants/keys.d.ts.map +1 -1
- package/dist/constants/keys.js +4 -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 +16 -1
- package/dist/controllers/decorators/route-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/route-decorator.js +31 -16
- package/dist/controllers/decorators/route-decorator.js.map +1 -1
- package/dist/dependency-injection/container.d.ts +4 -3
- package/dist/dependency-injection/container.d.ts.map +1 -1
- package/dist/dependency-injection/container.js +14 -3
- package/dist/dependency-injection/container.js.map +1 -1
- package/dist/dependency-injection/injectable-decorator.d.ts +5 -0
- package/dist/dependency-injection/injectable-decorator.d.ts.map +1 -1
- package/dist/dependency-injection/injectable-decorator.js +9 -0
- package/dist/dependency-injection/injectable-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/guards/can-activate.d.ts +21 -0
- package/dist/guards/can-activate.d.ts.map +1 -0
- package/dist/guards/can-activate.js +3 -0
- package/dist/guards/can-activate.js.map +1 -0
- package/dist/guards/decorators/index.d.ts +2 -0
- package/dist/guards/decorators/index.d.ts.map +1 -0
- package/dist/guards/decorators/index.js +18 -0
- package/dist/guards/decorators/index.js.map +1 -0
- package/dist/guards/decorators/use-guards-decorator.d.ts +44 -0
- package/dist/guards/decorators/use-guards-decorator.d.ts.map +1 -0
- package/dist/guards/decorators/use-guards-decorator.js +127 -0
- package/dist/guards/decorators/use-guards-decorator.js.map +1 -0
- package/dist/guards/index.d.ts +3 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/index.js +19 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -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 +52 -22
- package/dist/interceptor/decorators/use-interceptor-decorator.js.map +1 -1
- package/dist/logger/console-logger.d.ts.map +1 -1
- package/dist/logger/console-logger.js +6 -0
- package/dist/logger/console-logger.js.map +1 -1
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +19 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/middleware-handler.d.ts +6 -0
- package/dist/middleware/middleware-handler.d.ts.map +1 -0
- package/dist/middleware/middleware-handler.js +19 -0
- package/dist/middleware/middleware-handler.js.map +1 -0
- package/dist/middleware/middleware.d.ts +6 -0
- package/dist/middleware/middleware.d.ts.map +1 -0
- package/dist/middleware/middleware.js +7 -0
- package/dist/middleware/middleware.js.map +1 -0
- 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 +34 -14
- 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 +48 -1
- package/dist/server/server-factory.d.ts.map +1 -1
- package/dist/server/server-factory.js +169 -34
- package/dist/server/server-factory.js.map +1 -1
- package/dist/services/guards.d.ts +2 -0
- package/dist/services/guards.d.ts.map +1 -0
- package/dist/services/guards.js +5 -0
- package/dist/services/guards.js.map +1 -0
- package/dist/services/middleware.d.ts +2 -0
- package/dist/services/middleware.d.ts.map +1 -0
- package/dist/services/middleware.js +5 -0
- package/dist/services/middleware.js.map +1 -0
- 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/utils/routes/route-specificity.d.ts +40 -0
- package/dist/utils/routes/route-specificity.d.ts.map +1 -0
- package/dist/utils/routes/route-specificity.js +89 -0
- package/dist/utils/routes/route-specificity.js.map +1 -0
- package/dist/utils/url/url-match.d.ts.map +1 -1
- package/dist/utils/url/url-match.js +16 -2
- package/dist/utils/url/url-match.js.map +1 -1
- 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 +6 -3
package/dist/index.js
CHANGED
|
@@ -16,25 +16,37 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.HttpService = exports.APP_FILTER = exports.APP_INTERCEPTOR = exports.REQUEST = void 0;
|
|
19
|
+
exports.CLASS_NAME_KEY = exports.APP_MIDDLEWARE = exports.HttpService = exports.APP_PIPE = exports.APP_FILTER = exports.APP_INTERCEPTOR = exports.APP_GUARD = exports.REQUEST = void 0;
|
|
20
20
|
require("reflect-metadata");
|
|
21
21
|
__exportStar(require("./constants"), exports);
|
|
22
22
|
__exportStar(require("./utils/apply-decorators"), exports);
|
|
23
23
|
__exportStar(require("./context"), exports);
|
|
24
24
|
__exportStar(require("./exceptions"), exports);
|
|
25
|
+
__exportStar(require("./guards"), exports);
|
|
25
26
|
__exportStar(require("./interceptor"), exports);
|
|
26
27
|
__exportStar(require("./logger"), exports);
|
|
27
28
|
__exportStar(require("./controllers"), exports);
|
|
28
29
|
__exportStar(require("./dependency-injection"), exports);
|
|
29
30
|
__exportStar(require("./modules"), exports);
|
|
31
|
+
__exportStar(require("./middleware"), exports);
|
|
32
|
+
__exportStar(require("./pipes"), exports);
|
|
30
33
|
__exportStar(require("./server"), exports);
|
|
34
|
+
__exportStar(require("./zod"), exports);
|
|
31
35
|
// Services
|
|
32
36
|
var request_1 = require("./services/request");
|
|
33
37
|
Object.defineProperty(exports, "REQUEST", { enumerable: true, get: function () { return request_1.REQUEST; } });
|
|
38
|
+
var guards_1 = require("./services/guards");
|
|
39
|
+
Object.defineProperty(exports, "APP_GUARD", { enumerable: true, get: function () { return guards_1.APP_GUARD; } });
|
|
34
40
|
var interceptor_1 = require("./services/interceptor");
|
|
35
41
|
Object.defineProperty(exports, "APP_INTERCEPTOR", { enumerable: true, get: function () { return interceptor_1.APP_INTERCEPTOR; } });
|
|
36
42
|
var filters_1 = require("./services/filters");
|
|
37
43
|
Object.defineProperty(exports, "APP_FILTER", { enumerable: true, get: function () { return filters_1.APP_FILTER; } });
|
|
44
|
+
var pipes_1 = require("./services/pipes");
|
|
45
|
+
Object.defineProperty(exports, "APP_PIPE", { enumerable: true, get: function () { return pipes_1.APP_PIPE; } });
|
|
38
46
|
var http_service_1 = require("./services/http-service");
|
|
39
47
|
Object.defineProperty(exports, "HttpService", { enumerable: true, get: function () { return http_service_1.HttpService; } });
|
|
48
|
+
var middleware_1 = require("./services/middleware");
|
|
49
|
+
Object.defineProperty(exports, "APP_MIDDLEWARE", { enumerable: true, get: function () { return middleware_1.APP_MIDDLEWARE; } });
|
|
50
|
+
var keys_1 = require("./constants/keys");
|
|
51
|
+
Object.defineProperty(exports, "CLASS_NAME_KEY", { enumerable: true, get: function () { return keys_1.CLASS_NAME_KEY; } });
|
|
40
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,sEAAsE;;;;;;;;;;;;;;;;;AAEtE,4BAAyB;AAEzB,8CAA2B;AAC3B,2DAAwC;AACxC,4CAAyB;AACzB,+CAA4B;AAC5B,gDAA6B;AAC7B,2CAAwB;AACxB,gDAA6B;AAC7B,yDAAsC;AACtC,4CAAyB;AACzB,2CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,sEAAsE;;;;;;;;;;;;;;;;;AAEtE,4BAAyB;AAEzB,8CAA2B;AAC3B,2DAAwC;AACxC,4CAAyB;AACzB,+CAA4B;AAC5B,2CAAwB;AACxB,gDAA6B;AAC7B,2CAAwB;AACxB,gDAA6B;AAC7B,yDAAsC;AACtC,4CAAyB;AACzB,+CAA4B;AAC5B,0CAAuB;AACvB,2CAAwB;AACxB,wCAAqB;AAErB,WAAW;AACX,8CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,4CAA6C;AAApC,mGAAA,SAAS,OAAA;AAClB,sDAAwD;AAA/C,8GAAA,eAAe,OAAA;AACxB,8CAA+C;AAAtC,qGAAA,UAAU,OAAA;AACnB,0CAA2C;AAAlC,iGAAA,QAAQ,OAAA;AACjB,wDAAyE;AAA5C,2GAAA,WAAW,OAAA;AACxC,oDAAsD;AAA7C,4GAAA,cAAc,OAAA;AACvB,yCAAiD;AAAxC,sGAAA,cAAc,OAAA"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { Interceptor } from '../interceptor';
|
|
2
2
|
import { ExecutionContext } from '../../context/execution-context';
|
|
3
3
|
import { Class } from '../../types/class';
|
|
4
|
-
|
|
5
|
-
export type InterceptorMetadata =
|
|
6
|
-
|
|
4
|
+
import type { Container } from '../../dependency-injection';
|
|
5
|
+
export type InterceptorMetadata = {
|
|
6
|
+
interceptors: (Interceptor | Class<Interceptor>)[];
|
|
7
|
+
};
|
|
8
|
+
export declare class InterceptorHandler {
|
|
9
|
+
static getMetadata(target: object): InterceptorMetadata;
|
|
10
|
+
static register(container: Container, target: object): Promise<void>;
|
|
11
|
+
static fetch(container: Container, target: object): Promise<Interceptor[]>;
|
|
12
|
+
static execute(executionContext: ExecutionContext, middlewares: Interceptor[], action: () => Promise<any>): Promise<any>;
|
|
13
|
+
}
|
|
7
14
|
export declare function UseInterceptors(...interceptors: (Interceptor | Class<Interceptor>)[]): ClassDecorator;
|
|
8
15
|
//# sourceMappingURL=use-interceptor-decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-interceptor-decorator.d.ts","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"use-interceptor-decorator.d.ts","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;WAQ1C,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;WAoB7C,KAAK,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC;WAmBZ,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EAAE,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;CAqB7B;AAED,wBAAgB,eAAe,CAC7B,GAAG,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,GACpD,cAAc,CAUhB"}
|
|
@@ -1,34 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.interceptorHandler = interceptorHandler;
|
|
3
|
+
exports.InterceptorHandler = void 0;
|
|
5
4
|
exports.UseInterceptors = UseInterceptors;
|
|
6
5
|
const keys_1 = require("../../constants/keys");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
class InterceptorHandler {
|
|
7
|
+
static getMetadata(target) {
|
|
8
|
+
const metadata = Reflect.getOwnMetadata(keys_1.INTERCEPTOR_KEY, target);
|
|
9
|
+
if (metadata) {
|
|
10
|
+
return { interceptors: metadata };
|
|
11
|
+
}
|
|
12
|
+
return { interceptors: [] };
|
|
10
13
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
static async register(container, target) {
|
|
15
|
+
const metadata = InterceptorHandler.getMetadata(target);
|
|
16
|
+
if (!metadata || metadata.interceptors.length === 0) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
metadata.interceptors.forEach((interceptor) => {
|
|
20
|
+
// If it's a class constructor (function), register it in the container
|
|
21
|
+
if (typeof interceptor === 'function') {
|
|
22
|
+
if (!container.isBound(interceptor)) {
|
|
23
|
+
container.bind(interceptor).toSelf().inSingletonScope();
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
else {
|
|
27
|
+
// If it's an instance, bind it to its constructor class as a constant value
|
|
28
|
+
container.bind(interceptor.constructor).toConstantValue(interceptor);
|
|
24
29
|
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
static async fetch(container, target) {
|
|
33
|
+
const metadata = InterceptorHandler.getMetadata(target);
|
|
34
|
+
if (metadata && metadata.interceptors.length > 0) {
|
|
35
|
+
return await Promise.all(metadata.interceptors.map((interceptor) => {
|
|
36
|
+
// If it's a class constructor (function), resolve from container
|
|
37
|
+
if (typeof interceptor === 'function') {
|
|
38
|
+
return container.getAsync(interceptor);
|
|
39
|
+
}
|
|
40
|
+
// If it's an instance, resolve from container using its constructor
|
|
41
|
+
return container.getAsync(interceptor.constructor);
|
|
42
|
+
}));
|
|
25
43
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
static async execute(executionContext, middlewares, action) {
|
|
47
|
+
if (middlewares.length === 0) {
|
|
48
|
+
return await action();
|
|
49
|
+
}
|
|
50
|
+
const createNext = (i) => ({
|
|
51
|
+
handle: async () => {
|
|
52
|
+
if (i >= middlewares.length) {
|
|
53
|
+
return await action();
|
|
54
|
+
}
|
|
55
|
+
return await middlewares[i].intercept(executionContext, createNext(i + 1));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return await createNext(0).handle();
|
|
59
|
+
}
|
|
31
60
|
}
|
|
61
|
+
exports.InterceptorHandler = InterceptorHandler;
|
|
32
62
|
function UseInterceptors(...interceptors) {
|
|
33
63
|
return (target) => {
|
|
34
64
|
const existingInterceptors = Reflect.getOwnMetadata(keys_1.INTERCEPTOR_KEY, target) || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-interceptor-decorator.js","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-interceptor-decorator.js","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAY1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB,CAAA;AAED,qBACa,aAAc,YAAW,aAAa;IACjD,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAqB;IAEpD,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAA;gBAEd,OAAO,CAAC,EAAE,oBAAoB;IAQvD,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAInD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAInD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpD,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAItD;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE;IAO/B,SAAS,CAAC,YAAY,CACpB,KAAK,EAAE,MAAM,YAAQ,EACrB,OAAO,EAAE,GAAG,EACZ,eAAe,GAAE,QAAQ,GAAG,QAAmB,GAC9C,IAAI;
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAY1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB,CAAA;AAED,qBACa,aAAc,YAAW,aAAa;IACjD,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAqB;IAEpD,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAA;gBAEd,OAAO,CAAC,EAAE,oBAAoB;IAQvD,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAInD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAInD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpD,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAItD;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE;IAO/B,SAAS,CAAC,YAAY,CACpB,KAAK,EAAE,MAAM,YAAQ,EACrB,OAAO,EAAE,GAAG,EACZ,eAAe,GAAE,QAAQ,GAAG,QAAmB,GAC9C,IAAI;IAcP,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM;CAM7D"}
|
|
@@ -60,6 +60,12 @@ let ConsoleLogger = class ConsoleLogger {
|
|
|
60
60
|
this.options.logLevels = levels;
|
|
61
61
|
}
|
|
62
62
|
printMessage(level = 'log', message, writeStreamType = 'stdout') {
|
|
63
|
+
// Always log error and fatal levels, regardless of configuration
|
|
64
|
+
const isErrorLevel = level === 'error' || level === 'fatal';
|
|
65
|
+
const isLevelEnabled = this.options.logLevels?.includes(level);
|
|
66
|
+
if (!isErrorLevel && !isLevelEnabled) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
63
69
|
const logLevel = level.toUpperCase();
|
|
64
70
|
process[writeStreamType].write(this.formatMessage(logLevel, message));
|
|
65
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAiD;AAEjD,qCAAiC;AAEjC,MAAM,kBAAkB,GAAe;IACrC,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;CACR,CAAA;AAQM,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKxB,YAAyB,OAA8B;QAJ7C,cAAS,GAAe,kBAAkB,CAAA;QAKlD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QACvB,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAA;QACtC,OAAO,CAAC,MAAM,KAAK,WAAW,CAAA;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,GAAG,CAAC,OAAY,EAAE,GAAG,cAAqB;QACxC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAY,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAE,OAAY,EAAE,GAAG,cAAqB;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,CAAE,OAAY,EAAE,GAAG,cAAqB;QAC7C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAA;IACjC,CAAC;IAES,YAAY,CACpB,QAAgB,KAAK,EACrB,OAAY,EACZ,kBAAuC,QAAQ;QAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEpC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACvE,CAAC;IAES,aAAa,CAAC,KAAa,EAAE,OAAY;QACjD,MAAM,SAAS,GAAG,eAAM,CAAC,YAAY,EAAE,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEpC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,OAAO,SAAS,KAAK,QAAQ,KAAK,OAAO,IAAI,CAAA;IAC7E,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAiD;AAEjD,qCAAiC;AAEjC,MAAM,kBAAkB,GAAe;IACrC,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;CACR,CAAA;AAQM,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKxB,YAAyB,OAA8B;QAJ7C,cAAS,GAAe,kBAAkB,CAAA;QAKlD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QACvB,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAA;QACtC,OAAO,CAAC,MAAM,KAAK,WAAW,CAAA;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,GAAG,CAAC,OAAY,EAAE,GAAG,cAAqB;QACxC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAY,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAE,OAAY,EAAE,GAAG,cAAqB;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,CAAE,OAAY,EAAE,GAAG,cAAqB;QAC7C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAA;IACjC,CAAC;IAES,YAAY,CACpB,QAAgB,KAAK,EACrB,OAAY,EACZ,kBAAuC,QAAQ;QAE/C,iEAAiE;QACjE,MAAM,YAAY,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,CAAA;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAiB,CAAC,CAAA;QAE1E,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEpC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACvE,CAAC;IAES,aAAa,CAAC,KAAa,EAAE,OAAY;QACjD,MAAM,SAAS,GAAG,eAAM,CAAC,YAAY,EAAE,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEpC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,OAAO,SAAS,KAAK,QAAQ,KAAK,OAAO,IAAI,CAAA;IAC7E,CAAC;CACF,CAAA;AAxEY,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAU,GAAE;IAME,WAAA,IAAA,qBAAS,GAAE,CAAA;;GALb,aAAa,CAwEzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./middleware"), exports);
|
|
18
|
+
__exportStar(require("./middleware-handler"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,uDAAoC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { NextRequest } from 'next/server';
|
|
2
|
+
import { Middleware } from './middleware';
|
|
3
|
+
export declare class MiddlewareHandler {
|
|
4
|
+
static execute(request: NextRequest, middlewares: Middleware[], action: () => Promise<Response>): Promise<Response>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=middleware-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAA;AAEzD,qBAAa,iBAAiB;WACf,OAAO,CAClB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC;CAerB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiddlewareHandler = void 0;
|
|
4
|
+
class MiddlewareHandler {
|
|
5
|
+
static async execute(request, middlewares, action) {
|
|
6
|
+
if (middlewares.length === 0) {
|
|
7
|
+
return await action();
|
|
8
|
+
}
|
|
9
|
+
const createNext = (i) => async () => {
|
|
10
|
+
if (i >= middlewares.length) {
|
|
11
|
+
return await action();
|
|
12
|
+
}
|
|
13
|
+
return await middlewares[i].use(request, createNext(i + 1));
|
|
14
|
+
};
|
|
15
|
+
return await createNext(0)();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MiddlewareHandler = MiddlewareHandler;
|
|
19
|
+
//# sourceMappingURL=middleware-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-handler.js","sourceRoot":"","sources":["../../src/middleware/middleware-handler.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,OAAoB,EACpB,WAAyB,EACzB,MAA+B;QAE/B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,MAAM,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAAS,EAAkB,EAAE,CAAC,KAAK,IAAI,EAAE;YAC3D,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC5B,OAAO,MAAM,MAAM,EAAE,CAAA;YACvB,CAAC;YAED,OAAO,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAA;QAED,OAAO,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9B,CAAC;CACF;AApBD,8CAoBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEpD,8BAAsB,UAAU;IAC9B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CAC5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":";;;AAIA,MAAsB,UAAU;CAE/B;AAFD,gCAEC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ResolutionContext } from 'inversify';
|
|
2
2
|
import { Class, Constructor } from '../types/class';
|
|
3
3
|
import { Scope } from '../constants/scopes';
|
|
4
|
-
import {
|
|
4
|
+
import { RouteMetadata } from '../controllers/decorators/route-decorator';
|
|
5
5
|
export type InjectionToken<T = any> = symbol | string | Constructor<T>;
|
|
6
6
|
type Provider = {
|
|
7
7
|
provide: InjectionToken;
|
|
@@ -15,7 +15,7 @@ export type ModuleOptions = {
|
|
|
15
15
|
controllers?: Class[];
|
|
16
16
|
providers?: Provider[];
|
|
17
17
|
};
|
|
18
|
-
export type ModuleMetadata =
|
|
18
|
+
export type ModuleMetadata = RouteMetadata & {
|
|
19
19
|
controller: Class;
|
|
20
20
|
};
|
|
21
21
|
export declare function moduleHandler(target: Function, visited?: Set<Function>): ModuleMetadata[];
|
|
@@ -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;AAsBxE,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,25 @@ 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");
|
|
13
|
+
const filters_1 = require("../services/filters");
|
|
14
|
+
const guards_1 = require("../services/guards");
|
|
15
|
+
const interceptor_1 = require("../services/interceptor");
|
|
16
|
+
const middleware_1 = require("../services/middleware");
|
|
17
|
+
const pipes_1 = require("../services/pipes");
|
|
18
|
+
/**
|
|
19
|
+
* Tokens that support multiple bindings (accumulated via getAllAsync).
|
|
20
|
+
* These are NOT overridden when re-provided - they accumulate like NestJS.
|
|
21
|
+
* All other tokens follow "last provider wins" override semantics.
|
|
22
|
+
*/
|
|
23
|
+
const MULTI_PROVIDER_TOKENS = new Set([
|
|
24
|
+
filters_1.APP_FILTER,
|
|
25
|
+
guards_1.APP_GUARD,
|
|
26
|
+
interceptor_1.APP_INTERCEPTOR,
|
|
27
|
+
middleware_1.APP_MIDDLEWARE,
|
|
28
|
+
pipes_1.APP_PIPE
|
|
29
|
+
]);
|
|
11
30
|
function moduleHandler(target, visited = new Set()) {
|
|
12
31
|
// Prevent infinite recursion by tracking visited modules
|
|
13
32
|
if (visited.has(target)) {
|
|
@@ -24,7 +43,7 @@ function moduleHandler(target, visited = new Set()) {
|
|
|
24
43
|
}
|
|
25
44
|
if (controllers) {
|
|
26
45
|
for (const controller of controllers) {
|
|
27
|
-
const controllerRoutes =
|
|
46
|
+
const controllerRoutes = controller_decorator_1.ControllerHandler.getRoutes(controller).map((route) => ({
|
|
28
47
|
...route,
|
|
29
48
|
controller
|
|
30
49
|
}));
|
|
@@ -51,18 +70,10 @@ function Module(options) {
|
|
|
51
70
|
controllers.forEach((controller) => {
|
|
52
71
|
// Bind the controller
|
|
53
72
|
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
|
-
});
|
|
73
|
+
// Bind other related decorators
|
|
74
|
+
use_interceptor_decorator_1.InterceptorHandler.register(container, controller);
|
|
75
|
+
use_pipes_1.PipeHandler.register(container, controller);
|
|
76
|
+
use_filters_decorator_1.FilterHandler.register(container, controller);
|
|
66
77
|
});
|
|
67
78
|
}
|
|
68
79
|
});
|
|
@@ -90,7 +101,10 @@ function registerProvider(container, provider) {
|
|
|
90
101
|
registerProviderObject(container, provider);
|
|
91
102
|
}
|
|
92
103
|
else {
|
|
93
|
-
//
|
|
104
|
+
// Simple class type - override if already bound (NestJS-style "last wins")
|
|
105
|
+
if (container.isBound(provider)) {
|
|
106
|
+
container.unbind(provider);
|
|
107
|
+
}
|
|
94
108
|
container.bind(provider).to(provider);
|
|
95
109
|
}
|
|
96
110
|
}
|
|
@@ -106,6 +120,12 @@ function registerProviderObject(container, provider) {
|
|
|
106
120
|
return;
|
|
107
121
|
}
|
|
108
122
|
const { provide, useClass, useValue, useFactory, scope } = provider;
|
|
123
|
+
// Multi-provider tokens (APP_FILTER, APP_GUARD, etc.) accumulate bindings.
|
|
124
|
+
// All other tokens follow "last provider wins" - override if already bound.
|
|
125
|
+
const isMultiProvider = typeof provide === 'symbol' && MULTI_PROVIDER_TOKENS.has(provide);
|
|
126
|
+
if (!isMultiProvider && container.isBound(provide)) {
|
|
127
|
+
container.unbind(provide);
|
|
128
|
+
}
|
|
109
129
|
const bind = container.bind(provide);
|
|
110
130
|
if (useClass) {
|
|
111
131
|
registerScope(bind.to(useClass), scope);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-decorator.js","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":";;
|
|
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.map((arg) => arg.parameter);
|
|
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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"}
|