UNPKG

fs-readdir-sync-with-file-types

Version:
46 lines (39 loc) 1.2 kB
'use strict'; var path = require('path'); var _require = require('fs'), lstatSync = _require.lstatSync, readdirSync = _require.readdirSync; var currify = require('currify/legacy'); var isString = function isString(a) { return typeof a === 'string'; }; var getDirEnt = currify(_getDirEnt); module.exports = function (dir) { var names = readdirSync(dir, { withFileTypes: true }); if (!names.length) return []; if (!isString(names[0])) return names; return names.map(getDirEnt(dir)); }; function _getDirEnt(dir, name) { var fullPath = path.join(dir, name); var stat = lstatSync(fullPath); var isBlockDevice = stat.isBlockDevice, isCharacterDevice = stat.isCharacterDevice, isDirectory = stat.isDirectory, isFIFO = stat.isFIFO, isFile = stat.isFile, isSocket = stat.isSocket, isSymbolicLink = stat.isSymbolicLink; return { name: name, isBlockDevice: isBlockDevice.bind(stat), isCharacterDevice: isCharacterDevice.bind(stat), isDirectory: isDirectory.bind(stat), isFIFO: isFIFO.bind(stat), isFile: isFile.bind(stat), isSocket: isSocket.bind(stat), isSymbolicLink: isSymbolicLink.bind(stat) }; }