const firstWordToUpper = function (str) { return str.substr(0,1).toLocaleUpperCase() + str.substr(1); }; const firstWordToLower = function (str,type?) { return str.substr(0,1).toLocaleLowerCase() + str.substr(1); }; // 路径转驼峰写法 const pathToCamelCase = function (path, firstLower:boolean = false) { var parts = path ? path.split('/') : []; var output = ''; for (var i = 0, n = parts.length; i < n; i++) { var part = parts[i]; output = output + firstWordToUpper(part); } // 首字母是否小写(默认为大写) return firstLower ? firstWordToLower(output, 'lower') : output; }; /** * 将旧式类似/home/index/123转化为HomeIndexPage * @param path 路由配置里的路径 */ const pathToPageName = function (path: string, suffix:string = 'Page'):string{ // 隔离/:id类似的情况 let tempArr = path ? path.split('/:') : []; if(tempArr.length > 1) tempArr.pop(); // 移除/:XX后的字符 path = tempArr.join(''); tempArr = path.split('?'); // 移除查询字符串 if(tempArr.length > 1) tempArr.pop(); path = tempArr.join(''); if(path.indexOf('/') >-1 ) { return pathToCamelCase(path) + suffix; }else if(path.indexOf(suffix) === -1){ return path + suffix; }else{ return path; } } export { firstWordToUpper, firstWordToLower, pathToCamelCase, pathToPageName };