Closed1

Denoでrunしたときの入力と出力のメモ

ひいらぎのぞみひいらぎのぞみ
const process = Deno.run({
  cmd: ["こまんど", "ぱらめた"],
  stdout: "piped",
  stdin: "piped",
});

// stdoutを読む用にreadLinesをつかうやつばかり出るけどこれだと改行してないやつが見れなくて代替が見つけられなかった
const readReader = async (
  reader: Deno.Reader,
  callback: (msg: string) => boolean | undefined,
) => {
  const decoder = new TextDecoder();
  const buffer = new Uint8Array(4096);
  while (await reader.read(buffer) !== null) {
    for (const msg of decoder.decode(buffer).split("\n")) {
      if (callback(msg)) return;
    }
  }
};

const encodeString = (str: string) =>
  new Uint8Array(new TextEncoder().encode(str));

readReader(process.stdout, (msg) => {
  if (msg.match("これがきたら")) {
    process.stdin.write(encodeString("これを送る"));
    return true;
  }
});

// 状況
const status = await process.status();


ぱっと見これで動きましたのでメモ

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