UNPKG

get-typeandmime

Version:

npm package for generating its file-type on basis of magic numbers!!

45 lines (33 loc) 1.2 kB
const fs = require("fs"); const types = require("./fileTypes"); const magicNumbers = types; // Get file Mime and signs based on Type of File function getFileType(filePath) { const buffer = Buffer.alloc(8); const fd = fs.openSync(filePath, "r"); fs.readSync(fd, buffer, 0, 8, 0); fs.closeSync(fd); const fileHeader = buffer.toString("hex").toUpperCase(); for (const [fileType] of Object.entries(magicNumbers)) { const fileCheck = types[fileType].signs[0].split(",")[1]; if (fileHeader.startsWith(fileCheck)) { return { Type: fileType, mime: `${magicNumbers[fileType].mime}` }; } } return "Unsupported file type"; } // verify whether the file extension is present in list or not function getFileSign(fileExtension) { if (types[fileExtension]) { return types[fileExtension]; } else { return "Unsupported file type by this NPM Package, Please contact author to add it up!!"; } } // get file type from remote location async function getStreamFileType(file) { const result = await fetch(file); return (await result.blob()).type; } // Expecting string argument for function module.exports = { getFileType, getFileSign, getStreamFileType};