Lightweight MIME Type Definitions
A minimal, type-safe collection of common MIME types for Node.js and browser applications. Zero dependencies, full TypeScript support.
npm install mime-types-liteFeatures
Everything you need for MIME type handling in a lightweight package
Lightning Fast
Direct object access with zero computation overhead
Type Safe
Full TypeScript support with MimeType type definition
Lightweight
Tiny bundle size, zero dependencies
Universal
Works in Node.js and browsers
Simple API
Import MIME Types
Basic Usagetypescript
import mimeTypesLite from 'mime-types-lite';
// Access MIME types as constants
mimeTypesLite.HTML; // 'text/html'
mimeTypesLite.CSS; // 'text/css'
mimeTypesLite.JS; // 'application/javascript'
mimeTypesLite.PNG; // 'image/png'
mimeTypesLite.PDF; // 'application/pdf'
mimeTypesLite.JSON; // 'application/json'TypeScript Support
TypeScript Usagetypescript
import mimeTypesLite, { type MimeType } from 'mime-types-lite';
// Type-safe MIME type references
const supportedTypes: MimeType[] = [
'HTML',
'CSS',
'PNG',
'JPEG',
'PDF',
];
// Get MIME type string with type safety
const mimeType: string = mimeTypesLite[supportedTypes[0]];
// → 'text/html'Create Lookup Functions
Custom Lookuptypescript
import mimeTypesLite from 'mime-types-lite';
// Create extension to MIME mapping
const extensionMap: Record<string, string> = {
'html': mimeTypesLite.HTML,
'css': mimeTypesLite.CSS,
'js': mimeTypesLite.JS,
'png': mimeTypesLite.PNG,
'pdf': mimeTypesLite.PDF,
};
// Lookup function
function getMimeType(extension: string): string | undefined {
return extensionMap[extension.toLowerCase()];
}
getMimeType('html'); // 'text/html'
getMimeType('PNG'); // 'image/png'Use Cases
Common scenarios where mime-types-lite shines
File Upload Validation
import mimeTypesLite from 'mime-types-lite';
const ALLOWED_MIME_TYPES = [
mimeTypesLite.JPG,
mimeTypesLite.PNG,
mimeTypesLite.PDF,
];
function validateUpload(file: File) {
if (!ALLOWED_MIME_TYPES.includes(file.type)) {
throw new Error('Invalid file type');
}
}Static File Server
import mimeTypesLite from 'mime-types-lite';
import http from 'http';
import fs from 'fs';
const EXTENSION_MAP: Record<string, string> = {
'html': mimeTypesLite.HTML,
'css': mimeTypesLite.CSS,
'js': mimeTypesLite.JS,
'png': mimeTypesLite.PNG,
};
http.createServer((req, res) => {
const ext = req.url!.split('.').pop()!;
const mimeType = EXTENSION_MAP[ext];
if (mimeType) {
res.setHeader('Content-Type', mimeType);
}
fs.createReadStream(req.url!).pipe(res);
});Content-Type Headers
import mimeTypesLite from 'mime-types-lite';
async function sendFile(res: Response, filePath: string) {
const ext = filePath.split('.').pop()!;
const mimeTypeMap: Record<string, string> = {
'json': mimeTypesLite.JSON,
'xml': mimeTypesLite.XML,
'html': mimeTypesLite.HTML,
};
const mimeType = mimeTypeMap[ext] || mimeTypesLite.TXT;
return new Response(await readFile(filePath), {
headers: { 'Content-Type': mimeType }
});
}API Response Formatting
import mimeTypesLite from 'mime-types-lite';
// Type-safe MIME type handling
type ApiFormat = 'JSON' | 'XML' | 'HTML';
const FORMAT_MAP: Record<ApiFormat, string> = {
JSON: mimeTypesLite.JSON,
XML: mimeTypesLite.XML,
HTML: mimeTypesLite.HTML,
};
app.get('/export', (req, res) => {
const format: ApiFormat = req.query.format as ApiFormat;
res.setHeader('Content-Type', FORMAT_MAP[format]);
sendExportedData(res, format);
});Ready to get started?
Try the interactive demo or install mime-types-lite in your project