我正在处理一个简单的网页(没有后端)。它提供了一些关于 repo 中 js 代码的基本统计信息。
使用场景:
- 用户将其身份验证令牌添加到
<input/>
- 用户将 repo 根路径添加到另一个
<input/>
- 用户点击
<button/>
加载文件 - 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 ] } ] }]
- Esprima 将这些
<js code>
部分解析为 AST 对象 - 其他代码从 AST 对象派生统计数据
- 该页面显示这些统计信息
我得到了一个基本的 GraphQL 查询,但它只加载一个树级别。我希望避免在多个请求上递归构建树的逻辑和复杂性。
如果它加载文件内容,Github 的 v3 递归树 API 会很棒。唉,它没有,而且 GraphQL api 还没有递归等效项。
网页加载 github repo 文件树内容的最有效方式是什么?使用 Github 的 API 的解决方案可以工作,如果存在其他更有效的方法也可以。
谢谢!