Note — Bun provides a browser- and Node.js-compatible console global. This page only documents Bun-native APIs.
Object inspection depth
Bun allows you to configure how deeply nested objects are displayed in console.log()
output:
- CLI flag: Use
--console-depth <number>
to set the depth for a single run - Configuration: Set
console.depth
in yourbunfig.toml
for persistent configuration - Default: Objects are inspected to a depth of
2
levels
const nested = { a: { b: { c: { d: "deep" } } } };
console.log(nested);
// Default (depth 2): { a: { b: [Object] } }
// With depth 4: { a: { b: { c: { d: 'deep' } } } }
The CLI flag takes precedence over the configuration file setting.
Reading from stdin
In Bun, the console
object can be used as an AsyncIterable
to sequentially read lines from process.stdin
.
for await (const line of console) {
console.log(line);
}
This is useful for implementing interactive programs, like the following addition calculator.
console.log(`Let's add some numbers!`);
console.write(`Count: 0\n> `);
let count = 0;
for await (const line of console) {
count += Number(line);
console.write(`Count: ${count}\n> `);
}
To run the file:
bun adder.ts
Let's add some numbers!
Count: 0
5
Count: 5
5
Count: 10
5
Count: 15