mmmagic2
v0.5.5
Published
An async libmagic binding for node.js for detecting content types by data inspection
Maintainers
Readme
NOTE
Installation of THIS fork
npm install mmmagic2I am not maintaining this
This fork is made in order to merge/apply patches that others have made (pull requests are open btw) in order to fix macOS builds and node v20+ builds since the original appears to be unmaintained.
This fork is functionally identical to the original
The differences are the following:
- this readme file
- package name (changed from mmmagic to mmmagic2 to be made into a different package on NPM)
- repo URL in the package.json file so that the NPM package links to this github repository (reason: patches can be applied)
Original repo here -> https://github.com/mscdex/mmmagic
Original description is found below
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 mmmagicExamples
- 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. IfmagicSourceis not a string and notfalse, the bundled magic file will be used. IfmagicSourceisfalse, mmmagic will default to searching for a magic file to use (order of magic file searching:MAGICenv 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.
