<commit_before>/**
 * 解析route配置文件
 * 名词定义：
 * route - 路由、路线，仅指字符串路径，例如 '/hello/:name'
 * router - 路由器，只包含route在内的一个配置对象
 */
const pathRegexp = require('path-to-regexp');
const loop = item => item;

module.exports = (routerMap, each = loop) => {
  const routes = Object.keys(routerMap);
  // 解析route为正则并存到router对象中
  const routers = routes.map(route => {
    const router = routerMap[route];

    // 发现：router.paramKeys === router.pathRegx.keys 为true
    // 不明白express为什么这么写，可能是为了代码清晰，也可能写的时候不知道这种情况？
    router.paramKeys = [];
    router.pathRegx = pathRegexp(route, router.paramKeys, {});

    each(router);

    return router;
  });

  return routers;
};<commit_msg>update save route path to router<commit_after>/**
 * 解析route配置文件
 * 名词定义：
 * route - 路由、路线，仅指字符串路径，例如 '/hello/:name'
 * router - 路由器，只包含route在内的一个配置对象
 */
const pathRegexp = require('path-to-regexp');
const loop = item => item;

module.exports = (routerMap, each = loop) => {
  const routes = Object.keys(routerMap);
  // 解析route为正则并存到router对象中
  const routers = routes.map(route => {
    const router = routerMap[route];

    router.route = route;
    // 发现：router.paramKeys === router.pathRegx.keys 为true
    // 不明白express为什么这么写，可能是为了代码清晰，也可能写的时候不知道这种情况？
    router.paramKeys = [];
    router.pathRegx = pathRegexp(route, router.paramKeys, {});

    each(router);

    return router;
  });

  return routers;
};
{'fraction_non_alphanumeric': 0.14844315713251266, 'fraction_numerical': 0.0, 'mean_word_length': 3.668918918918919, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2317131', 'n_tokens_mistral': 586, 'n_tokens_neox': 609, 'n_words': 91}