@ima/core
Version:
IMA.js framework for isomorphic javascript application
71 lines (70 loc) • 1.98 kB
JavaScript
/* @if client **
export class ServerRouter {};
/* @else */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "ServerRouter", {
enumerable: true,
get: function() {
return ServerRouter;
}
});
const _AbstractRouter = require("./AbstractRouter");
const _Request = require("./Request");
const _Response = require("./Response");
const _RouteFactory = require("./RouteFactory");
const _Dispatcher = require("../event/Dispatcher");
const _PageManager = require("../page/manager/PageManager");
class ServerRouter extends _AbstractRouter.AbstractRouter {
#request;
#response;
static get $dependencies() {
return [
_PageManager.PageManager,
_RouteFactory.RouteFactory,
_Dispatcher.Dispatcher,
_Request.Request,
_Response.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
});
}
} // @endif
//# sourceMappingURL=ServerRouter.js.map