UNPKG

2.52 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _AbstractRouter = require('./AbstractRouter');
8
9var _AbstractRouter2 = _interopRequireDefault(_AbstractRouter);
10
11var _Request = require('./Request');
12
13var _Request2 = _interopRequireDefault(_Request);
14
15var _Response = require('./Response');
16
17var _Response2 = _interopRequireDefault(_Response);
18
19var _RouteFactory = require('./RouteFactory');
20
21var _RouteFactory2 = _interopRequireDefault(_RouteFactory);
22
23var _Dispatcher = require('../event/Dispatcher');
24
25var _Dispatcher2 = _interopRequireDefault(_Dispatcher);
26
27var _PageManager = require('../page/manager/PageManager');
28
29var _PageManager2 = _interopRequireDefault(_PageManager);
30
31function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
33// @server-side class ServerRouter extends __VARIABLE__ {__CLEAR__}\nexports.default = ServerRouter;
34
35/**
36 * The server-side implementation of the {@codelink Router} interface.
37 */
38class ServerRouter extends _AbstractRouter2.default {
39 static get $dependencies() {
40 return [_PageManager2.default, _RouteFactory2.default, _Dispatcher2.default, _Request2.default, _Response2.default];
41 }
42
43 /**
44 * Initializes the router.
45 *
46 * @param {PageManager} pageManager The current page manager.
47 * @param {RouteFactory} factory The router factory used to create routes.
48 * @param {Dispatcher} dispatcher Dispatcher fires events to app.
49 * @param {Request} request The current HTTP request.
50 * @param {Response} response The current HTTP response.
51 */
52 constructor(pageManager, factory, dispatcher, request, response) {
53 super(pageManager, factory, dispatcher);
54
55 /**
56 * The current HTTP request.
57 *
58 * @type {Request}
59 */
60 this._request = request;
61
62 /**
63 * The current HTTP response.
64 *
65 * @type {Response}
66 */
67 this._response = response;
68 }
69
70 /**
71 * @inheritdoc
72 */
73 getPath() {
74 return this._extractRoutePath(this._request.getPath());
75 }
76
77 /**
78 * @inheritdoc
79 */
80 listen() {
81 return this;
82 }
83
84 /**
85 * @inheritdoc
86 */
87 redirect(url = '/', options = {}) {
88 this._response.redirect(url, options.httpStatus || 302);
89 }
90}
91exports.default = ServerRouter;
92
93typeof $IMA !== 'undefined' && $IMA !== null && $IMA.Loader && $IMA.Loader.register('ima/router/ServerRouter', [], function (_export, _context) {
94 'use strict';
95 return {
96 setters: [],
97 execute: function () {
98 _export('default', exports.default);
99 }
100 };
101});