Detect the MIME type of a Buffer, Uint8Array, ArrayBuffer, ReadableStream, file path and file name, with async method.
npm install mime-kindmime-kind  
==========
  
Detect the MIME type of a Buffer, Uint8Array, ArrayBuffer, ReadableStream, file path and file name, with async method.
sh
$ npm install mime-kind --save
`Usage
`js
const { createReadStream } = require('fs');
const mime = require('mime-kind');await mime('.fakeext'); // -> null
await mime(createReadStream('./anonim.jpg')); // -> { ext: 'jpeg', mime: 'image/jpeg' }
await mime('c:/anonim.jpeg'); // -> { ext: 'jpeg', mime: 'image/jpeg' }
`API
$3
$3
Returns a
Promise with an object (or null when no match) with:*
ext - file type
* mime - the MIME typeThis methods supports all kind of
ReadableStreams.$3
input (String|Buffer|Uint8Array|ArrayBuffer|ReadableStream*) -
Buffer, Uint8Array, ArrayBuffer, ReadableStream, file path or file name.
[defaultValue] (String|Object*) - String or Object with value which will be returned if no match will be found. If defaultValue is incorrect returns null.`js
const mime = require('mime-kind');await mime('.fakeext', 'application/octet-stream'); // -> { ext: 'bin', mime: 'application/octet-stream' }
await mime.async('.fakeext', { ext: 'mp4', mime: 'video/mp4' }); // -> { ext: 'mp4', mime: 'video/mp4' }
await mime.async('.fakeext', 'ogg'); // -> { ext: 'ogg', mime: 'audio/ogg' }
// but
await mime.async('.fakeext', 'ogg3'); // -> null
await mime('.fakeext', { ext: 'fake', mime: 'fake/fake' }); // -> null
`With
HTTP(S) streams:
`js
const mime = require('mime-kind');
const { get } = require('https');
const { PassThrough } = require('stream');const pass = new PassThrough();
get('https://avatars0.githubusercontent.com/u/2401029', res => res.pipe(pass));
await mime(pass); // -> { ext: 'jpg', mime: 'image/jpeg' }
``The MIT License (MIT)
Copyright (c) 2015-2022 Alexey Bystrov