From 44a0062a905bbe52d74ab908902b4e6e4f179a04 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 2 Jul 2019 10:11:47 +0200 Subject: [PATCH] Revert: do not use withFileTypes on readdir (fix #76425) --- src/vs/base/node/pfs.ts | 20 +++----------------- src/vs/base/test/node/pfs/pfs.test.ts | 18 ------------------ 2 files changed, 3 insertions(+), 35 deletions(-) diff --git a/src/vs/base/node/pfs.ts b/src/vs/base/node/pfs.ts index 7d4577e1168..14dca3d5f49 100644 --- a/src/vs/base/node/pfs.ts +++ b/src/vs/base/node/pfs.ts @@ -138,20 +138,6 @@ export async function readdir(path: string): Promise { return handleDirectoryChildren(await promisify(fs.readdir)(path)); } -export async function readdirWithFileTypes(path: string): Promise { - const children = await promisify(fs.readdir)(path, { withFileTypes: true }); - - // Mac: uses NFD unicode form on disk, but we want NFC - // See also https://github.com/nodejs/node/issues/2165 - if (platform.isMacintosh) { - for (const child of children) { - child.name = normalizeNFC(child.name); - } - } - - return children; -} - export function readdirSync(path: string): string[] { return handleDirectoryChildren(fs.readdirSync(path)); } @@ -479,12 +465,12 @@ function ensureWriteOptions(options?: IWriteFileOptions): IEnsuredWriteFileOptio } export async function readDirsInDir(dirPath: string): Promise { - const children = await readdirWithFileTypes(dirPath); + const children = await readdir(dirPath); const directories: string[] = []; for (const child of children) { - if (child.isDirectory()) { - directories.push(child.name); + if (await dirExists(join(dirPath, child))) { + directories.push(child); } } diff --git a/src/vs/base/test/node/pfs/pfs.test.ts b/src/vs/base/test/node/pfs/pfs.test.ts index 33b10c5dc34..4f09ad2b56d 100644 --- a/src/vs/base/test/node/pfs/pfs.test.ts +++ b/src/vs/base/test/node/pfs/pfs.test.ts @@ -386,24 +386,6 @@ suite('PFS', () => { } }); - test('readdirWithFileTypes', async () => { - if (canNormalize && typeof process.versions['electron'] !== 'undefined' /* needs electron */) { - const id = uuid.generateUuid(); - const parentDir = path.join(os.tmpdir(), 'vsctests', id); - const newDir = path.join(parentDir, 'pfs', id, 'öäü'); - - await pfs.mkdirp(newDir, 493); - - assert.ok(fs.existsSync(newDir)); - - const children = await pfs.readdirWithFileTypes(path.join(parentDir, 'pfs', id)); - assert.equal(children.some(n => n.name === 'öäü'), true); // Mac always converts to NFD, so - assert.equal(children.some(n => n.isDirectory()), true); - - await pfs.rimraf(parentDir); - } - }); - test('writeFile (string)', async () => { const smallData = 'Hello World'; const bigData = (new Array(100 * 1024)).join('Large String\n');