Node pass-through stream for MIME type detection.
This package depends on sindresorhus/file-type
,
adding its own interface on top.
Nowadays, file-type
provides a pass-through stream right out of the box.
Hence, this package has become obsolete. It will at most receive critical
security updates.
Do not use mime-stream
in new projects, and migrate old projects away.
npm i mime-stream
This event is emitted as soon as the type is detected. If the type remains
unknown, null
is passed to the event handler instead of an object.
It is guaranteed that there is always exactly one type
event emitted, even
when the stream is closed prematurely.
Example:
const fs = require('fs')
const MimeStream = require('mime-stream')
const stream = new MimeStream()
stream.on('type', function (type) {
console.log(type) // { ext: 'png', mime: 'image/png' }
})
fs.createReadStream('myimage.png').pipe(stream)
You could also add more .pipe()
calls to the chain. MimeStream
is
non-destructive and passes on any data it receives.
This is the same as binding a function to the type
event, just more
concise.
Example:
const fs = require('fs')
const MimeStream = require('mime-stream')
// `new` is optional anyway
fs.createReadStream('myimage.png').pipe(MimeStream((type) => {
console.log(type) // { ext: 'png', mime: 'image/png' }
}))
After detection, the detection result is also available inside the type
property. Example:
stream.on('end', function () {
console.log(stream.type) // { ext: 'png', mime: 'image/png' }
})