UNPKG

@uiw-admin/plugins

Version:
144 lines (142 loc) 4.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { getRoutesList: true, getRouteMapModels: true, getToUpperCase: true, getJsonToString: true }; exports.getToUpperCase = exports.getRoutesList = exports.getRouteMapModels = exports.getJsonToString = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _path = _interopRequireDefault(require("path")); var _fs = _interopRequireDefault(require("fs")); var _babel = require("./babel"); Object.keys(_babel).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _babel[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _babel[key]; } }); }); var _rematch = require("./rematch"); Object.keys(_rematch).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _rematch[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _rematch[key]; } }); }); // 判断 路由的 component 路径指向是文件还是目录 如果是文件则去除最后一项 变成目录 // 拼接项目 path.resolve(process.cwd(), 'src') 地址 进行判断数据 // 最后生成 一个路由映射 model 文件 路径 的json文件 /** * @description 生成的映射json文件格式 * { * path:[ * {name:"",path:"....path"} * ] * } * */ /** 把数组扁平化 */ var getRoutesList = function getRoutesList() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var list = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; data.forEach(function (item) { if (item.routes) { getRoutesList(item.routes, list); } else { var component = item.component; // item if (typeof component === 'string' && !['404', '500', '403', '*'].includes(component)) { // 地址拼接 var pathStr = component.replace(/^@/, ''); // 判断 地址是文件还是目录 var newPath = _path["default"].join(process.cwd(), 'src', pathStr); if (_fs["default"].existsSync(newPath)) { var stats = _fs["default"].statSync(newPath); if (stats && stats.isFile()) { var pathArr = newPath.split('/'); pathArr.pop(); newPath = pathArr.join('/'); } } list.push((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item), {}, { component: newPath })); } } }); return list; }; exports.getRoutesList = getRoutesList; var getRouteMapModels = function getRouteMapModels(routes, modelsData) { var routeModels = {}; var newRoutes = getRoutesList(routes); var rootPath = _path["default"].join(process.cwd(), 'src'); var rootPathModels = modelsData.filter(function (item) { return rootPath === item.location; }).map(function (ites) { return { path: "".concat(ites.srcPath), name: ites.name }; }); routeModels['/'] = rootPathModels || []; newRoutes.forEach(function (item) { var path = item.path, component = item.component; var modelsArr = modelsData.filter(function (ite) { return ite.location === component; }).map(function (ites) { return { path: "".concat(ites.srcPath), name: ites.name }; }); if (path && modelsArr) { if (routeModels[path]) { var _routeModels$path; (_routeModels$path = routeModels[path]).push.apply(_routeModels$path, (0, _toConsumableArray2["default"])(modelsArr)); } else { routeModels[path] = modelsArr; } } else if (path) { routeModels[path] = []; } }); return routeModels; }; /** 转 首字母大写 */ exports.getRouteMapModels = getRouteMapModels; var getToUpperCase = function getToUpperCase(valus) { return valus.split('-').map(function (str) { return str.replace(/^\S/, function (s) { return s.toUpperCase(); }); }).join(''); }; exports.getToUpperCase = getToUpperCase; var getJsonToString = function getJsonToString(key, value) { if (key === 'component' && ['403', '404', '500'].includes(value)) { return "<Exceptions".concat(value, " />"); } else if (key === 'icon') { var Com = getToUpperCase(value); return "<".concat(Com, " />"); } else if (key === 'component') { return "React.lazy(() => import('".concat(value, "'))"); } return value; }; exports.getJsonToString = getJsonToString;