Coder Social home page Coder Social logo

geofmureithi-zz / filetypes Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 4.0 8 KB

Filetypes is a Javascript library that helps you validate or guess the file and mine types of files using magic numbers

Home Page: https://www.npmjs.com/package/filetypes

License: MIT License

JavaScript 100.00%
node javascript files filetype magic-numbers mime

filetypes's Introduction

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 = 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

collective type checking

let { isAudio, isImage, isArchive, isFont, isVideo } = require('filetypes');
isAudio('../path/to/Nicki Minaj - Anaconda.mp4')
//false
isVideo('../path/to/Nicki Minaj - Anaconda.mp4')
//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

filetypes's People

Contributors

geofmureithi avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

filetypes's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.