Skip to content
Snippets Groups Projects
README.md 2.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jay's avatar
    Jay committed
    # mime
    
    Comprehensive MIME type mapping API based on mime-db module.
    
    ## Install
    
    Install with [npm](http://github.com/isaacs/npm):
    
        npm install mime
    
    ## Contributing / Testing
    
        npm run test
    
    ## Command Line
    
        mime [path_string]
    
    E.g.
    
        > mime scripts/jquery.js
        application/javascript
    
    ## API - Queries
    
    ### mime.lookup(path)
    Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.').  E.g.
    
    ```js
    var mime = require('mime');
    
    mime.lookup('/path/to/file.txt');         // => 'text/plain'
    mime.lookup('file.txt');                  // => 'text/plain'
    mime.lookup('.TXT');                      // => 'text/plain'
    mime.lookup('htm');                       // => 'text/html'
    ```
    
    ### mime.default_type
    Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)
    
    ### mime.extension(type)
    Get the default extension for `type`
    
    ```js
    mime.extension('text/html');                 // => 'html'
    mime.extension('application/octet-stream');  // => 'bin'
    ```
    
    ### mime.charsets.lookup()
    
    Map mime-type to charset
    
    ```js
    mime.charsets.lookup('text/plain');        // => 'UTF-8'
    ```
    
    (The logic for charset lookups is pretty rudimentary.  Feel free to suggest improvements.)
    
    ## API - Defining Custom Types
    
    Custom type mappings can be added on a per-project basis via the following APIs.
    
    ### mime.define()
    
    Add custom mime/extension mappings
    
    ```js
    mime.define({
        'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
        'application/x-my-type': ['x-mt', 'x-mtt'],
        // etc ...
    });
    
    mime.lookup('x-sft');                 // => 'text/x-some-format'
    ```
    
    The first entry in the extensions array is returned by `mime.extension()`. E.g.
    
    ```js
    mime.extension('text/x-some-format'); // => 'x-sf'
    ```
    
    ### mime.load(filepath)
    
    Load mappings from an Apache ".types" format file
    
    ```js
    mime.load('./my_project.types');
    ```
    The .types file format is simple -  See the `types` dir for examples.