AGENT SKILL
bun-file-io
bun-file-io 是面向效率工具的 Agent Skill,来自 anomalyco/opencode。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。
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.
| name | bun-file-io |
|---|
| description | 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. |
|---|
Use this when
- Editing file I/O or scans in
packages/opencode
- Handling directory operations or external tools
Bun file APIs (from Bun docs)
Bun.file(path) is lazy; call text, json, stream, arrayBuffer, bytes, exists to read.
- Metadata:
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.
- Use
Bun.which to find a binary, then Bun.spawn to run it.
Bun.readableStreamToText/Bytes/JSON for stream output.
When to use node:fs
- Use
node:fs/promises for directories (mkdir, readdir, recursive operations).
Repo patterns
- Prefer Bun APIs over Node
fs for file access.
- Check
Bun.file(...).exists() before reading.
- For binary/large files use
arrayBuffer() and MIME checks via file.type.
- Use
Bun.Glob + Array.fromAsync for scans.
- Decode tool stderr with
Bun.readableStreamToText.
- For large writes, use
Bun.write(Bun.file(path), text).
Quick checklist
- Use Bun APIs first.
- Use
path.join/path.resolve for paths.
- Prefer promise
.catch(...) over try/catch when possible.
来源:anomalyco/opencode · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本