@tsed/common 7.0.0-beta.13 → 7.0.0-beta.14
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/lib/cjs/builder/PlatformBuilder.js +20 -10
- package/lib/cjs/builder/PlatformBuilder.js.map +1 -1
- package/lib/cjs/decorators/params/error.js +1 -1
- package/lib/cjs/decorators/params/error.js.map +1 -1
- package/lib/cjs/domain/AnyToPromiseWithCtx.js +1 -3
- package/lib/cjs/domain/AnyToPromiseWithCtx.js.map +1 -1
- package/lib/cjs/domain/PlatformContext.js +18 -1
- package/lib/cjs/domain/PlatformContext.js.map +1 -1
- package/lib/cjs/domain/PlatformRouteDetails.js +0 -25
- package/lib/cjs/domain/PlatformRouteDetails.js.map +1 -1
- package/lib/cjs/exports.js +1 -0
- package/lib/cjs/exports.js.map +1 -1
- package/lib/cjs/index.js +1 -7
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/Route.js.map +1 -1
- package/lib/cjs/middlewares/PlatformMulterMiddleware.js.map +1 -1
- package/lib/cjs/services/FakeAdapter.js +5 -9
- package/lib/cjs/services/FakeAdapter.js.map +1 -1
- package/lib/cjs/services/Platform.js +41 -85
- package/lib/cjs/services/Platform.js.map +1 -1
- package/lib/cjs/services/PlatformAdapter.js +0 -2
- package/lib/cjs/services/PlatformAdapter.js.map +1 -1
- package/lib/cjs/services/PlatformApplication.js +27 -10
- package/lib/cjs/services/PlatformApplication.js.map +1 -1
- package/lib/cjs/services/PlatformHandler.js +87 -163
- package/lib/cjs/services/PlatformHandler.js.map +1 -1
- package/lib/cjs/services/PlatformMiddlewaresChain.js +2 -18
- package/lib/cjs/services/PlatformMiddlewaresChain.js.map +1 -1
- package/lib/cjs/services/PlatformRequest.js +2 -2
- package/lib/cjs/services/PlatformRequest.js.map +1 -1
- package/lib/cjs/services/PlatformResponse.js +2 -2
- package/lib/cjs/services/PlatformResponse.js.map +1 -1
- package/lib/cjs/utils/createContext.js +2 -2
- package/lib/cjs/utils/createContext.js.map +1 -1
- package/lib/cjs/utils/createInjector.js +0 -2
- package/lib/cjs/utils/createInjector.js.map +1 -1
- package/lib/cjs/utils/ensureContext.js +16 -0
- package/lib/cjs/utils/ensureContext.js.map +1 -0
- package/lib/cjs/utils/printRoutes.js +10 -8
- package/lib/cjs/utils/printRoutes.js.map +1 -1
- package/lib/cjs/utils/setResponseHeaders.js.map +1 -1
- package/lib/esm/builder/PlatformBuilder.js +20 -10
- package/lib/esm/builder/PlatformBuilder.js.map +1 -1
- package/lib/esm/decorators/params/error.js +1 -1
- package/lib/esm/decorators/params/error.js.map +1 -1
- package/lib/esm/domain/AnyToPromiseWithCtx.js +1 -3
- package/lib/esm/domain/AnyToPromiseWithCtx.js.map +1 -1
- package/lib/esm/domain/PlatformContext.js +18 -1
- package/lib/esm/domain/PlatformContext.js.map +1 -1
- package/lib/esm/domain/PlatformRouteDetails.js +1 -23
- package/lib/esm/domain/PlatformRouteDetails.js.map +1 -1
- package/lib/esm/exports.js +1 -0
- package/lib/esm/exports.js.map +1 -1
- package/lib/esm/index.js +1 -7
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/Route.js.map +1 -1
- package/lib/esm/middlewares/PlatformMulterMiddleware.js.map +1 -1
- package/lib/esm/services/FakeAdapter.js +5 -9
- package/lib/esm/services/FakeAdapter.js.map +1 -1
- package/lib/esm/services/Platform.js +42 -86
- package/lib/esm/services/Platform.js.map +1 -1
- package/lib/esm/services/PlatformAdapter.js +0 -2
- package/lib/esm/services/PlatformAdapter.js.map +1 -1
- package/lib/esm/services/PlatformApplication.js +27 -10
- package/lib/esm/services/PlatformApplication.js.map +1 -1
- package/lib/esm/services/PlatformHandler.js +89 -165
- package/lib/esm/services/PlatformHandler.js.map +1 -1
- package/lib/esm/services/PlatformMiddlewaresChain.js +2 -18
- package/lib/esm/services/PlatformMiddlewaresChain.js.map +1 -1
- package/lib/esm/services/PlatformRequest.js +2 -2
- package/lib/esm/services/PlatformRequest.js.map +1 -1
- package/lib/esm/services/PlatformResponse.js +2 -2
- package/lib/esm/services/PlatformResponse.js.map +1 -1
- package/lib/esm/utils/createContext.js +2 -2
- package/lib/esm/utils/createContext.js.map +1 -1
- package/lib/esm/utils/createInjector.js +0 -2
- package/lib/esm/utils/createInjector.js.map +1 -1
- package/lib/esm/utils/ensureContext.js +12 -0
- package/lib/esm/utils/ensureContext.js.map +1 -0
- package/lib/esm/utils/printRoutes.js +10 -8
- package/lib/esm/utils/printRoutes.js.map +1 -1
- package/lib/esm/utils/setResponseHeaders.js.map +1 -1
- package/lib/types/builder/PlatformBuilder.d.ts +13 -11
- package/lib/types/domain/AnyToPromiseWithCtx.d.ts +1 -9
- package/lib/types/domain/PlatformContext.d.ts +14 -1
- package/lib/types/domain/PlatformRouteDetails.d.ts +6 -15
- package/lib/types/exports.d.ts +1 -0
- package/lib/types/index.d.ts +1 -7
- package/lib/types/interfaces/Route.d.ts +2 -3
- package/lib/types/middlewares/PlatformMulterMiddleware.d.ts +1 -1
- package/lib/types/services/FakeAdapter.d.ts +7 -6
- package/lib/types/services/Platform.d.ts +11 -28
- package/lib/types/services/PlatformAdapter.d.ts +19 -10
- package/lib/types/services/PlatformApplication.d.ts +14 -6
- package/lib/types/services/PlatformHandler.d.ts +19 -55
- package/lib/types/services/PlatformMiddlewaresChain.d.ts +1 -2
- package/lib/types/services/PlatformRequest.d.ts +1 -5
- package/lib/types/services/PlatformResponse.d.ts +1 -2
- package/lib/types/services/PlatformTest.d.ts +2 -1
- package/lib/types/utils/createContext.d.ts +1 -1
- package/lib/types/utils/createInjector.d.ts +1 -1
- package/lib/types/utils/ensureContext.d.ts +2 -0
- package/package.json +16 -15
- package/lib/cjs/builder/PlatformControllerBuilder.js +0 -82
- package/lib/cjs/builder/PlatformControllerBuilder.js.map +0 -1
- package/lib/cjs/domain/ControllerProvider.js +0 -52
- package/lib/cjs/domain/ControllerProvider.js.map +0 -1
- package/lib/cjs/domain/HandlerMetadata.js +0 -62
- package/lib/cjs/domain/HandlerMetadata.js.map +0 -1
- package/lib/cjs/middlewares/bindEndpointMiddleware.js +0 -13
- package/lib/cjs/middlewares/bindEndpointMiddleware.js.map +0 -1
- package/lib/cjs/services/PlatformRouter.js +0 -114
- package/lib/cjs/services/PlatformRouter.js.map +0 -1
- package/lib/cjs/utils/createHandlerMetadata.js +0 -49
- package/lib/cjs/utils/createHandlerMetadata.js.map +0 -1
- package/lib/cjs/utils/useCtxHandler.js +0 -15
- package/lib/cjs/utils/useCtxHandler.js.map +0 -1
- package/lib/esm/builder/PlatformControllerBuilder.js +0 -76
- package/lib/esm/builder/PlatformControllerBuilder.js.map +0 -1
- package/lib/esm/domain/ControllerProvider.js +0 -48
- package/lib/esm/domain/ControllerProvider.js.map +0 -1
- package/lib/esm/domain/HandlerMetadata.js +0 -58
- package/lib/esm/domain/HandlerMetadata.js.map +0 -1
- package/lib/esm/middlewares/bindEndpointMiddleware.js +0 -9
- package/lib/esm/middlewares/bindEndpointMiddleware.js.map +0 -1
- package/lib/esm/services/PlatformRouter.js +0 -111
- package/lib/esm/services/PlatformRouter.js.map +0 -1
- package/lib/esm/utils/createHandlerMetadata.js +0 -45
- package/lib/esm/utils/createHandlerMetadata.js.map +0 -1
- package/lib/esm/utils/useCtxHandler.js +0 -11
- package/lib/esm/utils/useCtxHandler.js.map +0 -1
- package/lib/types/builder/PlatformControllerBuilder.d.ts +0 -18
- package/lib/types/domain/ControllerProvider.d.ts +0 -24
- package/lib/types/domain/HandlerMetadata.d.ts +0 -32
- package/lib/types/middlewares/bindEndpointMiddleware.d.ts +0 -6
- package/lib/types/services/PlatformRouter.d.ts +0 -51
- package/lib/types/utils/createHandlerMetadata.d.ts +0 -8
- package/lib/types/utils/useCtxHandler.d.ts +0 -13
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { Type } from "@tsed/core";
|
|
2
3
|
import { DITest, DITestOptions, InjectorService } from "@tsed/di";
|
|
3
4
|
import { PlatformContext, PlatformContextOptions } from "../domain/PlatformContext";
|
|
@@ -51,7 +52,7 @@ export declare class PlatformTest extends DITest {
|
|
|
51
52
|
* });
|
|
52
53
|
* ```
|
|
53
54
|
*/
|
|
54
|
-
static callback(): any;
|
|
55
|
+
static callback(): ((req: import("http").IncomingMessage, res: import("http").ServerResponse) => any) | undefined;
|
|
55
56
|
static createRequest(options?: any): any;
|
|
56
57
|
static createResponse(options?: any): any;
|
|
57
58
|
static createRequestContext(options?: Partial<PlatformContextOptions & any>): PlatformContext<import("./PlatformRequest").PlatformRequest<any>, import("./PlatformResponse").PlatformResponse<any>>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { InjectorService } from "@tsed/di";
|
|
2
2
|
import { PlatformContext } from "../domain/PlatformContext";
|
|
3
|
+
import { IncomingEvent } from "../interfaces/IncomingEvent";
|
|
3
4
|
import { PlatformRequest } from "../services/PlatformRequest";
|
|
4
5
|
import { PlatformResponse } from "../services/PlatformResponse";
|
|
5
|
-
import { IncomingEvent } from "../interfaces/IncomingEvent";
|
|
6
6
|
export declare function ignoreLog(ignoreUrlPatterns: any[] | undefined): ((ignore: boolean, data: any, url: string) => any) | undefined;
|
|
7
7
|
/**
|
|
8
8
|
* Create the TsED context to wrap request, response, injector, etc...
|
|
@@ -2,7 +2,7 @@ import { Type } from "@tsed/core";
|
|
|
2
2
|
import { InjectorService } from "@tsed/di";
|
|
3
3
|
import { PlatformAdapter } from "../services/PlatformAdapter";
|
|
4
4
|
interface CreateInjectorOptions {
|
|
5
|
-
adapter?: Type<PlatformAdapter<any
|
|
5
|
+
adapter?: Type<PlatformAdapter<any>>;
|
|
6
6
|
settings?: Partial<TsED.Configuration>;
|
|
7
7
|
}
|
|
8
8
|
export declare function createInjector({ adapter, settings }: CreateInjectorOptions): InjectorService;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/common",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.14",
|
|
4
4
|
"description": "A TypeScript Framework on top of Express",
|
|
5
5
|
"private": false,
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -62,22 +62,23 @@
|
|
|
62
62
|
}
|
|
63
63
|
],
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@tsed/components-scan": "7.0.0-beta.
|
|
66
|
-
"@tsed/core": "7.0.0-beta.
|
|
67
|
-
"@tsed/di": "7.0.0-beta.
|
|
68
|
-
"@tsed/exceptions": "7.0.0-beta.
|
|
69
|
-
"@tsed/json-mapper": "7.0.0-beta.
|
|
65
|
+
"@tsed/components-scan": "7.0.0-beta.14",
|
|
66
|
+
"@tsed/core": "7.0.0-beta.14",
|
|
67
|
+
"@tsed/di": "7.0.0-beta.14",
|
|
68
|
+
"@tsed/exceptions": "7.0.0-beta.14",
|
|
69
|
+
"@tsed/json-mapper": "7.0.0-beta.14",
|
|
70
70
|
"@tsed/logger": ">=6.2.0",
|
|
71
71
|
"@tsed/logger-file": ">=6.2.0",
|
|
72
|
-
"@tsed/perf": "7.0.0-beta.
|
|
73
|
-
"@tsed/platform-cache": "7.0.0-beta.
|
|
74
|
-
"@tsed/platform-exceptions": "7.0.0-beta.
|
|
75
|
-
"@tsed/platform-log-middleware": "7.0.0-beta.
|
|
76
|
-
"@tsed/platform-middlewares": "7.0.0-beta.
|
|
77
|
-
"@tsed/platform-params": "7.0.0-beta.
|
|
78
|
-
"@tsed/platform-response-filter": "7.0.0-beta.
|
|
79
|
-
"@tsed/platform-
|
|
80
|
-
"@tsed/
|
|
72
|
+
"@tsed/perf": "7.0.0-beta.14",
|
|
73
|
+
"@tsed/platform-cache": "7.0.0-beta.14",
|
|
74
|
+
"@tsed/platform-exceptions": "7.0.0-beta.14",
|
|
75
|
+
"@tsed/platform-log-middleware": "7.0.0-beta.14",
|
|
76
|
+
"@tsed/platform-middlewares": "7.0.0-beta.14",
|
|
77
|
+
"@tsed/platform-params": "7.0.0-beta.14",
|
|
78
|
+
"@tsed/platform-response-filter": "7.0.0-beta.14",
|
|
79
|
+
"@tsed/platform-router": "7.0.0-beta.14",
|
|
80
|
+
"@tsed/platform-views": "7.0.0-beta.14",
|
|
81
|
+
"@tsed/schema": "7.0.0-beta.14",
|
|
81
82
|
"@types/json-schema": "7.0.11",
|
|
82
83
|
"@types/on-finished": "2.3.1",
|
|
83
84
|
"on-finished": "2.4.1",
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildRouter = exports.createRouter = exports.getRouter = void 0;
|
|
4
|
-
const di_1 = require("@tsed/di");
|
|
5
|
-
const schema_1 = require("@tsed/schema");
|
|
6
|
-
const ControllerProvider_1 = require("../domain/ControllerProvider");
|
|
7
|
-
const PlatformRouter_1 = require("../services/PlatformRouter");
|
|
8
|
-
const PlatformMiddlewaresChain_1 = require("../services/PlatformMiddlewaresChain");
|
|
9
|
-
di_1.GlobalProviders.createRegistry(di_1.ProviderType.CONTROLLER, ControllerProvider_1.ControllerProvider, {
|
|
10
|
-
onInvoke(provider, locals, { injector }) {
|
|
11
|
-
const router = createRouter(injector, provider);
|
|
12
|
-
locals.set(PlatformRouter_1.PlatformRouter, router);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
/**
|
|
16
|
-
* @ignore
|
|
17
|
-
*/
|
|
18
|
-
function formatMethod(method) {
|
|
19
|
-
return (method === schema_1.OperationMethods.CUSTOM ? "use" : method || "use").toLowerCase();
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @ignore
|
|
23
|
-
*/
|
|
24
|
-
function getRouter(injector, provider) {
|
|
25
|
-
return injector.get(provider.tokenRouter);
|
|
26
|
-
}
|
|
27
|
-
exports.getRouter = getRouter;
|
|
28
|
-
/**
|
|
29
|
-
* @ignore
|
|
30
|
-
*/
|
|
31
|
-
function createRouter(injector, provider) {
|
|
32
|
-
const token = provider.tokenRouter;
|
|
33
|
-
if (injector.has(token)) {
|
|
34
|
-
return getRouter(injector, provider);
|
|
35
|
-
}
|
|
36
|
-
const router = PlatformRouter_1.PlatformRouter.create(injector, provider.routerOptions);
|
|
37
|
-
return injector
|
|
38
|
-
.add(token, {
|
|
39
|
-
useValue: router
|
|
40
|
-
})
|
|
41
|
-
.invoke(token);
|
|
42
|
-
}
|
|
43
|
-
exports.createRouter = createRouter;
|
|
44
|
-
/**
|
|
45
|
-
* @ignore
|
|
46
|
-
* @param injector
|
|
47
|
-
* @param provider
|
|
48
|
-
* @param parentUseBefore
|
|
49
|
-
*/
|
|
50
|
-
function buildRouter(injector, provider, parentUseBefore = []) {
|
|
51
|
-
const { middlewares: { useBefore }, children } = provider;
|
|
52
|
-
// Controller lifecycle
|
|
53
|
-
const router = createRouter(injector, provider);
|
|
54
|
-
if (!router.isBuilt) {
|
|
55
|
-
router.isBuilt = true;
|
|
56
|
-
const platformMiddlewaresChain = injector.get(PlatformMiddlewaresChain_1.PlatformMiddlewaresChain);
|
|
57
|
-
// build all endpoints and his middlewares
|
|
58
|
-
(0, schema_1.getOperationsRoutes)(provider.token).forEach((operationRoute) => {
|
|
59
|
-
const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);
|
|
60
|
-
router.addRoute({
|
|
61
|
-
handlers,
|
|
62
|
-
token: operationRoute.token,
|
|
63
|
-
method: formatMethod(operationRoute.method),
|
|
64
|
-
path: operationRoute.path,
|
|
65
|
-
isFinal: operationRoute.isFinal
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
const middlewares = [...parentUseBefore, ...useBefore];
|
|
69
|
-
// build children controllers
|
|
70
|
-
children.forEach((child) => {
|
|
71
|
-
const childProvider = injector.getProvider(child);
|
|
72
|
-
/* istanbul ignore next */
|
|
73
|
-
if (!childProvider) {
|
|
74
|
-
throw new Error("Controller component not found in the ControllerRegistry");
|
|
75
|
-
}
|
|
76
|
-
router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
return router;
|
|
80
|
-
}
|
|
81
|
-
exports.buildRouter = buildRouter;
|
|
82
|
-
//# sourceMappingURL=PlatformControllerBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformControllerBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformControllerBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {GlobalProviders, InjectorService, ProviderType} from \"@tsed/di\";\nimport {getOperationsRoutes, OperationMethods} from \"@tsed/schema\";\nimport {ControllerProvider} from \"../domain/ControllerProvider\";\nimport {PlatformRouter} from \"../services/PlatformRouter\";\nimport {PlatformMiddlewaresChain} from \"../services/PlatformMiddlewaresChain\";\n\nGlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {\n onInvoke(provider: ControllerProvider, locals: any, {injector}) {\n const router = createRouter(injector, provider);\n locals.set(PlatformRouter, router);\n }\n});\n\n/**\n * @ignore\n */\nfunction formatMethod(method: string | undefined) {\n return (method === OperationMethods.CUSTOM ? \"use\" : method || \"use\").toLowerCase();\n}\n\n/**\n * @ignore\n */\nexport function getRouter(injector: InjectorService, provider: ControllerProvider) {\n return injector.get(provider.tokenRouter)!;\n}\n\n/**\n * @ignore\n */\nexport function createRouter(injector: InjectorService, provider: ControllerProvider): PlatformRouter {\n const token = provider.tokenRouter;\n\n if (injector.has(token)) {\n return getRouter(injector, provider);\n }\n\n const router = PlatformRouter.create(injector, provider.routerOptions);\n\n return injector\n .add(token, {\n useValue: router\n })\n .invoke<PlatformRouter>(token);\n}\n\n/**\n * @ignore\n * @param injector\n * @param provider\n * @param parentUseBefore\n */\nexport function buildRouter(injector: InjectorService, provider: ControllerProvider, parentUseBefore: any[] = []) {\n const {\n middlewares: {useBefore},\n children\n } = provider;\n\n // Controller lifecycle\n const router = createRouter(injector, provider);\n\n if (!router.isBuilt) {\n router.isBuilt = true;\n\n const platformMiddlewaresChain = injector.get<PlatformMiddlewaresChain>(PlatformMiddlewaresChain);\n\n // build all endpoints and his middlewares\n getOperationsRoutes(provider.token).forEach((operationRoute) => {\n const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);\n\n router.addRoute({\n handlers,\n token: operationRoute.token,\n method: formatMethod(operationRoute.method),\n path: operationRoute.path,\n isFinal: operationRoute.isFinal\n });\n });\n\n const middlewares: any[] = [...parentUseBefore, ...useBefore];\n // build children controllers\n children.forEach((child: Type<any>) => {\n const childProvider = injector.getProvider(child) as ControllerProvider;\n\n /* istanbul ignore next */\n if (!childProvider) {\n throw new Error(\"Controller component not found in the ControllerRegistry\");\n }\n\n router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));\n });\n }\n\n return router;\n}\n"]}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ControllerProvider = void 0;
|
|
4
|
-
const di_1 = require("@tsed/di");
|
|
5
|
-
const routerOptions_1 = require("../constants/routerOptions");
|
|
6
|
-
let AUTO_INC = 0;
|
|
7
|
-
class ControllerProvider extends di_1.Provider {
|
|
8
|
-
tokenRouter;
|
|
9
|
-
constructor(provide, options = {}) {
|
|
10
|
-
super(provide, options);
|
|
11
|
-
this.type = di_1.ProviderType.CONTROLLER;
|
|
12
|
-
this.tokenRouter = `${this.name}_ROUTER_${AUTO_INC++}`;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
get routerOptions() {
|
|
18
|
-
return this.store.get(routerOptions_1.ROUTER_OPTIONS) || {};
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* @param value
|
|
23
|
-
*/
|
|
24
|
-
set routerOptions(value) {
|
|
25
|
-
this.store.set(routerOptions_1.ROUTER_OPTIONS, value);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* @returns {any[]}
|
|
30
|
-
*/
|
|
31
|
-
get middlewares() {
|
|
32
|
-
return Object.assign({
|
|
33
|
-
use: [],
|
|
34
|
-
useAfter: [],
|
|
35
|
-
useBefore: []
|
|
36
|
-
}, this.store.get("middlewares", {}));
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param middlewares
|
|
41
|
-
*/
|
|
42
|
-
set middlewares(middlewares) {
|
|
43
|
-
const mdlwrs = this.middlewares;
|
|
44
|
-
const concat = (key, a, b) => (a[key] = a[key].concat(b[key]));
|
|
45
|
-
Object.keys(middlewares).forEach((key) => {
|
|
46
|
-
concat(key, mdlwrs, middlewares);
|
|
47
|
-
});
|
|
48
|
-
this.store.set("middlewares", mdlwrs);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.ControllerProvider = ControllerProvider;
|
|
52
|
-
//# sourceMappingURL=ControllerProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerProvider.js","sourceRoot":"","sources":["../../../src/domain/ControllerProvider.ts"],"names":[],"mappings":";;;AAAA,iCAAsF;AACtF,8DAA0D;AAE1D,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,MAAa,kBAA4B,SAAQ,aAAW;IACjD,WAAW,CAAS;IAE7B,YAAY,OAAsB,EAAE,UAA6B,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAY,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,QAAQ,EAAE,EAAE,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAc,CAAC,IAAK,EAAU,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa,CAAC,KAAU;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAc,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;SACd,EACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW,CAAC,WAAkC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;CACF;AApDD,gDAoDC","sourcesContent":["import {ControllerMiddlewares, Provider, ProviderType, TokenProvider} from \"@tsed/di\";\nimport {ROUTER_OPTIONS} from \"../constants/routerOptions\";\n\nlet AUTO_INC = 0;\n\nexport class ControllerProvider<T = any> extends Provider<T> {\n readonly tokenRouter: string;\n\n constructor(provide: TokenProvider, options: Partial<Provider> = {}) {\n super(provide, options);\n this.type = ProviderType.CONTROLLER;\n this.tokenRouter = `${this.name}_ROUTER_${AUTO_INC++}`;\n }\n\n /**\n *\n */\n get routerOptions(): any {\n return this.store.get(ROUTER_OPTIONS) || ({} as any);\n }\n\n /**\n *\n * @param value\n */\n set routerOptions(value: any) {\n this.store.set(ROUTER_OPTIONS, value);\n }\n\n /**\n *\n * @returns {any[]}\n */\n get middlewares(): ControllerMiddlewares {\n return Object.assign(\n {\n use: [],\n useAfter: [],\n useBefore: []\n },\n this.store.get(\"middlewares\", {})\n );\n }\n\n /**\n *\n * @param middlewares\n */\n set middlewares(middlewares: ControllerMiddlewares) {\n const mdlwrs = this.middlewares;\n const concat = (key: string, a: any, b: any) => (a[key] = a[key].concat(b[key]));\n\n Object.keys(middlewares).forEach((key: string) => {\n concat(key, mdlwrs, middlewares);\n });\n this.store.set(\"middlewares\", mdlwrs);\n }\n}\n"]}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HandlerMetadata = void 0;
|
|
4
|
-
const core_1 = require("@tsed/core");
|
|
5
|
-
const di_1 = require("@tsed/di");
|
|
6
|
-
const platform_params_1 = require("@tsed/platform-params");
|
|
7
|
-
const schema_1 = require("@tsed/schema");
|
|
8
|
-
const HandlerType_1 = require("../interfaces/HandlerType");
|
|
9
|
-
class HandlerMetadata {
|
|
10
|
-
target;
|
|
11
|
-
token;
|
|
12
|
-
propertyKey;
|
|
13
|
-
injectable = false;
|
|
14
|
-
type = HandlerType_1.HandlerType.RAW_FN;
|
|
15
|
-
hasNextFunction = false;
|
|
16
|
-
routeOptions;
|
|
17
|
-
scope;
|
|
18
|
-
handler;
|
|
19
|
-
constructor(options) {
|
|
20
|
-
const { target, token, propertyKey, type, scope, routeOptions } = options;
|
|
21
|
-
this.type = type || target.type || HandlerType_1.HandlerType.RAW_FN;
|
|
22
|
-
this.scope = scope || di_1.ProviderScope.SINGLETON;
|
|
23
|
-
this.routeOptions = routeOptions || {};
|
|
24
|
-
const handler = propertyKey ? target.prototype[propertyKey] : target;
|
|
25
|
-
if (propertyKey) {
|
|
26
|
-
this.target = target;
|
|
27
|
-
this.token = token;
|
|
28
|
-
this.propertyKey = propertyKey;
|
|
29
|
-
this.hasNextFunction = this.hasParamType(platform_params_1.ParamTypes.NEXT_FN);
|
|
30
|
-
if (this.hasParamType(platform_params_1.ParamTypes.ERR)) {
|
|
31
|
-
this.type = HandlerType_1.HandlerType.ERR_MIDDLEWARE;
|
|
32
|
-
}
|
|
33
|
-
this.injectable = schema_1.JsonParameterStore.getParams(target, propertyKey).length > 0;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.handler = handler;
|
|
37
|
-
}
|
|
38
|
-
if (!this.injectable) {
|
|
39
|
-
if (handler.length === 4) {
|
|
40
|
-
this.type = HandlerType_1.HandlerType.RAW_ERR_FN;
|
|
41
|
-
}
|
|
42
|
-
this.hasNextFunction = handler.length >= 3;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
get hasErrorParam() {
|
|
46
|
-
return this.type === HandlerType_1.HandlerType.ERR_MIDDLEWARE || this.type === HandlerType_1.HandlerType.RAW_ERR_FN;
|
|
47
|
-
}
|
|
48
|
-
getParams() {
|
|
49
|
-
return schema_1.JsonParameterStore.getParams(this.target, this.propertyKey) || [];
|
|
50
|
-
}
|
|
51
|
-
hasParamType(paramType) {
|
|
52
|
-
return this.getParams().findIndex((p) => p.paramType === paramType) > -1;
|
|
53
|
-
}
|
|
54
|
-
isFinal() {
|
|
55
|
-
return this.routeOptions?.isFinal || false;
|
|
56
|
-
}
|
|
57
|
-
toString() {
|
|
58
|
-
return [this.target && (0, core_1.nameOf)(this.target), this.propertyKey].filter(Boolean).join(".");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.HandlerMetadata = HandlerMetadata;
|
|
62
|
-
//# sourceMappingURL=HandlerMetadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerMetadata.js","sourceRoot":"","sources":["../../../src/domain/HandlerMetadata.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AACxC,iCAAuC;AACvC,2DAAiD;AACjD,yCAAgD;AAChD,2DAAsD;AAYtD,MAAa,eAAe;IACjB,MAAM,CAAM;IACZ,KAAK,CAAY;IACjB,WAAW,CAAkB;IAC7B,UAAU,GAAY,KAAK,CAAC;IAC5B,IAAI,GAAgB,yBAAW,CAAC,MAAM,CAAC;IACvC,eAAe,GAAY,KAAK,CAAC;IACjC,YAAY,CAAgC;IAC5C,KAAK,CAAgB;IAE9B,OAAO,CAAM;IAEb,YAAY,OAA+B;QACzC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC;QAExE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,yBAAW,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,kBAAa,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAErE,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAM,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,4BAAU,CAAC,OAAO,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,YAAY,CAAC,4BAAU,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,IAAI,GAAG,yBAAW,CAAC,cAAc,CAAC;aACxC;YAED,IAAI,CAAC,UAAU,GAAG,2BAAkB,CAAC,SAAS,CAAC,MAAa,EAAE,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACvF;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,IAAI,GAAG,yBAAW,CAAC,UAAU,CAAC;aACpC;YACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,yBAAW,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAW,CAAC,UAAU,CAAC;IAC1F,CAAC;IAEM,SAAS;QACd,OAAO,2BAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC;IAEM,YAAY,CAAC,SAAc;QAChC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAA,aAAM,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,CAAC;CACF;AA9DD,0CA8DC","sourcesContent":["import {nameOf, Type} from \"@tsed/core\";\nimport {ProviderScope} from \"@tsed/di\";\nimport {ParamTypes} from \"@tsed/platform-params\";\nimport {JsonParameterStore} from \"@tsed/schema\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\nimport {PlatformRouteOptions, PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\n\nexport interface HandlerMetadataOptions {\n target: (Type<any> | Function) & {type?: HandlerType};\n routeOptions?: PlatformRouteWithoutHandlers;\n token?: Type<any>;\n propertyKey?: string | symbol;\n scope?: ProviderScope;\n type?: HandlerType;\n}\n\nexport class HandlerMetadata {\n readonly target: any;\n readonly token: Type<any>;\n readonly propertyKey: string | symbol;\n readonly injectable: boolean = false;\n readonly type: HandlerType = HandlerType.RAW_FN;\n readonly hasNextFunction: boolean = false;\n readonly routeOptions: Partial<PlatformRouteOptions>;\n readonly scope: ProviderScope;\n\n handler: any;\n\n constructor(options: HandlerMetadataOptions) {\n const {target, token, propertyKey, type, scope, routeOptions} = options;\n\n this.type = type || target.type || HandlerType.RAW_FN;\n this.scope = scope || ProviderScope.SINGLETON;\n this.routeOptions = routeOptions || {};\n const handler = propertyKey ? target.prototype[propertyKey] : target;\n\n if (propertyKey) {\n this.target = target;\n this.token = token!;\n this.propertyKey = propertyKey;\n this.hasNextFunction = this.hasParamType(ParamTypes.NEXT_FN);\n\n if (this.hasParamType(ParamTypes.ERR)) {\n this.type = HandlerType.ERR_MIDDLEWARE;\n }\n\n this.injectable = JsonParameterStore.getParams(target as any, propertyKey).length > 0;\n } else {\n this.handler = handler;\n }\n\n if (!this.injectable) {\n if (handler.length === 4) {\n this.type = HandlerType.RAW_ERR_FN;\n }\n this.hasNextFunction = handler.length >= 3;\n }\n }\n\n get hasErrorParam() {\n return this.type === HandlerType.ERR_MIDDLEWARE || this.type === HandlerType.RAW_ERR_FN;\n }\n\n public getParams() {\n return JsonParameterStore.getParams(this.target, this.propertyKey) || [];\n }\n\n public hasParamType(paramType: any): boolean {\n return this.getParams().findIndex((p) => p.paramType === paramType) > -1;\n }\n\n public isFinal() {\n return this.routeOptions?.isFinal || false;\n }\n\n toString() {\n return [this.target && nameOf(this.target), this.propertyKey].filter(Boolean).join(\".\");\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.bindEndpointMiddleware = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @ignore
|
|
6
|
-
*/
|
|
7
|
-
function bindEndpointMiddleware(endpoint) {
|
|
8
|
-
return (ctx) => {
|
|
9
|
-
ctx.endpoint = endpoint;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
exports.bindEndpointMiddleware = bindEndpointMiddleware;
|
|
13
|
-
//# sourceMappingURL=bindEndpointMiddleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bindEndpointMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/bindEndpointMiddleware.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO,CAAC,GAAoB,EAAE,EAAE;QAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC;AAJD,wDAIC","sourcesContent":["import type {EndpointMetadata} from \"../domain/EndpointMetadata\";\nimport type {PlatformContext} from \"../domain/PlatformContext\";\n\n/**\n * @ignore\n */\nexport function bindEndpointMiddleware(endpoint: EndpointMetadata) {\n return (ctx: PlatformContext) => {\n ctx.endpoint = endpoint;\n };\n}\n"]}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var PlatformRouter_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.PlatformRouter = exports.PLATFORM_ROUTER_OPTIONS = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const di_1 = require("@tsed/di");
|
|
7
|
-
const PlatformHandler_1 = require("./PlatformHandler");
|
|
8
|
-
const PlatformAdapter_1 = require("./PlatformAdapter");
|
|
9
|
-
/**
|
|
10
|
-
* @ignore
|
|
11
|
-
*/
|
|
12
|
-
exports.PLATFORM_ROUTER_OPTIONS = Symbol.for("PlatformRouterOptions");
|
|
13
|
-
/**
|
|
14
|
-
* Platform Router abstraction layer.
|
|
15
|
-
* @platform
|
|
16
|
-
*/
|
|
17
|
-
let PlatformRouter = PlatformRouter_1 = class PlatformRouter {
|
|
18
|
-
platformHandler;
|
|
19
|
-
adapter;
|
|
20
|
-
rawRouter;
|
|
21
|
-
raw;
|
|
22
|
-
isBuilt = false;
|
|
23
|
-
injector;
|
|
24
|
-
callback;
|
|
25
|
-
constructor(platformHandler, adapter, routerOptions = {}) {
|
|
26
|
-
this.platformHandler = platformHandler;
|
|
27
|
-
this.adapter = adapter;
|
|
28
|
-
const { router, callback } = adapter.router(routerOptions);
|
|
29
|
-
this.rawRouter = this.raw = router;
|
|
30
|
-
this.callback = callback;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create a new instance of PlatformRouter
|
|
34
|
-
* @param injector
|
|
35
|
-
* @param routerOptions
|
|
36
|
-
*/
|
|
37
|
-
static create(injector, routerOptions = {}) {
|
|
38
|
-
const locals = new Map();
|
|
39
|
-
locals.set(exports.PLATFORM_ROUTER_OPTIONS, routerOptions);
|
|
40
|
-
return injector.invoke(PlatformRouter_1, locals);
|
|
41
|
-
}
|
|
42
|
-
getRouter() {
|
|
43
|
-
return this.rawRouter;
|
|
44
|
-
}
|
|
45
|
-
use(...handlers) {
|
|
46
|
-
// @ts-ignore
|
|
47
|
-
this.getRouter().use(...this.mapHandlers(handlers));
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
addRoute(options) {
|
|
51
|
-
const { method, path, handlers, ...opts } = options;
|
|
52
|
-
// @ts-ignore
|
|
53
|
-
this.getRouter()[method](path, ...this.mapHandlers(handlers, { method, path, ...opts }));
|
|
54
|
-
return this;
|
|
55
|
-
}
|
|
56
|
-
all(path, ...handlers) {
|
|
57
|
-
return this.addRoute({ method: "all", path, handlers, isFinal: true });
|
|
58
|
-
}
|
|
59
|
-
get(path, ...handlers) {
|
|
60
|
-
return this.addRoute({ method: "get", path, handlers, isFinal: true });
|
|
61
|
-
}
|
|
62
|
-
post(path, ...handlers) {
|
|
63
|
-
return this.addRoute({ method: "post", path, handlers, isFinal: true });
|
|
64
|
-
}
|
|
65
|
-
put(path, ...handlers) {
|
|
66
|
-
return this.addRoute({ method: "put", path, handlers, isFinal: true });
|
|
67
|
-
}
|
|
68
|
-
delete(path, ...handlers) {
|
|
69
|
-
return this.addRoute({ method: "delete", path, handlers, isFinal: true });
|
|
70
|
-
}
|
|
71
|
-
patch(path, ...handlers) {
|
|
72
|
-
return this.addRoute({ method: "patch", path, handlers, isFinal: true });
|
|
73
|
-
}
|
|
74
|
-
head(path, ...handlers) {
|
|
75
|
-
return this.addRoute({ method: "head", path, handlers, isFinal: true });
|
|
76
|
-
}
|
|
77
|
-
options(path, ...handlers) {
|
|
78
|
-
return this.addRoute({ method: "options", path, handlers, isFinal: true });
|
|
79
|
-
}
|
|
80
|
-
statics(path, options) {
|
|
81
|
-
return this.use(path, this.adapter.statics(path, options));
|
|
82
|
-
}
|
|
83
|
-
multer(options) {
|
|
84
|
-
return this.adapter.multipart(options);
|
|
85
|
-
}
|
|
86
|
-
mapHandlers(handlers, options = {}) {
|
|
87
|
-
return handlers.reduce((list, handler, index) => {
|
|
88
|
-
if (typeof handler === "string") {
|
|
89
|
-
return list.concat(handler);
|
|
90
|
-
}
|
|
91
|
-
if (handler instanceof PlatformRouter_1) {
|
|
92
|
-
return list.concat(handler.callback());
|
|
93
|
-
}
|
|
94
|
-
return list.concat(this.platformHandler.createHandler(handler, {
|
|
95
|
-
...options,
|
|
96
|
-
isFinal: options.isFinal ? index === handlers.length - 1 : false
|
|
97
|
-
}));
|
|
98
|
-
}, []);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
tslib_1.__decorate([
|
|
102
|
-
(0, di_1.Inject)(),
|
|
103
|
-
tslib_1.__metadata("design:type", di_1.InjectorService)
|
|
104
|
-
], PlatformRouter.prototype, "injector", void 0);
|
|
105
|
-
PlatformRouter = PlatformRouter_1 = tslib_1.__decorate([
|
|
106
|
-
(0, di_1.Injectable)({
|
|
107
|
-
scope: di_1.ProviderScope.INSTANCE
|
|
108
|
-
}),
|
|
109
|
-
tslib_1.__param(2, (0, di_1.Inject)(exports.PLATFORM_ROUTER_OPTIONS)),
|
|
110
|
-
tslib_1.__metadata("design:paramtypes", [PlatformHandler_1.PlatformHandler,
|
|
111
|
-
PlatformAdapter_1.PlatformAdapter, Object])
|
|
112
|
-
], PlatformRouter);
|
|
113
|
-
exports.PlatformRouter = PlatformRouter;
|
|
114
|
-
//# sourceMappingURL=PlatformRouter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformRouter.js","sourceRoot":"","sources":["../../../src/services/PlatformRouter.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable, InjectorService, PathType, ProviderScope} from \"@tsed/di\";\nimport {PlatformHandler} from \"./PlatformHandler\";\nimport {PlatformRouteOptions, PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\nimport {PlatformStaticsOptions} from \"../config/interfaces/PlatformStaticsSettings\";\nimport {PlatformMulter, PlatformMulterSettings} from \"../config/interfaces/PlatformMulterSettings\";\nimport {PlatformAdapter} from \"./PlatformAdapter\";\nimport {RouterOptions} from \"express\";\n\n/**\n * @ignore\n */\nexport const PLATFORM_ROUTER_OPTIONS = Symbol.for(\"PlatformRouterOptions\");\n\ndeclare global {\n namespace TsED {\n // @ts-ignore\n export interface Router {}\n }\n}\n\n/**\n * Platform Router abstraction layer.\n * @platform\n */\n@Injectable({\n scope: ProviderScope.INSTANCE\n})\nexport class PlatformRouter<App = TsED.Application, Router = TsED.Router> {\n rawRouter: Router;\n raw: any;\n isBuilt: boolean = false;\n\n @Inject()\n injector: InjectorService;\n\n callback: () => any;\n\n constructor(\n protected platformHandler: PlatformHandler,\n readonly adapter: PlatformAdapter<App, Router>,\n @Inject(PLATFORM_ROUTER_OPTIONS) routerOptions: Partial<RouterOptions> = {}\n ) {\n const {router, callback} = adapter.router(routerOptions);\n\n this.rawRouter = this.raw = router;\n this.callback = callback;\n }\n\n /**\n * Create a new instance of PlatformRouter\n * @param injector\n * @param routerOptions\n */\n static create(injector: InjectorService, routerOptions: any = {}) {\n const locals = new Map();\n locals.set(PLATFORM_ROUTER_OPTIONS, routerOptions);\n\n return injector.invoke<PlatformRouter>(PlatformRouter, locals);\n }\n\n getRouter(): Router {\n return this.rawRouter;\n }\n\n use(...handlers: any[]) {\n // @ts-ignore\n this.getRouter().use(...this.mapHandlers(handlers));\n\n return this;\n }\n\n addRoute(options: Partial<PlatformRouteOptions>) {\n const {method, path, handlers, ...opts} = options;\n\n // @ts-ignore\n this.getRouter()[method](path, ...this.mapHandlers(handlers, {method, path, ...opts}));\n\n return this;\n }\n\n all(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"all\", path, handlers, isFinal: true});\n }\n\n get(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"get\", path, handlers, isFinal: true});\n }\n\n post(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"post\", path, handlers, isFinal: true});\n }\n\n put(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"put\", path, handlers, isFinal: true});\n }\n\n delete(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"delete\", path, handlers, isFinal: true});\n }\n\n patch(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"patch\", path, handlers, isFinal: true});\n }\n\n head(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"head\", path, handlers, isFinal: true});\n }\n\n options(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"options\", path, handlers, isFinal: true});\n }\n\n statics(path: string, options: PlatformStaticsOptions) {\n return this.use(path, this.adapter.statics(path, options));\n }\n\n multer(options: PlatformMulterSettings): PlatformMulter {\n return this.adapter.multipart(options);\n }\n\n protected mapHandlers(handlers: any[], options: PlatformRouteWithoutHandlers = {}): any[] {\n return handlers.reduce((list, handler, index) => {\n if (typeof handler === \"string\") {\n return list.concat(handler);\n }\n\n if (handler instanceof PlatformRouter) {\n return list.concat(handler.callback());\n }\n\n return list.concat(\n this.platformHandler.createHandler(handler, {\n ...options,\n isFinal: options.isFinal ? index === handlers.length - 1 : false\n })\n );\n }, []);\n }\n}\n"]}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createHandlerMetadata = void 0;
|
|
4
|
-
const schema_1 = require("@tsed/schema");
|
|
5
|
-
const HandlerMetadata_1 = require("../domain/HandlerMetadata");
|
|
6
|
-
const HandlerType_1 = require("../interfaces/HandlerType");
|
|
7
|
-
function isMetadata(input) {
|
|
8
|
-
return input instanceof HandlerMetadata_1.HandlerMetadata;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* @ignore
|
|
12
|
-
*/
|
|
13
|
-
function createHandlerMetadata(injector, obj, routeOptions = {}) {
|
|
14
|
-
if (isMetadata(obj)) {
|
|
15
|
-
return obj;
|
|
16
|
-
}
|
|
17
|
-
let options;
|
|
18
|
-
if (obj instanceof schema_1.EndpointMetadata) {
|
|
19
|
-
const provider = injector.getProvider(routeOptions.token);
|
|
20
|
-
options = {
|
|
21
|
-
token: provider.token,
|
|
22
|
-
target: provider.useClass,
|
|
23
|
-
scope: provider.scope,
|
|
24
|
-
type: HandlerType_1.HandlerType.ENDPOINT,
|
|
25
|
-
propertyKey: obj.propertyKey
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
const provider = injector.getProvider(obj);
|
|
30
|
-
if (provider) {
|
|
31
|
-
options = {
|
|
32
|
-
token: provider.token,
|
|
33
|
-
target: provider.useClass,
|
|
34
|
-
scope: provider.scope,
|
|
35
|
-
type: HandlerType_1.HandlerType.MIDDLEWARE,
|
|
36
|
-
propertyKey: "use"
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
options = {
|
|
41
|
-
target: obj
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
options.routeOptions = routeOptions;
|
|
46
|
-
return new HandlerMetadata_1.HandlerMetadata(options);
|
|
47
|
-
}
|
|
48
|
-
exports.createHandlerMetadata = createHandlerMetadata;
|
|
49
|
-
//# sourceMappingURL=createHandlerMetadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createHandlerMetadata.js","sourceRoot":"","sources":["../../../src/utils/createHandlerMetadata.ts"],"names":[],"mappings":";;;AACA,yCAA8C;AAC9C,+DAAkF;AAClF,2DAAsD;AAGtD,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,KAAK,YAAY,iCAAe,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAAyB,EACzB,GAA2B,EAC3B,eAA6C,EAAE;IAE/C,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;QACnB,OAAO,GAAsB,CAAC;KAC/B;IAED,IAAI,OAA+B,CAAC;IAEpC,IAAI,GAAG,YAAY,yBAAgB,EAAE;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC;QAE3D,OAAO,GAAG;YACR,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,yBAAW,CAAC,QAAQ;YAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;KACH;SAAM;QACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ;gBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,yBAAW,CAAC,UAAU;gBAC5B,WAAW,EAAE,KAAK;aACnB,CAAC;SACH;aAAM;YACL,OAAO,GAAG;gBACR,MAAM,EAAE,GAAG;aACZ,CAAC;SACH;KACF;IAED,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;IAEpC,OAAO,IAAI,iCAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AA1CD,sDA0CC","sourcesContent":["import {InjectorService} from \"@tsed/di\";\nimport {EndpointMetadata} from \"@tsed/schema\";\nimport {HandlerMetadata, HandlerMetadataOptions} from \"../domain/HandlerMetadata\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\nimport {PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\n\nfunction isMetadata(input: any) {\n return input instanceof HandlerMetadata;\n}\n\n/**\n * @ignore\n */\nexport function createHandlerMetadata(\n injector: InjectorService,\n obj: any | EndpointMetadata,\n routeOptions: PlatformRouteWithoutHandlers = {}\n): HandlerMetadata {\n if (isMetadata(obj)) {\n return obj as HandlerMetadata;\n }\n\n let options: HandlerMetadataOptions;\n\n if (obj instanceof EndpointMetadata) {\n const provider = injector.getProvider(routeOptions.token)!;\n\n options = {\n token: provider.token,\n target: provider.useClass,\n scope: provider.scope,\n type: HandlerType.ENDPOINT,\n propertyKey: obj.propertyKey\n };\n } else {\n const provider = injector.getProvider(obj);\n\n if (provider) {\n options = {\n token: provider.token,\n target: provider.useClass,\n scope: provider.scope,\n type: HandlerType.MIDDLEWARE,\n propertyKey: \"use\"\n };\n } else {\n options = {\n target: obj\n };\n }\n }\n\n options.routeOptions = routeOptions;\n\n return new HandlerMetadata(options);\n}\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useCtxHandler = void 0;
|
|
4
|
-
const HandlerType_1 = require("../interfaces/HandlerType");
|
|
5
|
-
/**
|
|
6
|
-
* Create Ts.ED context handler
|
|
7
|
-
* @param fn
|
|
8
|
-
* @ignore
|
|
9
|
-
*/
|
|
10
|
-
function useCtxHandler(fn) {
|
|
11
|
-
fn.type = HandlerType_1.HandlerType.CTX_FN;
|
|
12
|
-
return fn;
|
|
13
|
-
}
|
|
14
|
-
exports.useCtxHandler = useCtxHandler;
|
|
15
|
-
//# sourceMappingURL=useCtxHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCtxHandler.js","sourceRoot":"","sources":["../../../src/utils/useCtxHandler.ts"],"names":[],"mappings":";;;AACA,2DAAsD;AAItD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAA6C;IACzE,EAAE,CAAC,IAAI,GAAG,yBAAW,CAAC,MAAM,CAAC;IAE7B,OAAO,EAAE,CAAC;AACZ,CAAC;AAJD,sCAIC","sourcesContent":["import {PlatformContext} from \"../domain/PlatformContext\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\n\nexport type PlatformCtxHandler = ($ctx: PlatformContext) => any | Promise<any>;\n\n/**\n * Create Ts.ED context handler\n * @param fn\n * @ignore\n */\nexport function useCtxHandler(fn: PlatformCtxHandler & {type?: HandlerType}) {\n fn.type = HandlerType.CTX_FN;\n\n return fn;\n}\n"]}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { GlobalProviders, ProviderType } from "@tsed/di";
|
|
2
|
-
import { getOperationsRoutes, OperationMethods } from "@tsed/schema";
|
|
3
|
-
import { ControllerProvider } from "../domain/ControllerProvider.js";
|
|
4
|
-
import { PlatformRouter } from "../services/PlatformRouter.js";
|
|
5
|
-
import { PlatformMiddlewaresChain } from "../services/PlatformMiddlewaresChain.js";
|
|
6
|
-
GlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {
|
|
7
|
-
onInvoke(provider, locals, { injector }) {
|
|
8
|
-
const router = createRouter(injector, provider);
|
|
9
|
-
locals.set(PlatformRouter, router);
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
/**
|
|
13
|
-
* @ignore
|
|
14
|
-
*/
|
|
15
|
-
function formatMethod(method) {
|
|
16
|
-
return (method === OperationMethods.CUSTOM ? "use" : method || "use").toLowerCase();
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @ignore
|
|
20
|
-
*/
|
|
21
|
-
export function getRouter(injector, provider) {
|
|
22
|
-
return injector.get(provider.tokenRouter);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @ignore
|
|
26
|
-
*/
|
|
27
|
-
export function createRouter(injector, provider) {
|
|
28
|
-
const token = provider.tokenRouter;
|
|
29
|
-
if (injector.has(token)) {
|
|
30
|
-
return getRouter(injector, provider);
|
|
31
|
-
}
|
|
32
|
-
const router = PlatformRouter.create(injector, provider.routerOptions);
|
|
33
|
-
return injector
|
|
34
|
-
.add(token, {
|
|
35
|
-
useValue: router
|
|
36
|
-
})
|
|
37
|
-
.invoke(token);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @ignore
|
|
41
|
-
* @param injector
|
|
42
|
-
* @param provider
|
|
43
|
-
* @param parentUseBefore
|
|
44
|
-
*/
|
|
45
|
-
export function buildRouter(injector, provider, parentUseBefore = []) {
|
|
46
|
-
const { middlewares: { useBefore }, children } = provider;
|
|
47
|
-
// Controller lifecycle
|
|
48
|
-
const router = createRouter(injector, provider);
|
|
49
|
-
if (!router.isBuilt) {
|
|
50
|
-
router.isBuilt = true;
|
|
51
|
-
const platformMiddlewaresChain = injector.get(PlatformMiddlewaresChain);
|
|
52
|
-
// build all endpoints and his middlewares
|
|
53
|
-
getOperationsRoutes(provider.token).forEach((operationRoute) => {
|
|
54
|
-
const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);
|
|
55
|
-
router.addRoute({
|
|
56
|
-
handlers,
|
|
57
|
-
token: operationRoute.token,
|
|
58
|
-
method: formatMethod(operationRoute.method),
|
|
59
|
-
path: operationRoute.path,
|
|
60
|
-
isFinal: operationRoute.isFinal
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
const middlewares = [...parentUseBefore, ...useBefore];
|
|
64
|
-
// build children controllers
|
|
65
|
-
children.forEach((child) => {
|
|
66
|
-
const childProvider = injector.getProvider(child);
|
|
67
|
-
/* istanbul ignore next */
|
|
68
|
-
if (!childProvider) {
|
|
69
|
-
throw new Error("Controller component not found in the ControllerRegistry");
|
|
70
|
-
}
|
|
71
|
-
router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return router;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=PlatformControllerBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformControllerBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformControllerBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {GlobalProviders, InjectorService, ProviderType} from \"@tsed/di\";\nimport {getOperationsRoutes, OperationMethods} from \"@tsed/schema\";\nimport {ControllerProvider} from \"../domain/ControllerProvider\";\nimport {PlatformRouter} from \"../services/PlatformRouter\";\nimport {PlatformMiddlewaresChain} from \"../services/PlatformMiddlewaresChain\";\n\nGlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {\n onInvoke(provider: ControllerProvider, locals: any, {injector}) {\n const router = createRouter(injector, provider);\n locals.set(PlatformRouter, router);\n }\n});\n\n/**\n * @ignore\n */\nfunction formatMethod(method: string | undefined) {\n return (method === OperationMethods.CUSTOM ? \"use\" : method || \"use\").toLowerCase();\n}\n\n/**\n * @ignore\n */\nexport function getRouter(injector: InjectorService, provider: ControllerProvider) {\n return injector.get(provider.tokenRouter)!;\n}\n\n/**\n * @ignore\n */\nexport function createRouter(injector: InjectorService, provider: ControllerProvider): PlatformRouter {\n const token = provider.tokenRouter;\n\n if (injector.has(token)) {\n return getRouter(injector, provider);\n }\n\n const router = PlatformRouter.create(injector, provider.routerOptions);\n\n return injector\n .add(token, {\n useValue: router\n })\n .invoke<PlatformRouter>(token);\n}\n\n/**\n * @ignore\n * @param injector\n * @param provider\n * @param parentUseBefore\n */\nexport function buildRouter(injector: InjectorService, provider: ControllerProvider, parentUseBefore: any[] = []) {\n const {\n middlewares: {useBefore},\n children\n } = provider;\n\n // Controller lifecycle\n const router = createRouter(injector, provider);\n\n if (!router.isBuilt) {\n router.isBuilt = true;\n\n const platformMiddlewaresChain = injector.get<PlatformMiddlewaresChain>(PlatformMiddlewaresChain);\n\n // build all endpoints and his middlewares\n getOperationsRoutes(provider.token).forEach((operationRoute) => {\n const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);\n\n router.addRoute({\n handlers,\n token: operationRoute.token,\n method: formatMethod(operationRoute.method),\n path: operationRoute.path,\n isFinal: operationRoute.isFinal\n });\n });\n\n const middlewares: any[] = [...parentUseBefore, ...useBefore];\n // build children controllers\n children.forEach((child: Type<any>) => {\n const childProvider = injector.getProvider(child) as ControllerProvider;\n\n /* istanbul ignore next */\n if (!childProvider) {\n throw new Error(\"Controller component not found in the ControllerRegistry\");\n }\n\n router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));\n });\n }\n\n return router;\n}\n"]}
|