mime-detect
v1.2.0
Published
Detect mime type and encoding (aka Content-Type) from buffer, file content and filename.
Downloads
4,710
Maintainers
Readme
mime-detect
Detect mime type and encoding (aka Content-Type) from buffer, file content and filename.
Supported both node.js and browser. (It can be bundled with esbuild.)
Powered by:
- file (Inspired by mimetype-magic)
- mime-db
Installation
npm i mime-detect
Alternatively, you can also install it pnpm or yarn for better DX.
Usage Example
import { readdirSync, readFileSync } from 'fs'
import { join } from 'path'
import {
detectBufferMime,
detectFileMime,
detectFilenameMime,
} from 'mime-detect'
// return Promise<string> if not given callback
console.log(await detectFileMime('image.jpg'))
// print 'image/jpeg'
// also support callback-style for less async overhead
detectFileMime('index.html', (error, mime) => console.log(mime))
// print 'text/html; charset=us-ascii'
// also can detect from in-memory binary data
let mime = await detectBufferMime(buffer)
// If the mime is text/plain or application/octet-stream, it can determine mime from filename. Otherwise, the original mime will be returned
mime = detectFilenameMime('users.csv', mime)
Typescript Signatures
export function detectFileMime(file: string, cb: DetectMimeCallback): void
export function detectFileMime(file: string): Promise<string>
export function detectFilenameMime(file: string, mime?: string): string
export function detectBufferMime(buffer: Buffer, cb: DetectMimeCallback): void
export function detectBufferMime(buffer: Buffer): Promise<string>
export interface DetectMimeCallback {
(error: Error, mime?: string): void
(error: null, mime: string): void
}
License
This project is licensed with BSD-2-Clause
This is free, libre, and open-source software. It comes down to four essential freedoms [ref]:
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others