我有这个功能
function getAvailableProviders(tmpDir, snips, processRepo) {
const octokit = require("@octokit/rest");
octokit.repos.listForOrg(
{ org: "terraform-providers", type: "public", per_page: 100 },
(error, result) => {
result.data.forEach((element) => {
processRepo(tmpDir, element.name, snips, iterateOnDocFiles);
});
},
);
}
运行程序时,我从打字稿编译器收到此错误
(node:15713) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'listForOrg' of undefined
问题是根据octokit文档确定的repos.listForOrg
。
https://octokit.github.io/rest.js/v18#repos-list-for-org
我只是在尝试学习(打字稿和节点),同时又重新创建了原始开发者遗弃的东西。根据octokit文档,我有我的require声明。它没有联系到api。我还需要在节点项目中安装其他东西才能使其正常工作吗?
答案 0 :(得分:0)
我认为您需要对 require
稍作更改并在 require 之后添加 const octokit = new Octokit();
(在您的示例中作为第 3 行插入):
function getAvailableProviders(tmpDir, snips, processRepo) {
const { Octokit } = require('@octokit/rest'); // <-- change this line
const octokit = new Octokit(); // <-- add this line
octokit.repos.listForOrg(
{ org: "terraform-providers", type: "public", per_page: 100 },
(error, result) => {
result.data.forEach((element) => {
processRepo(tmpDir, element.name, snips, iterateOnDocFiles);
});
},
);
}