Skip to content

ディレクトリ一覧の大規模エントリ対応 #421

@j4rviscmd

Description

@j4rviscmd

背景

Issue #46(大規模ペイロード向けWebSocketベースのIPCストリーミング)の分割Issue。

AS IS(現状)

  • fs_read_dirが全エントリを一度にJSON配列で返す
  • node_modulesのような大規模ディレクトリ(数万エントリ)ではレスポンスが巨大
  • JSONパースがUIスレッドをブロックする可能性

関連コード

  • src-tauri/src/commands/filesystem.rsfs_read_dirコマンド
  • src/vs/platform/files/node/diskFileSystemProvider.ts — 本家のreaddir実装(参考)

TO BE(目標状態)

  • 大規模ディレクトリ向けのチャンク送信対応(将来的な最適化)
  • 現状は本家も一括返しなので、まずは他のIssue完了後に検討

想定アプローチ

本家(Electron版)の実装

実装

  • fs.promises.readdir()全件一括返し
  • 各エントリをPromise.allで並列処理(symlinkはstat()でタイプ解決)
  • チャンク化なし、ストリーミングなし

インターフェース

readdir(resource: URI): Promise<[string, FileType][]>;

関連コード(本家)

  • src/vs/platform/files/node/diskFileSystemProvider.tsreaddir()実装
  • src/vs/platform/files/common/fileService.tstoFileStat()内でreaddir呼び出し

参考

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestlow低い問題: 軽微な問題、UXへの影響小tauri-migrationElectron to Tauri 2.0 migration

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions