function resolveDependencies()

in src/generator.js [39:80]


function resolveDependencies(lang, config, ast) {
  const imports = ast.imports;
  const dependencies = {
    // Package AliasID : { meta, scope, package_name, client_name }
  };
  if (!imports || !imports.length) {
    return dependencies;
  }
  const libraries = config.libraries;
  const lock = readLock(config.pkgDir);
  ast.imports.forEach((item) => {
    const aliasId = item.lexeme;
    const meta = readModuleMeta(
      libraries[aliasId],
      config.pkgDir,
      lock
    );
    meta.libraries = {
      lock: lock[libraries[aliasId]],
      tag: libraries[aliasId],
      alias_id: aliasId
    };
    let name = meta.name;
    let scope = meta.scope;
    let package_name = `${scope}_${name}`;
    let client_name = 'Client';
    let lang_config = !meta[lang] ? {} : meta[lang];
    if (lang_config.packageInfo && lang_config.packageInfo.name) {
      package_name = lang_config.packageInfo.name;
    }
    if (lang_config.clientName) {
      client_name = lang_config.clientName;
    }
    dependencies[aliasId] = {
      meta,
      scope,
      package_name,
      client_name
    };
  });
  return dependencies;
}