function _subModelName()

in lib/util.js [52:80]


function _subModelName(name, conflictModelNameMap, allModleNameMap) {
  if (!name) {
    return '';
  }
  const keywords = ['Body', 'Header',
    'Host', 'Path', 'Query', 'EnumType', 'NameInmap',
    'ParentIgnore', 'Validate'];
  if (allModleNameMap[name]) {
    return allModleNameMap[name];
  }
  var modelName = name.split('.').map((name) => _upperFirst(name)).join('');
  const names = name.split('.');
  const modelNameKey = names[0];
  if (!conflictModelNameMap[modelNameKey]) {
    conflictModelNameMap[modelNameKey] = [];
  }
  modelName = _upperFirst(names.pop());
  while (names.length > 0 && (keywords.includes(modelName) ||
    (conflictModelNameMap[modelNameKey] && conflictModelNameMap[modelNameKey].includes(modelName)))) {
    modelName = _upperFirst(names.pop()) + modelName;
  }
  // 不再对重复名称命名的接口进行生成
  // if (conflictModelNameMap[modelNameKey] && conflictModelNameMap[modelNameKey].includes(modelName)) {
  //   throw new Error(`解析失败!API 定义存在问题,路径 ${name},${modelNameKey} 下已包含该名称 ${modelName},需要在接口元数据平台定义 SDK 别名`);
  // }
  conflictModelNameMap[modelNameKey].push(modelName);
  allModleNameMap[name] = modelName;
  return modelName;
}