Revert: do not use withFileTypes on readdir (fix #76425)

This commit is contained in:
Benjamin Pasero 2019-07-02 10:11:47 +02:00
parent 06d2f9c05d
commit 44a0062a90
2 changed files with 3 additions and 35 deletions

View file

@ -138,20 +138,6 @@ export async function readdir(path: string): Promise<string[]> {
return handleDirectoryChildren(await promisify(fs.readdir)(path));
}
export async function readdirWithFileTypes(path: string): Promise<fs.Dirent[]> {
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<string[]> {
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);
}
}

View file

@ -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');