11// promisify ourselves, because older nodes don't have fs.promises
22
3- import fs from 'fs'
3+ import fs , { Dirent } from 'fs'
44
55// sync ones just take the sync version from node
66export {
77 chmodSync ,
88 mkdirSync ,
9- readdirSync ,
109 renameSync ,
1110 rmdirSync ,
1211 rmSync ,
1312 statSync ,
1413 unlinkSync ,
1514} from 'fs'
1615
16+ import { readdirSync as rdSync } from 'fs'
17+ export const readdirSync = ( path : fs . PathLike ) : Dirent [ ] =>
18+ rdSync ( path , { withFileTypes : true } )
19+
1720// unrolled for better inlining, this seems to get better performance
1821// than something like:
1922// const makeCb = (res, rej) => (er, ...d) => er ? rej(er) : res(...d)
@@ -36,9 +39,11 @@ const mkdir = (
3639 fs . mkdir ( path , options , ( er , made ) => ( er ? rej ( er ) : res ( made ) ) )
3740 )
3841
39- const readdir = ( path : fs . PathLike ) : Promise < string [ ] > =>
40- new Promise ( ( res , rej ) =>
41- fs . readdir ( path , ( er , data ) => ( er ? rej ( er ) : res ( data ) ) )
42+ const readdir = ( path : fs . PathLike ) : Promise < Dirent [ ] > =>
43+ new Promise < Dirent [ ] > ( ( res , rej ) =>
44+ fs . readdir ( path , { withFileTypes : true } , ( er , data ) =>
45+ er ? rej ( er ) : res ( data )
46+ )
4247 )
4348
4449const rename = ( oldPath : fs . PathLike , newPath : fs . PathLike ) : Promise < void > =>
0 commit comments