fix(phoenix): Gracefully handle completing a non-existent path

filesystem.readdir() can throw, which previously would crash Phoenix and
leave the terminal unresponsive. This change makes it return no results
instead.
This commit is contained in:
Sam Atkins
2024-06-28 14:52:39 +01:00
committed by Eric Dubé
parent 4539408a21
commit d76e7130cb
@@ -33,12 +33,17 @@ export class FileCompleter {
const completions = [];
const result = await filesystem.readdir(dir);
if ( result === undefined ) {
return [];
let dir_entries;
try {
dir_entries = await filesystem.readdir(dir);
} catch (e) {
// Ignored
}
for ( const item of result ) {
if ( dir_entries === undefined )
return [];
for ( const item of dir_entries ) {
if ( item.name.startsWith(base) ) {
completions.push(item.name.slice(base.length));
}