file.js 1.01 KB
const fs = require('fs');
const path = require('path');
const faker = require('faker');
const mime = require('mime-types');
const walkSync = (dir, filelist = [], exclude = []) => {
  let files = fs.readdirSync(dir) || [];
  filelist = filelist || [];
  files.forEach((name) => {
    let filePath = path.join(dir, name);
    let file = {};
    let fileStat = fs.statSync(filePath);
    let fullPath = path.resolve(filePath);
    let parse = path.parse(filePath);
    let fileType = mime.lookup(filePath);
    if (fileStat.isDirectory()) {
      filelist = walkSync(filePath, filelist);
    }
    else {
      file = {
        uuid: faker.random.uuid(),
        fileName: name,
        fileType: fileType,
        path: filePath,
        fullPath: fullPath,
        ext: parse.ext,
        dir: parse.dir,
        ctime: fileStat.ctime,
        size: fileStat.size
      };
      filelist.push(file);
    }
  });
  return filelist;
};
const files = walkSync('./static', [], []);


module.exports = () => {
  return {
    data: files
  };
};