@uiw-admin/plugins
Version:
144 lines (142 loc) • 4.99 kB
JavaScript
;
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;