crawlfs.js 727 B

12345678910111213141516171819202122
  1. 'use strict'
  2. const fs = process.versions.electron ? require('original-fs') : require('fs')
  3. const glob = require('glob')
  4. module.exports = function (dir, options, callback) {
  5. const metadata = {}
  6. return glob(dir, options, function (error, filenames) {
  7. if (error) { return callback(error) }
  8. for (const filename of filenames) {
  9. const stat = fs.lstatSync(filename)
  10. if (stat.isFile()) {
  11. metadata[filename] = {type: 'file', stat: stat}
  12. } else if (stat.isDirectory()) {
  13. metadata[filename] = {type: 'directory', stat: stat}
  14. } else if (stat.isSymbolicLink()) {
  15. metadata[filename] = {type: 'link', stat: stat}
  16. }
  17. }
  18. return callback(null, filenames, metadata)
  19. })
  20. }