unpkg/server/middleware/FileUtils.js

50 lines
998 B
JavaScript

const fs = require('fs')
const mime = require('mime')
mime.define({
'text/plain': [
'license',
'readme',
'changes',
'authors',
'makefile',
'ts',
'flow'
]
})
const TextFiles = /\/?(\.[a-z]*rc|\.git[a-z]*|\.[a-z]*ignore)$/i
function getContentType(file) {
return TextFiles.test(file) ? 'text/plain' : mime.lookup(file)
}
function getStats(file) {
return new Promise((resolve, reject) => {
fs.lstat(file, (error, stats) => {
if (error) {
reject(error)
} else {
resolve(stats)
}
})
})
}
function getFileType(stats) {
if (stats.isFile()) return 'file'
if (stats.isDirectory()) return 'directory'
if (stats.isBlockDevice()) return 'blockDevice'
if (stats.isCharacterDevice()) return 'characterDevice'
if (stats.isSymbolicLink()) return 'symlink'
if (stats.isSocket()) return 'socket'
if (stats.isFIFO()) return 'fifo'
return 'unknown'
}
module.exports = {
getContentType,
getStats,
getFileType
}