0

我正在处理一个简单的网页(没有后端)。它提供了一些关于 repo 中 js 代码的基本统计信息。

使用场景:

  1. 用户将其身份验证令牌添加到<input/>
  2. 用户将 repo 根路径添加到另一个<input/>
  3. 用户点击<button/>加载文件
  4. window.fetch 检索从根目录开始的树。就像是: [{ name:'root', children:[ {name:'foo.js',contents:'<js code>'}, {name:'bar.js',contents:'<js code>'}, { name:'src', children:[ {name:'baz.js',contents:'<js code>'}, ...etc ] } ] }]
  5. Esprima 将这些<js code>部分解析为 AST 对象
  6. 其他代码从 AST 对象派生统计数据
  7. 该页面显示这些统计信息

我得到了一个基本的 GraphQL 查询,但它只加载一个树级别。我希望避免在多个请求上递归构建树的逻辑和复杂性。

如果它加载文件内容,Github 的 v3 递归树 API 会很棒。唉,它没有,而且 GraphQL api 还没有递归等效项。

网页加载 github repo 文件树内容的最有效方式是什么?使用 Github 的 API 的解决方案可以工作,如果存在其他更有效的方法也可以。

谢谢!

4

0 回答 0