Use this when you are working on file operations like reading, writing, scanning, or deleting files. It summarizes the preferred file APIs and patterns used in this repo. It also notes when to use filesystem helpers for directories.
packages/kreonyxBun.file(path) is lazy; call text, json, stream, arrayBuffer, bytes, exists to read.file.size, file.type, file.name.Bun.write(dest, input) writes strings, buffers, Blobs, Responses, or files.Bun.file(...).delete() deletes a file.file.writer() returns a FileSink for incremental writes.Bun.Glob + Array.fromAsync(glob.scan({ cwd, absolute, onlyFiles, dot })) for scans.Bun.which to find a binary, then Bun.spawn to run it.Bun.readableStreamToText/Bytes/JSON for stream output.node:fs/promises for directories (mkdir, readdir, recursive operations).fs for file access.Bun.file(...).exists() before reading.arrayBuffer() and MIME checks via file.type.Bun.Glob + Array.fromAsync for scans.Bun.readableStreamToText.Bun.write(Bun.file(path), text).NOTE: Bun.file(...).exists() will return false if the value is a directory.
Use Filesystem.exists(...) instead if path can be file or directory
path.join/path.resolve for paths..catch(...) over try/catch when possible.