UNPKG

@lskjs/server

Version:

LSK server.

175 lines (130 loc) 14.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getRoutesTree = getRoutesTree; exports["default"] = _default; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject")); var _isFunction = _interopRequireDefault(require("lodash/isFunction")); var _forEach = _interopRequireDefault(require("lodash/forEach")); var _get = _interopRequireDefault(require("lodash/get")); var _mapValues = _interopRequireDefault(require("lodash/mapValues")); var _isClass = _interopRequireDefault(require("@lskjs/utils/isClass")); var _express = _interopRequireDefault(require("express")); var _AsyncRouter = _interopRequireDefault(require("../AsyncRouter")); var DEBUG = false; function getRoutesTree(ctx) { var iterate = function iterate(item) { if (!item) return null; if ((0, _isClass["default"])(item)) { var api = new item(ctx); // eslint-disable-line new-cap return api && (0, _isFunction["default"])(api.getRoutes) && api.getRoutes(); } if (!(0, _isPlainObject["default"])(item)) { if (item.getRoutes) { return item.getRoutes(); } if (item.routes) { return item.routes; } return item; } return (0, _mapValues["default"])(item, iterate); }; if (ctx && ctx.getRoutes && (0, _isFunction["default"])(ctx.getRoutes)) { return iterate(ctx.getRoutes()); } return {}; } function getMethodAndPath() { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var val = arguments.length > 1 ? arguments[1] : undefined; var method; if ((0, _isPlainObject["default"])(val)) method = 'use'; var chunk = key.trim().split(' '); var path; if (chunk.length >= 2) { var _chunk = (0, _slicedToArray2["default"])(chunk, 2); method = _chunk[0]; path = _chunk[1]; } else { var _chunk2 = (0, _slicedToArray2["default"])(chunk, 1); path = _chunk2[0]; } if (!method) method = 'all'; return { path: path, method: method.toLowerCase() }; } function iterateRoute(data) { var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { path: '/' }; if (DEBUG) console.warn('iterateRoute', info); // eslint-disable-line no-console if ((0, _isPlainObject["default"])(data)) { var asyncRouter = (0, _AsyncRouter["default"])(); (0, _forEach["default"])(data, function (val, key) { var _getMethodAndPath = getMethodAndPath(key, val), path = _getMethodAndPath.path, method = _getMethodAndPath.method; var route = iterateRoute(val, { method: method, path: path, parent: info }); // , { path: params.path + path, i: params.i + 1 }); asyncRouter[method](path, route); }); return asyncRouter; } if ((0, _isFunction["default"])(data)) { return data; } if (data && data.getRoutes && (0, _isFunction["default"])(data.getRoutes)) { return data.getRoutes(); } if (data && data.api && (0, _isFunction["default"])(data.api)) { return data.api(); } if (Array.isArray(data)) { var middlewares = data.slice(0, -1); var _data$slice = data.slice(-1), _data$slice2 = (0, _slicedToArray2["default"])(_data$slice, 1), routes = _data$slice2[0]; var subRouter = iterateRoute(routes, { elem: data.length - 1, parent: info }); // , { path: params.path + path, i: params.i + 1 }); var router = _express["default"].Router(); router.use.apply(router, (0, _toConsumableArray2["default"])(middlewares).concat([subRouter])); return router; } if (DEBUG) console.warn('iterateRoute NOT FOUND CASE', info); // eslint-disable-line no-console return function () {}; } function _default() { if (this.Api) { this.rootApi = new this.Api({ app: this }); var indexApi = (0, _get["default"])(this, 'rootApi.indexApi'); if (indexApi && indexApi.getRoutesList) { this.log.trace('routes', indexApi.getRoutesList()); } } else { // eslint-disable-next-line no-unused-expressions this.log ? this.log.warn('!app.Api') : console.warn('!app.Api'); // eslint-disable-line no-console } this.routes = getRoutesTree(this.rootApi); if (DEBUG) console.warn('this.routes', this.routes); // eslint-disable-line no-console var router = iterateRoute(this.routes); var asyncRouter = (0, _AsyncRouter["default"])(); asyncRouter.use('/', router); this.express.use('/', asyncRouter); return this.express; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXRob2RzL3J1blJvdXRlcy5qcyJdLCJuYW1lcyI6WyJERUJVRyIsImdldFJvdXRlc1RyZWUiLCJjdHgiLCJpdGVyYXRlIiwiaXRlbSIsImFwaSIsImdldFJvdXRlcyIsInJvdXRlcyIsImdldE1ldGhvZEFuZFBhdGgiLCJrZXkiLCJ2YWwiLCJtZXRob2QiLCJjaHVuayIsInRyaW0iLCJzcGxpdCIsInBhdGgiLCJsZW5ndGgiLCJ0b0xvd2VyQ2FzZSIsIml0ZXJhdGVSb3V0ZSIsImRhdGEiLCJpbmZvIiwiY29uc29sZSIsIndhcm4iLCJhc3luY1JvdXRlciIsInJvdXRlIiwicGFyZW50IiwiQXJyYXkiLCJpc0FycmF5IiwibWlkZGxld2FyZXMiLCJzbGljZSIsInN1YlJvdXRlciIsImVsZW0iLCJyb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwidXNlIiwiQXBpIiwicm9vdEFwaSIsImFwcCIsImluZGV4QXBpIiwiZ2V0Um91dGVzTGlzdCIsImxvZyIsInRyYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLEtBQUssR0FBRyxLQUFkOztBQUVPLFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCO0FBQ2pDLE1BQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLElBQUQsRUFBVTtBQUN4QixRQUFJLENBQUNBLElBQUwsRUFBVyxPQUFPLElBQVA7O0FBQ1gsUUFBSSx5QkFBUUEsSUFBUixDQUFKLEVBQW1CO0FBQ2pCLFVBQU1DLEdBQUcsR0FBRyxJQUFJRCxJQUFKLENBQVNGLEdBQVQsQ0FBWixDQURpQixDQUNVOztBQUMzQixhQUFPRyxHQUFHLElBQUksNEJBQVdBLEdBQUcsQ0FBQ0MsU0FBZixDQUFQLElBQW9DRCxHQUFHLENBQUNDLFNBQUosRUFBM0M7QUFDRDs7QUFDRCxRQUFJLENBQUMsK0JBQWNGLElBQWQsQ0FB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O0FBQ0EsU0FBS0MsR0FBTCxHQUFXLEtBQUtBLEdBQUwsQ0FBU25CLElBQVQsQ0FBYyxVQUFkLENBQVgsR0FBdUNELE9BQU8sQ0FBQ0MsSUFBUixDQUFhLFVBQWIsQ0FBdkMsQ0FGSyxDQUU0RDtBQUNsRTs7QUFDRCxPQUFLZixNQUFMLEdBQWNOLGFBQWEsQ0FBQyxLQUFLb0MsT0FBTixDQUEzQjtBQUNBLE1BQUlyQyxLQUFKLEVBQVdxQixPQUFPLENBQUNDLElBQVIsQ0FBYSxhQUFiLEVBQTRCLEtBQUtmLE1BQWpDLEVBWmMsQ0FZNEI7O0FBQ3JELE1BQU15QixNQUFNLEdBQUdkLFlBQVksQ0FBQyxLQUFLWCxNQUFOLENBQTNCO0FBQ0EsTUFBTWdCLFdBQVcsR0FBRyw4QkFBcEI7QUFDQUEsRUFBQUEsV0FBVyxDQUFDWSxHQUFaLENBQWdCLEdBQWhCLEVBQXFCSCxNQUFyQjtBQUNBLE9BQUtDLE9BQUwsQ0FBYUUsR0FBYixDQUFpQixHQUFqQixFQUFzQlosV0FBdEI7QUFDQSxTQUFPLEtBQUtVLE9BQVo7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC9pc1BsYWluT2JqZWN0JztcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJ2xvZGFzaC9pc0Z1bmN0aW9uJztcbmltcG9ydCBmb3JFYWNoIGZyb20gJ2xvZGFzaC9mb3JFYWNoJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgbWFwVmFsdWVzIGZyb20gJ2xvZGFzaC9tYXBWYWx1ZXMnO1xuaW1wb3J0IGlzQ2xhc3MgZnJvbSAnQGxza2pzL3V0aWxzL2lzQ2xhc3MnO1xuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgQXN5bmNSb3V0ZXIgZnJvbSAnLi4vQXN5bmNSb3V0ZXInO1xuXG5jb25zdCBERUJVRyA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVzVHJlZShjdHgpIHtcbiAgY29uc3QgaXRlcmF0ZSA9IChpdGVtKSA9PiB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoaXNDbGFzcyhpdGVtKSkge1xuICAgICAgY29uc3QgYXBpID0gbmV3IGl0ZW0oY3R4KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuZXctY2FwXG4gICAgICByZXR1cm4gYXBpICYmIGlzRnVuY3Rpb24oYXBpLmdldFJvdXRlcykgJiYgYXBpLmdldFJvdXRlcygpO1xuICAgIH1cbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoaXRlbSkpIHtcbiAgICAgIGlmIChpdGVtLmdldFJvdXRlcykge1xuICAgICAgICByZXR1cm4gaXRlbS5nZXRSb3V0ZXMoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnJvdXRlcykge1xuICAgICAgICByZXR1cm4gaXRlbS5yb3V0ZXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG4gICAgcmV0dXJuIG1hcFZhbHVlcyhpdGVtLCBpdGVyYXRlKTtcbiAgfTtcbiAgaWYgKGN0eCAmJiBjdHguZ2V0Um91dGVzICYmIGlzRnVuY3Rpb24oY3R4LmdldFJvdXRlcykpIHtcbiAgICByZXR1cm4gaXRlcmF0ZShjdHguZ2V0Um91dGVzKCkpO1xuICB9XG4gIHJldHVybiB7fTtcbn1cblxuZnVuY3Rpb24gZ2V0TWV0aG9kQW5kUGF0aChrZXkgPSAnJywgdmFsKSB7XG4gIGxldCBtZXRob2Q7XG4gIGlmIChpc1BsYWluT2JqZWN0KHZhbCkpIG1ldGhvZCA9ICd1c2UnO1xuICBjb25zdCBjaHVuayA9IGtleS50cmltKCkuc3BsaXQoJyAnKTtcbiAgbGV0IHBhdGg7XG4gIGlmIChjaHVuay5sZW5ndGggPj0gMikge1xuICAgIFttZXRob2QsIHBhdGhdID0gY2h1bms7XG4gIH0gZWxzZSB7XG4gICAgW3BhdGhdID0gY2h1bms7XG4gIH1cbiAgaWYgKCFtZXRob2QpIG1ldGhvZCA9ICdhbGwnO1xuICByZXR1cm4ge1xuICAgIHBhdGgsXG4gICAgbWV0aG9kOiBtZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXRlcmF0ZVJvdXRlKGRhdGEsIGluZm8gPSB7IHBhdGg6ICcvJyB9KSB7XG4gIGlmIChERUJVRykgY29uc29sZS53YXJuKCdpdGVyYXRlUm91dGUnLCBpbmZvKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gIGlmIChpc1BsYWluT2JqZWN0KGRhdGEpKSB7XG4gICAgY29uc3QgYXN5bmNSb3V0ZXIgPSBBc3luY1JvdXRlcigpO1xuICAgIGZvckVhY2goZGF0YSwgKHZhbCwga2V5KSA9PiB7XG4gICAgICBjb25zdCB7IHBhdGgsIG1ldGhvZCB9ID0gZ2V0TWV0aG9kQW5kUGF0aChrZXksIHZhbCk7XG4gICAgICBjb25zdCByb3V0ZSA9IGl0ZXJhdGVSb3V0ZSh2YWwsIHsgbWV0aG9kLCBwYXRoLCBwYXJlbnQ6IGluZm8gfSk7IC8vICwgeyBwYXRoOiBwYXJhbXMucGF0aCArIHBhdGgsIGk6IHBhcmFtcy5pICsgMSB9KTtcbiAgICAgIGFzeW5jUm91dGVyW21ldGhvZF0ocGF0aCwgcm91dGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBhc3luY1JvdXRlcjtcbiAgfVxuICBpZiAoaXNGdW5jdGlvbihkYXRhKSkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIGlmIChkYXRhICYmIGRhdGEuZ2V0Um91dGVzICYmIGlzRnVuY3Rpb24oZGF0YS5nZXRSb3V0ZXMpKSB7XG4gICAgcmV0dXJuIGRhdGEuZ2V0Um91dGVzKCk7XG4gIH1cbiAgaWYgKGRhdGEgJiYgZGF0YS5hcGkgJiYgaXNGdW5jdGlvbihkYXRhLmFwaSkpIHtcbiAgICByZXR1cm4gZGF0YS5hcGkoKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIGNvbnN0IG1pZGRsZXdhcmVzID0gZGF0YS5zbGljZSgwLCAtMSk7XG4gICAgY29uc3QgW3JvdXRlc10gPSBkYXRhLnNsaWNlKC0xKTtcblxuICAgIGNvbnN0IHN1YlJvdXRlciA9IGl0ZXJhdGVSb3V0ZShyb3V0ZXMsIHsgZWxlbTogZGF0YS5sZW5ndGggLSAxLCBwYXJlbnQ6IGluZm8gfSk7IC8vICwgeyBwYXRoOiBwYXJhbXMucGF0aCArIHBhdGgsIGk6IHBhcmFtcy5pICsgMSB9KTtcbiAgICBjb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuICAgIHJvdXRlci51c2UoLi4ubWlkZGxld2FyZXMsIHN1YlJvdXRlcik7XG5cbiAgICByZXR1cm4gcm91dGVyO1xuICB9XG5cbiAgaWYgKERFQlVHKSBjb25zb2xlLndhcm4oJ2l0ZXJhdGVSb3V0ZSBOT1QgRk9VTkQgQ0FTRScsIGluZm8pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgcmV0dXJuICgpID0+IHt9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLkFwaSkge1xuICAgIHRoaXMucm9vdEFwaSA9IG5ldyB0aGlzLkFwaSh7IGFwcDogdGhpcyB9KTtcbiAgICBjb25zdCBpbmRleEFwaSA9IGdldCh0aGlzLCAncm9vdEFwaS5pbmRleEFwaScpO1xuICAgIGlmIChpbmRleEFwaSAmJiBpbmRleEFwaS5nZXRSb3V0ZXNMaXN0KSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgncm91dGVzJywgaW5kZXhBcGkuZ2V0Um91dGVzTGlzdCgpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMubG9nID8gdGhpcy5sb2cud2FybignIWFwcC5BcGknKSA6IGNvbnNvbGUud2FybignIWFwcC5BcGknKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gIH1cbiAgdGhpcy5yb3V0ZXMgPSBnZXRSb3V0ZXNUcmVlKHRoaXMucm9vdEFwaSk7XG4gIGlmIChERUJVRykgY29uc29sZS53YXJuKCd0aGlzLnJvdXRlcycsIHRoaXMucm91dGVzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gIGNvbnN0IHJvdXRlciA9IGl0ZXJhdGVSb3V0ZSh0aGlzLnJvdXRlcyk7XG4gIGNvbnN0IGFzeW5jUm91dGVyID0gQXN5bmNSb3V0ZXIoKTtcbiAgYXN5bmNSb3V0ZXIudXNlKCcvJywgcm91dGVyKTtcbiAgdGhpcy5leHByZXNzLnVzZSgnLycsIGFzeW5jUm91dGVyKTtcbiAgcmV0dXJuIHRoaXMuZXhwcmVzcztcbn1cbiJdfQ== //# sourceMappingURL=runRoutes.js.map