UNPKG

nix-api

Version:

<div align="center"> <img src="./docs/.vuepress/public/images/logo.png" width="200px"> </div>

92 lines (74 loc) 3.09 kB
"use strict"; 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;