UNPKG

2.85 kBJavaScriptView Raw
1"use strict";
2var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 return c > 3 && r && Object.defineProperty(target, key, r), r;
7};
8var __metadata = (this && this.__metadata) || function (k, v) {
9 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12const Server_1 = require("../Server");
13const Controller_1 = require("../Controller");
14const debug_1 = require("../../debug");
15const Router_1 = require("../Router");
16const decorators_1 = require("../ServiceManager/decorators");
17const Response_1 = require("../Response");
18const AbstractMiddleware_1 = require("./AbstractMiddleware");
19const debug = debug_1.createDebugLogger('middleware:router');
20class RouterMiddleware extends AbstractMiddleware_1.AbstractMiddleware {
21 async pass(ctx, next) {
22 debug(`Routing for path "${ctx.path}".`);
23 const method = ctx.method === Server_1.RequestMethods.Head ? Server_1.RequestMethods.Get : ctx.method;
24 const match = this.routerService.resolve(method, ctx.path);
25 if (!match) {
26 ctx.state.response = this.responseService.clientError().notFound();
27 debug('No match, returning not found.');
28 return;
29 }
30 const { route, parameters } = match;
31 const controllerName = Controller_1.ControllerManager.getPluginName(route.controller);
32 const controller = this.controllerManager.get(route.controller);
33 ctx.state.params = parameters;
34 ctx.state.dispatch = {
35 controllerName,
36 controller,
37 action: route.action,
38 };
39 debug(`Route matched "${controllerName}.${route.action}()".`);
40 return next();
41 }
42}
43__decorate([
44 decorators_1.inject(Router_1.RouterService),
45 __metadata("design:type", Router_1.RouterService)
46], RouterMiddleware.prototype, "routerService", void 0);
47__decorate([
48 decorators_1.inject(Response_1.ResponseService),
49 __metadata("design:type", Response_1.ResponseService)
50], RouterMiddleware.prototype, "responseService", void 0);
51__decorate([
52 decorators_1.inject(Controller_1.ControllerManager),
53 __metadata("design:type", Controller_1.ControllerManager)
54], RouterMiddleware.prototype, "controllerManager", void 0);
55exports.RouterMiddleware = RouterMiddleware;
56//# sourceMappingURL=RouterMiddleware.js.map
\No newline at end of file