summaryrefslogtreecommitdiff
path: root/cli/tests/raw_mode.ts
blob: 125601b2b5cff5e2cd849da5bf58cf56116cc182 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Deno.setRaw(0, true);
Deno.setRaw(0, true); // Can be called multiple times

Deno.stdout.writeSync(new TextEncoder().encode("S"));

const buf = new Uint8Array(3);
for (let i = 0; i < 3; i++) {
  const nread = await Deno.stdin.read(buf);
  if (nread === Deno.EOF) {
    break;
  } else {
    const data = new TextDecoder().decode(buf.subarray(0, nread));
    Deno.stdout.writeSync(new TextEncoder().encode(data.toUpperCase()));
  }
}

Deno.setRaw(0, false); // restores old mode.
Deno.setRaw(0, false); // Can be safely called multiple times