mime-detect
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

mime-detect

Detect mime type and encoding (aka Content-Type) from buffer, file content and filename.

npm Package Version

Supported both node.js and browser. (It can be bundled with esbuild.)

Powered by:

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

Package Sidebar

Install

npm i mime-detect

Weekly Downloads

1,660

Version

1.2.0

License

BSD-2-Clause

Unpacked Size

75.3 kB

Total Files

7

Last publish

Collaborators

  • beenotung