@picturae/mmmagic
v0.5.5
Published
An async libmagic binding for node.js for detecting content types by data inspection
Downloads
9,307
Readme
Description
An async libmagic binding for node.js for detecting content types by data inspection.
Requirements
- node.js -- v4.0.0 or newer
Install
npm install mmmagic
Examples
- Get general description of a file:
var Magic = require('mmmagic').Magic;
var magic = new Magic();
magic.detectFile('node_modules/mmmagic/build/Release/magic.node', function(err, result) {
if (err) throw err;
console.log(result);
// output on Windows with 32-bit node:
// PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
});
- Get mime type for a file:
var mmm = require('mmmagic'),
Magic = mmm.Magic;
var magic = new Magic(mmm.MAGIC_MIME_TYPE);
magic.detectFile('node_modules/mmmagic/build/Release/magic.node', function(err, result) {
if (err) throw err;
console.log(result);
// output on Windows with 32-bit node:
// application/x-dosexec
});
- Get mime type and mime encoding for a file:
var mmm = require('mmmagic'),
Magic = mmm.Magic;
var magic = new Magic(mmm.MAGIC_MIME_TYPE | mmm.MAGIC_MIME_ENCODING);
// the above flags can also be shortened down to just: mmm.MAGIC_MIME
magic.detectFile('node_modules/mmmagic/build/Release/magic.node', function(err, result) {
if (err) throw err;
console.log(result);
// output on Windows with 32-bit node:
// application/x-dosexec; charset=binary
});
- Get general description of the contents of a Buffer:
var Magic = require('mmmagic').Magic;
var magic = new Magic(),
buf = new Buffer('import Options\nfrom os import unlink, symlink');
magic.detect(buf, function(err, result) {
if (err) throw err;
console.log(result);
// output: Python script, ASCII text executable
});
API
Magic methods
(constructor)([< mixed >magicSource][, < Integer >flags]) - Creates and returns a new Magic instance.
magicSource
(if specified) can either be a path string that points to a (compatible) magic file to use or it can be a Buffer containing the contents of a (compatible) magic file. IfmagicSource
is not a string and notfalse
, the bundled magic file will be used. IfmagicSource
isfalse
, mmmagic will default to searching for a magic file to use (order of magic file searching:MAGIC
env var -> various file system paths (seeman file
)). flags is a bitmask with the following valid values (available as constants onrequire('mmmagic')
):- MAGIC_NONE - No flags set
- MAGIC_DEBUG - Turn on debugging
- MAGIC_SYMLINK - Follow symlinks (default for non-Windows)
- MAGIC_DEVICES - Look at the contents of devices
- MAGIC_MIME_TYPE - Return the MIME type
- MAGIC_CONTINUE - Return all matches (returned as an array of strings)
- MAGIC_CHECK - Print warnings to stderr
- MAGIC_PRESERVE_ATIME - Restore access time on exit
- MAGIC_RAW - Don't translate unprintable chars
- MAGIC_MIME_ENCODING - Return the MIME encoding
- MAGIC_MIME - (MAGIC_MIME_TYPE | MAGIC_MIME_ENCODING)
- MAGIC_APPLE - Return the Apple creator and type
- MAGIC_NO_CHECK_TAR - Don't check for tar files
- MAGIC_NO_CHECK_SOFT - Don't check magic entries
- MAGIC_NO_CHECK_APPTYPE - Don't check application type
- MAGIC_NO_CHECK_ELF - Don't check for elf details
- MAGIC_NO_CHECK_TEXT - Don't check for text files
- MAGIC_NO_CHECK_CDF - Don't check for cdf files
- MAGIC_NO_CHECK_TOKENS - Don't check tokens
- MAGIC_NO_CHECK_ENCODING - Don't check text encodings
detectFile(< String >path, < Function >callback) - (void) - Inspects the file pointed at by path. The callback receives two arguments: an < Error > object in case of error (null otherwise), and a < String > containing the result of the inspection.
detect(< Buffer >data, < Function >callback) - (void) - Inspects the contents of data. The callback receives two arguments: an < Error > object in case of error (null otherwise), and a < String > containing the result of the inspection.