lambda-service
Version:
40 lines (34 loc) • 781 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
let targetLevel = null;
let level = 0;
function _default(routes) {
if (process.env.CODE_SPLITTING_LEVEL) {
targetLevel = process.env.CODE_SPLITTING_LEVEL;
} else {
targetLevel = 1;
const rootRoute = routes.filter(route => route.path === '/')[0];
if (rootRoute && rootRoute.routes) {
targetLevel = 2;
}
}
return countRoutes(routes);
}
function countRoutes(routes) {
level += 1;
const ret = routes.reduce((memo, route) => {
if (level <= targetLevel) {
if (route.routes) {
memo += countRoutes(route.routes) + 1;
} else {
memo += 1;
}
}
return memo;
}, 0);
level -= 1;
return ret;
}
;