UNPKG

@ima/core

Version:

IMA.js framework for isomorphic javascript application

61 lines (60 loc) 1.7 kB
import { AbstractRouter } from './AbstractRouter'; import { Request } from './Request'; import { Response } from './Response'; import { RouteFactory } from './RouteFactory'; import { Dispatcher } from '../event/Dispatcher'; import { PageManager } from '../page/manager/PageManager'; /** * The server-side implementation of the {@link Router} interface. */ export class ServerRouter extends AbstractRouter { #request; #response; static get $dependencies() { return [ PageManager, RouteFactory, Dispatcher, Request, Response, '?$Settings.$Router.middlewareTimeout' ]; } /** * Initializes the router. * * @param pageManager The current page manager. * @param factory The router factory used to create routes. * @param dispatcher Dispatcher fires events to app. * @param request The current HTTP request. * @param response The current HTTP response. * @param settings $Router settings. */ constructor(pageManager, factory, dispatcher, request, response, settings){ super(pageManager, factory, dispatcher, settings); this.#request = request; this.#response = response; } /** * @inheritDoc */ getPath() { return this._extractRoutePath(this.#request.getPath()); } /** * @inheritDoc */ listen() { return this; } /** * @inheritDoc */ unlisten() { return this; } /** * @inheritDoc */ redirect(url = '/', options) { this.#response.redirect(url, { httpStatus: 302, ...options }); } } //# sourceMappingURL=ServerRouter.js.map