Closed2

octokitをconsole.logしてはいけない

eaieai

Denoの話

octokitでappを作る

import { App } from "https://esm.sh/octokit@3.1.0";

// base64 encoded private key
const key = `...`;

const app = new App({
    appId: 123456,
    privateKey: atob(key),
});

// 認証できたかな?
console.log(app);

これはエラーになる

Task start deno run --allow-env --allow-net src/index.ts
error: Uncaught TypeError: Cannot destructure property 'decorations' of 'l.get(...).get(...)' as it is undefined.
    at Object.get (https://esm.sh/v131/@octokit/plugin-rest-endpoint-methods@9.0.0/deno/plugin-rest-endpoint-methods.mjs:2:68442)
    at inspectRawObject (ext:deno_console/02_console.js:1171:26)
    at inspectObject (ext:deno_console/02_console.js:1402:36)
    at _inspectValue (ext:deno_console/02_console.js:720:14)
    at inspectValue (ext:deno_console/02_console.js:738:9)
    at inspectValueWithQuotes (ext:deno_console/02_console.js:852:14)
    at inspectRawObject (ext:deno_console/02_console.js:1235:13)
    at inspectObject (ext:deno_console/02_console.js:1402:36)
    at _inspectValue (ext:deno_console/02_console.js:720:14)
    at inspectValue (ext:deno_console/02_console.js:738:9)

octokitのバグかと思って再現性を確認したところ、console.logしなければ普通に動くことがわかった

import { App } from "https://esm.sh/octokit@3.1.0";

// base64 encoded private key
const key = `...`;

const app = new App({
    appId: 123456,
    privateKey: atob(key),
});

for await (const { octokit, repository } of app.eachRepository.iterator()) {
    const c = await octokit.rest.repos.listTeams({
        owner: repository.owner.login,
        repo: repository.name,
        branch: "master",
    });
    // 動く!
    console.log(c);
}

jsでconsole.logできない正常なオブジェクトがあるとは思わなかった。deno特有の問題なのかはわからない

このスクラップは2023/08/17にクローズされました