Skip to content

Commit 16a52be

Browse files
committed
Fix keepDirs check during deletion
1 parent 4f6a513 commit 16a52be

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

test/suite/extension.test.ts

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -52,38 +52,38 @@ function getExtensionLogContent(): string | undefined {
5252
}
5353

5454
async function deleteFiles(dir: vscode.Uri, keepDirs: vscode.Uri[], pred?: (fileType: string) => boolean) {
55-
if (keepDirs.includes(dir)) {
55+
if (keepDirs.findIndex((val) => val.path === dir.path) !== -1) {
5656
console.log(`Keeping ${dir}`);
57-
return;
58-
};
59-
const dirContents = await vscode.workspace.fs.readDirectory(dir);
60-
console.log(`Deleting ${dir} contents: ${dirContents}`);
61-
dirContents.forEach(async ([name, type]) => {
62-
const uri: vscode.Uri = joinUri(dir, name);
63-
if (type === vscode.FileType.File) {
64-
if (!pred || pred(name)) {
65-
console.log(`Deleting ${uri}`);
66-
await vscode.workspace.fs.delete(joinUri(dir, name), {
67-
recursive: false,
68-
useTrash: false,
69-
});
70-
}
71-
} else if (type === vscode.FileType.Directory) {
72-
const subDirectory = joinUri(dir, name);
73-
console.log(`Recursing into ${subDirectory}`);
74-
await deleteFiles(subDirectory, keepDirs, pred);
75-
76-
// remove directory if it is empty now
77-
const isEmptyNow = await vscode.workspace.fs.readDirectory(subDirectory)
78-
.then((contents) => Promise.resolve(contents.length === 0));
79-
if (isEmptyNow) {
80-
await vscode.workspace.fs.delete(subDirectory, {
81-
recursive: false,
82-
useTrash: false,
83-
});
57+
} else {
58+
const dirContents = await vscode.workspace.fs.readDirectory(dir);
59+
console.log(`Deleting ${dir} contents: ${dirContents}`);
60+
dirContents.forEach(async ([name, type]) => {
61+
const uri: vscode.Uri = joinUri(dir, name);
62+
if (type === vscode.FileType.File) {
63+
if (!pred || pred(name)) {
64+
console.log(`Deleting ${uri}`);
65+
await vscode.workspace.fs.delete(joinUri(dir, name), {
66+
recursive: false,
67+
useTrash: false,
68+
});
69+
}
70+
} else if (type === vscode.FileType.Directory) {
71+
const subDirectory = joinUri(dir, name);
72+
console.log(`Recursing into ${subDirectory}`);
73+
await deleteFiles(subDirectory, keepDirs, pred);
74+
75+
// remove directory if it is empty now
76+
const isEmptyNow = await vscode.workspace.fs.readDirectory(subDirectory)
77+
.then((contents) => Promise.resolve(contents.length === 0));
78+
if (isEmptyNow) {
79+
await vscode.workspace.fs.delete(subDirectory, {
80+
recursive: false,
81+
useTrash: false,
82+
});
83+
}
8484
}
85-
}
86-
});
85+
});
86+
}
8787
}
8888

8989

0 commit comments

Comments
 (0)