/// <reference path="../../typings/tsd.d.ts" />
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Express = require('express');
var DDolly = require('../Dolly');
var Dollyjs;
(function (Dollyjs) {
/**
* @class ExRouter
* Extended Router
*/
var ExRouter = (function (_super) {
__extends(ExRouter, _super);
function ExRouter() {
_super.apply(this, arguments);
/**
* @public Load the express router
* @type {"express".e.Router|any}
*/
this.expressRouter = Express.Router();
}
/**
* Deffine middleware function
* @param route
* @param method
* @public
*/
ExRouter.prototype.defineMiddleware = function (route, method) {
this.expressRouter.use(route, method);
};
/**
* Set up a new route
* @param route
* @param method
* @param controller
* @public
*/
ExRouter.prototype.defineRoute = function (route, method, middleware, controller) {
if (middleware == null) {
this.expressRouter.route(route)[method](controller);
}
else {
this.expressRouter.route(route)[method](middleware, controller);
}
};
/**
* Assing the router
* @param controller
* @param method
* @returns {function(any, any): undefined}
* @public
*/
ExRouter.prototype.in = function (controller, method) {
if (controller == null || method == null)
return function () {
};
var lam = function (req, res, next) {
var user = new controller();
user[method](req, res, next);
};
return lam;
};
return ExRouter;
})(DDolly.Dolly);
Dollyjs.ExRouter = ExRouter;
})(Dollyjs || (Dollyjs = {}));
module.exports = Dollyjs;
//# sourceMappingURL=ExRouter.js.map