@prexjs/mime-types
v1.0.0
Published
Fast, comprehensive MIME type and file extension lookup utility based on mime-db.
Readme
@prexjs/mime-types
Fast, comprehensive MIME type and file extension lookup utility based on mime-db.
@prexjs/mime-types maps file extensions to MIME types, discovers default file extensions for content types, identifies charsets, and formats full Content-Type HTTP headers.
Features
- Lookup MIME types from file paths or extensions (
lookup('json')->'application/json'). - Lookup default file extension for a MIME type (
extension('text/html')->'html'). - Generate full
Content-Typeheader with appropriate charset (contentType('html')->'text/html; charset=utf-8'). - Determine default character sets for media types (
charset('text/markdown')->'UTF-8'). - Dual ES Module (
.mjs) and CommonJS (.cjs) support with TypeScript definitions. - Zero external runtime dependencies.
Installation
Install using your preferred package manager:
# npm
npm install @prexjs/mime-types
# pnpm
pnpm add @prexjs/mime-types
# Yarn
yarn add @prexjs/mime-types
# Bun
bun add @prexjs/mime-typesQuick start
import mime, { lookup, contentType, extension, charset } from '@prexjs/mime-types';
// Extension lookup
console.log(lookup('json')); // 'application/json'
console.log(lookup('.png')); // 'image/png'
console.log(lookup('file.txt')); // 'text/plain'
// Content-Type header with charset
console.log(contentType('markdown')); // 'text/markdown; charset=utf-8'
// Extension for type
console.log(extension('application/json')); // 'json'
// Charset lookup
console.log(charset('text/plain')); // 'UTF-8'Both default and named exports are supported:
import mime, {
lookup,
contentType,
extension,
charset,
types,
extensions,
type ExtensionConflict,
} from '@prexjs/mime-types';Examples
Using in an HTTP server
import http from 'node:http';
import { contentType } from '@prexjs/mime-types';
const server = http.createServer((req, res) => {
const header = contentType('file.html');
if (header) {
res.setHeader('Content-Type', header);
}
res.end('<h1>Hello World</h1>');
});Compatibility
@prexjs/mime-types runs in any JavaScript runtime (Node.js, Deno, Bun, browser) without external dependencies.
License
This project is licensed under the MIT License. See LICENSE for the full license text.
Related projects
- prex.js — prex.js monorepo and ecosystem.
