Small and dependency free Javascript library to infer file type and MIME type checking the magic numbers signature of a file or buffer.
This is a Javascript port from filetype Go package.
- Simple and friendly API
- Supports a wide range of file types
- Provides file extension and MIME type inference
- File discovery by extension or MIME type
- File discovery by kind (image, video, audio...)
- Only first 261 bytes representing the max file header is required, so you can just [pass a list of bytes]
- Dependency free
- Cross-platform file recognition
npm install filetypes
TODO
const FileTypes = require('filetypes');
//Just Check extension
let extension = FileTypes.guessMineType('Nicki Minaj - Anaconda.mp4');
/**
{ name: 'mp4',
mine: 'video/mp4',
extension: 'mp4',
match: [Function: match] }
*/
//Check extension and Magic_numbers in file;
let extension = FileTypes.guessMineType('../path/to/Nicki Minaj - Anaconda.mp4', true);
//Check if extension is Supported
FileTypes.isMineSupported("mp4")
//true
FileTypes.isMineSupported("xxs")
//false
let { isAudio, isImage, isArchive, isFont, isVideo } = require('filetypes');
isAudio('../path/to/Nicki Minaj - Anaconda.mp4')
//false
isVideo('../path/to/Nicki Minaj - Anaconda.mp4')
//true
-
jpg -
image/jpeg
-
png -
image/png
-
gif -
image/gif
-
webp -
image/webp
-
cr2 -
image/x-canon-cr2
-
tif -
image/tiff
-
bmp -
image/bmp
-
jxr -
image/vnd.ms-photo
-
psd -
image/vnd.adobe.photoshop
-
ico -
image/x-icon
-
mp4 -
video/mp4
-
m4v -
video/x-m4v
-
mkv -
video/x-matroska
-
webm -
video/webm
-
mov -
video/quicktime
-
avi -
video/x-msvideo
-
wmv -
video/x-ms-wmv
-
mpg -
video/mpeg
-
flv -
video/x-flv
-
mid -
audio/midi
-
mp3 -
audio/mpeg
-
m4a -
audio/m4a
-
ogg -
audio/ogg
-
flac -
audio/x-flac
-
wav -
audio/x-wav
-
amr -
audio/amr
-
epub -
application/epub+zip
-
zip -
application/zip
-
tar -
application/x-tar
-
rar -
application/x-rar-compressed
-
gz -
application/gzip
-
bz2 -
application/x-bzip2
-
7z -
application/x-7z-compressed
-
xz -
application/x-xz
-
pdf -
application/pdf
-
exe -
application/x-msdownload
-
swf -
application/x-shockwave-flash
-
rtf -
application/rtf
-
eot -
application/octet-stream
-
ps -
application/postscript
-
sqlite -
application/x-sqlite3
-
nes -
application/x-nintendo-nes-rom
-
crx -
application/x-google-chrome-extension
-
cab -
application/vnd.ms-cab-compressed
-
deb -
application/x-deb
-
ar -
application/x-unix-archive
-
Z -
application/x-compress
-
lz -
application/x-lzip
-
woff -
application/font-woff
-
woff2 -
application/font-woff
-
ttf -
application/font-sfnt
-
otf -
application/font-sfnt
MIT - Geoff Mureithi Lots of ideas borrowed Tomas Aparicio