UNPKG

lamers-mime

Version:

Minimalist MIME type mapping package

127 lines (75 loc) 2.93 kB
# lamers/MIME A simple utility for working with MIME types and file extensions in JavaScript/TypeScript. This module provides two functions: - `mimeType`: Determines the MIME type of a file based on its extension. - `extension`: Retrieves the file extension associated with a specific MIME type. ## Features - Easily map file extensions to MIME types. - Supports custom mappings via the `MIMETYPES` object. - Handles unknown MIME types or extensions gracefully with fallback behavior. --- ## Table of Contents - [Installation](#installation) - [Usage](#usage) - [mimeType](#mimetype) - [extension](#extension) - [Examples](#examples) - [License](#license) --- ## Installation To use this utility, include it in your project: ```bash npm install lamers-mime ``` --- ## Usage ### `mimeType(filename: string): string` This function determines the MIME type of a file based on its extension. If the extension is not found in the `MIMETYPES` object, it returns a default value of `'application/octet-stream'`. #### Parameters - `filename`: The name of the file (string). #### Returns - A string representing the MIME type of the file. #### Example ```javascript import { mimeType } from './lamers-mime'; console.log(mimeType('picture.jpg')); // Output: 'image/jpeg' console.log(mimeType('unknownfile.xyz')); // Output: 'application/octet-stream' ``` --- ### `extension(mime: string): string | null` This function retrieves all file extensions associated with a MIME type. If the MIME type is not found, it returns `null`. #### Parameters - `mime`: The MIME type to look up (string). #### Returns - The file extensions (string[]) or `null` if not found. #### Example ```javascript import { extension } from 'lamers-mime'; console.log(extension('image/jpeg')); // Output: ['jpg'] console.log(extension('application/xml')); // Output: null ``` --- ## Examples Here are a few examples to demonstrate how this utility works: ### Example 1: Mapping File Extensions to MIME Types ```javascript import { mimeType } from './lamers-mime'; console.log(mimeType('document.txt')); // Output: 'text/plain' console.log(mimeType('image.jpeg')); // Output: 'image/jpeg' console.log(mimeType('unknown.ext')); // Output: 'application/octet-stream' ``` ### Example 2: Mapping MIME Types to Extensions ```javascript import { extension } from './lamers-mime'; console.log(extension('text/plain')); // Output: ['txt'] console.log(extension('application/json')); // Output: ['json'] console.log(extension('unknown/mime')); // Output: null ``` --- ## License This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. --- ## Contributing Contributions are welcome! If you have suggestions, bug fixes, or improvements, please create a pull request or open an issue. --- ## Contact If you have any questions or feedback, feel free to reach out via GitHub issues or email.