nix-api
Version:
<div align="center"> <img src="./docs/.vuepress/public/images/logo.png" width="200px"> </div>
92 lines (74 loc) • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _express = require("express");
var _route = _interopRequireDefault(require("../domain/route"));
var _chalk = _interopRequireDefault(require("chalk"));
var _package = _interopRequireDefault(require("../../package.json"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var RouteManager =
/*#__PURE__*/
function () {
function RouteManager(_ref) {
var router = _ref.router,
moduleManager = _ref.moduleManager,
fileManager = _ref.fileManager;
_classCallCheck(this, RouteManager);
this.router = router || (0, _express.Router)();
this.module = moduleManager;
this.fileManager = fileManager;
this._line = '------------------';
}
_createClass(RouteManager, [{
key: "setInitialRoute",
value: function setInitialRoute(routes) {
var routesToSend = routes.map(function (route) {
return {
file: route.file.getPath(),
route: "/".concat(route.route)
};
});
this.router.get('/', function (req, res) {
res.json({
message: 'Welcome to Nix',
version: _package.default.version,
routes: routesToSend
});
});
}
}, {
key: "setRoute",
value: function setRoute(routeModel) {
this.router.get("/".concat(routeModel.route), this.module.resolveFile(routeModel.file));
return routeModel;
}
}, {
key: "routes",
value: function routes() {
console.log(_chalk.default.blue(this._line));
console.log(_chalk.default.blue('Routes'));
console.log(_chalk.default.blue(this._line));
var toRouteModel = function toRouteModel(fileModel) {
return new _route.default(fileModel);
};
var logRoutes = function logRoutes(routeModel) {
console.log(_chalk.default.blueBright("GET: /".concat(routeModel.route)));
return routeModel;
};
var filepaths = this.fileManager.getFilenames();
var routes = filepaths.map(toRouteModel).map(logRoutes);
this.setInitialRoute(routes);
routes.forEach(this.setRoute.bind(this));
console.log(_chalk.default.blue(this._line));
return this.router;
}
}]);
return RouteManager;
}();
var _default = RouteManager;
exports.default = _default;