mcpField
B
bun-file-io

bun-file-io

github.com/anomalyco開発225.5k105 回インストール今日更新
リポジトリ

bun-file-io について

`packages/opencode` で Bun を使うファイル入出力とスキャンの規約をまとめた開発スキルです。ファイル、ディレクトリ、スキャン、外部プロセスに適した API 選びを支援します。

主な機能

  1. 01Bun によるファイル読み書きのパターン
  2. 02Bun.Glob によるファイルスキャン
  3. 03node:fs/promises によるディレクトリ操作
  4. 04Bun.which と Bun.spawn による外部ツール実行
  5. 05ストリーム出力のデコード指針

活用シーン

  1. 01`packages/opencode` のファイル I/O の編集
  2. 02ファイルやディレクトリのスキャン
  3. 03バイナリまたは大きなファイルの読み込み
  4. 04外部ツールの実行と出力処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/anomalyco/opencode --skill bun-file-io

インストール後、Claude Code で/bun-file-ioを入力して読み込まれたか確認します。

詳細

以下の場合に使用してください

  • packages/opencode のファイル I/O またはスキャンを編集するとき
  • ディレクトリ操作または外部ツールを扱うとき

Bun のファイル API(Bun のドキュメントより)

  • Bun.file(path) は遅延実行されます。読み込むには text、json、stream、arrayBuffer、bytes、exists を呼び出します。
  • メタデータ:file.size、file.type、file.name。
  • Bun.write(dest, input) は文字列、バッファー、Blob、Response、ファイルを書き込みます。
  • Bun.file(...).delete() はファイルを削除します。
  • file.writer() は、段階的な書き込みに使う FileSink を返します。
  • スキャンには Bun.Glob と Array.fromAsync(glob.scan({ cwd, absolute, onlyFiles, dot })) を使用します。
  • バイナリを見つけるには Bun.which を使用し、その後 Bun.spawn で実行します。
  • ストリーム出力には Bun.readableStreamToText/Bytes/JSON を使用します。

node:fs を使用する場合

  • ディレクトリ操作(mkdir、readdir、再帰操作)には node:fs/promises を使用します。

リポジトリのパターン

  • ファイルアクセスには Node fs より Bun API を優先してください。
  • 読み込む前に Bun.file(...).exists() を確認してください。
  • バイナリファイルや大容量ファイルには arrayBuffer() と、file.type による MIME チェックを使用してください。
  • スキャンには Bun.Glob と Array.fromAsync を使用してください。
  • ツールの stderr は Bun.readableStreamToText でデコードしてください。
  • 大容量の書き込みには Bun.write(Bun.file(path), text) を使用してください。

NOTE: Bun.file(...).exists() は、値がディレクトリの場合に false を返します。 パスがファイルまたはディレクトリのどちらである可能性もある場合は、代わりに Filesystem.exists(...) を使用してください。

簡易チェックリスト

  • まず Bun API を使用してください。
  • パスには path.join/path.resolve を使用してください。
  • 可能な場合は try/catch より Promise の .catch(...) を優先してください。

コメント