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.
Features
- 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
Installation
npm install filetypes
API
TODO
Examples
Simple file type checking
const FileTypes = ;//Just Check extensionlet extension = FileTypes;/**{ name: 'mp4', mine: 'video/mp4', extension: 'mp4', match: [Function: match] }*///Check extension and Magic_numbers in file;let extension = FileTypes; //Check if extension is SupportedFileTypes//trueFileTypes//false
collective type checking
let isAudio isImage isArchive isFont isVideo = ;//false//true
Supported types
Image
- 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
Video
- 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
Audio
- mid -
audio/midi
- mp3 -
audio/mpeg
- m4a -
audio/m4a
- ogg -
audio/ogg
- flac -
audio/x-flac
- wav -
audio/x-wav
- amr -
audio/amr
Archive
- 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
Font
- woff -
application/font-woff
- woff2 -
application/font-woff
- ttf -
application/font-sfnt
- otf -
application/font-sfnt
License
MIT - Geoff Mureithi Lots of ideas borrowed Tomas Aparicio