const identifyBuffer = require("buffer-signature").identify; export const checkMimeType = (file: any) => { const reader = new FileReader(); reader.readAsArrayBuffer(file); return new Promise((resolve) => { reader.onloadend = function (e: any) { if (e.target.readyState === FileReader.DONE) { const bytes = new Uint8Array(e.target.result); const buffer = Buffer.alloc(bytes.buffer.byteLength); const view = new Uint8Array(bytes.buffer); const fileNameList = [ "png", "jpg", "jpeg", "webp", "gif", "tiff", "mp4", "mov", "wmv", "avi", "pdf", "mp3", "mpeg", ]; for (let i = 0; i < buffer.length; ++i) { buffer[i] = view[i]; } const data = identifyBuffer(buffer); if ( data.extensions.length && data.extensions.filter((type: string) => fileNameList.includes(type)) ) { resolve(data); } resolve(false); } }; }); };