Socket
Socket
Sign inDemoInstall

mime

Package Overview
Dependencies
Maintainers
2
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mime - npm Package Compare versions

Comparing version 1.2.4 to 1.2.5

11

mime.js

@@ -5,7 +5,7 @@ var path = require('path'),

var mime = module.exports = {
/** Map of extension to mime type */
types: {},
// Map of extension to mime type
types: Object.create(null),
/** Map of mime type to extension */
extensions :{},
// Map of mime type to extension
extensions :Object.create(null),

@@ -64,3 +64,4 @@ /**

var ext = path.replace(/.*[\.\/]/, '').toLowerCase();
return mime.types[ext] || fallback || mime.default_type;
return mime.types[ext] || fallback || mime.default_type
},

@@ -67,0 +68,0 @@

@@ -16,3 +16,3 @@ {

"description": "A comprehensive library for mime-type mapping",
"devDependencies": {"async_testing": ""},
"devDependencies": {},
"keywords": ["util", "mime"],

@@ -22,3 +22,3 @@ "main": "mime.js",

"repository": {"url": "http://github.com/bentomas/node-mime", "type": "git"},
"version": "1.2.4"
"version": "1.2.5"
}
# mime
Support for mapping between file extensions and MIME types. This module uses the latest version of the Apache "mime.types" file (maps over 620 types to 800+ extensions). It is also trivially easy to add your own types and extensions, should you need to do that.
Comprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.

@@ -14,3 +14,3 @@ ## Install

### mime.lookup(path)
Get the mime type associated with a file. This is method is case-insensitive. Everything in path up to and including the last '/' or '.' is ignored, so you can pass it paths, filenames, or extensions, like so:
Get the mime type associated with a file. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.

@@ -21,6 +21,7 @@ var mime = require('mime');

mime.lookup('file.txt'); // => 'text/plain'
mime.lookup('.txt'); // => 'text/plain'
mime.lookup('.TXT'); // => 'text/plain'
mime.lookup('htm'); // => 'text/html'
### mime.extension(type) - lookup the default extension for type
### mime.extension(type)
Get the default extension for `type`

@@ -30,4 +31,6 @@ mime.extension('text/html'); // => 'html'

### mime.charsets.lookup() - map mime-type to charset
### mime.charsets.lookup()
Map mime-type to charset
mime.charsets.lookup('text/plain'); // => 'UTF-8'

@@ -37,7 +40,10 @@

## API - Customizing
## API - Defining Custom Types
The following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/bentomas/node-mime/wiki/Requesting-New-Types).
### mime.define() - Add custom mime/extension mappings
### mime.define()
Add custom mime/extension mappings
mime.define({

@@ -50,6 +56,13 @@ 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],

mime.lookup('x-sft'); // => 'text/x-some-format'
The first entry in the extensions array is returned by `mime.extension()`. E.g.
mime.extension('text/x-some-format'); // => 'x-sf'
### mime.load(filepath) - Load mappings from an Apache ".types" format file
### mime.load(filepath)
Load mappings from an Apache ".types" format file
mime.load('./my_project.types');
The .types file format is simple - See the `types` dir for examples.
/**
* Requires the async_testing module
*
* Usage: node test.js
*/
var mime = require('./mime');
exports["test mime lookup"] = function(test) {
// easy
test.equal('text/plain', mime.lookup('text.txt'));
var assert = require('assert');
// hidden file or multiple periods
test.equal('text/plain', mime.lookup('.text.txt'));
function eq(a, b) {
console.log('Test: ' + a + ' === ' + b);
assert.strictEqual.apply(null, arguments);
}
// just an extension
test.equal('text/plain', mime.lookup('.txt'));
console.log(Object.keys(mime.extensions).length + ' types');
console.log(Object.keys(mime.types).length + ' extensions\n');
// just an extension without a dot
test.equal('text/plain', mime.lookup('txt'));
//
// Test mime lookups
//
// default
test.equal('application/octet-stream', mime.lookup('text.nope'));
eq('text/plain', mime.lookup('text.txt'));
eq('text/plain', mime.lookup('.text.txt'));
eq('text/plain', mime.lookup('.txt'));
eq('text/plain', mime.lookup('txt'));
eq('application/octet-stream', mime.lookup('text.nope'));
eq('fallback', mime.lookup('text.fallback', 'fallback'));
eq('application/octet-stream', mime.lookup('constructor'));
eq('text/plain', mime.lookup('TEXT.TXT'));
// fallback
test.equal('fallback', mime.lookup('text.fallback', 'fallback'));
//
// Test extensions
//
test.finish();
};
eq('txt', mime.extension(mime.types.text));
eq('html', mime.extension(mime.types.htm));
eq('bin', mime.extension('application/octet-stream'));
eq(undefined, mime.extension('constructor'));
exports["test extension lookup"] = function(test) {
// easy
test.equal('txt', mime.extension(mime.types.text));
test.equal('html', mime.extension(mime.types.htm));
test.equal('bin', mime.extension('application/octet-stream'));
//
// Test node types
//
test.finish();
};
eq('application/octet-stream', mime.lookup('file.buffer'));
eq('audio/mp4', mime.lookup('file.m4a'));
exports["test mime lookup uppercase"] = function(test) {
// easy
test.equal('text/plain', mime.lookup('TEXT.TXT'));
//
// Test charsets
//
// just an extension
test.equal('text/plain', mime.lookup('.TXT'));
eq('UTF-8', mime.charsets.lookup('text/plain'));
eq(undefined, mime.charsets.lookup(mime.types.js));
eq('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
// just an extension without a dot
test.equal('text/plain', mime.lookup('TXT'));
// default
test.equal('application/octet-stream', mime.lookup('TEXT.NOPE'));
// fallback
test.equal('fallback', mime.lookup('TEXT.FALLBACK', 'fallback'));
test.finish();
};
exports["test custom types"] = function(test) {
test.equal('application/octet-stream', mime.lookup('file.buffer'));
test.equal('audio/mp4', mime.lookup('file.m4a'));
test.finish();
};
exports["test charset lookup"] = function(test) {
// easy
test.equal('UTF-8', mime.charsets.lookup('text/plain'));
// none
test.ok(typeof mime.charsets.lookup(mime.types.js) == 'undefined');
// fallback
test.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
test.finish();
};
if (module == require.main) {
require('async_testing').run(__filename, process.ARGV);
}
console.log('\nOK');

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc