Comparing version 2.0.0 to 2.0.1
#!/usr/bin/env node | ||
'use strict'; | ||
var mime = require('./mime.js'); | ||
@@ -4,0 +6,0 @@ var file = process.argv[2]; |
@@ -0,2 +1,4 @@ | ||
'use strict'; | ||
const Mime = require('./Mime'); | ||
module.exports = new Mime(require('./types/standard'), require('./types/other')); |
@@ -0,2 +1,4 @@ | ||
'use strict'; | ||
const Mime = require('./Mime'); | ||
module.exports = new Mime(require('./types/standard')); |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
/** | ||
@@ -48,3 +50,3 @@ * @param typeMap [Object] Map of MIME type -> Array[extensions] | ||
path = String(path); | ||
var last = path.replace(/.*[\/\\]/, '').toLowerCase(); | ||
var last = path.replace(/.*[/\\]/, '').toLowerCase(); | ||
var ext = last.replace(/.*\./, '').toLowerCase(); | ||
@@ -51,0 +53,0 @@ |
@@ -7,2 +7,5 @@ { | ||
}, | ||
"engines": { | ||
"node": ">=6.0.0" | ||
}, | ||
"bin": { | ||
@@ -23,2 +26,3 @@ "mime": "cli.js" | ||
"chalk": "1.1.3", | ||
"eslint": "4.6.1", | ||
"github-release-notes": "0.9.0", | ||
@@ -44,3 +48,3 @@ "mime-db": "1.30.0", | ||
}, | ||
"version": "2.0.0" | ||
"version": "2.0.1" | ||
} |
@@ -9,3 +9,3 @@ # Mime | ||
* ES6 support required (requires Node 6+) | ||
* **ES6 support required (node@>=6)** | ||
* `lookup()` renamed to `getType()` | ||
@@ -15,3 +15,3 @@ * `extension()` renamed to `getExtension()` | ||
If you need the legacy version of this module for any reason, please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0). | ||
If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0). | ||
@@ -18,0 +18,0 @@ ## Install - NPM |
#!/usr/bin/env node | ||
'use strict'; | ||
const fs = require('fs'); | ||
@@ -32,8 +34,8 @@ const path = require('path'); | ||
// Use mime-db's logic for ranking by source | ||
switch(entry.source) { | ||
switch (entry.source) { | ||
// Prioritize by source (same as mime-types module) | ||
case 'iana': pri += 40; break; | ||
case 'apache': pri += 20; break; | ||
case 'nginx': pri += 10; break; | ||
default: pri += 30; break; | ||
case 'iana': pri += 40; break; | ||
case 'apache': pri += 20; break; | ||
case 'nginx': pri += 10; break; | ||
default: pri += 30; break; | ||
} | ||
@@ -44,5 +46,5 @@ | ||
// right?) | ||
switch(type) { | ||
case 'application': pri += 1; break; | ||
default: break; | ||
switch (type) { | ||
case 'application': pri += 1; break; | ||
default: break; | ||
} | ||
@@ -60,3 +62,3 @@ | ||
for (let type in db) { | ||
for (let type in db) { | ||
let entry = db[type]; | ||
@@ -69,8 +71,10 @@ entry.type = type; | ||
if (ext in byExtension) { | ||
const e0 = entry, e1 = byExtension[ext]; | ||
const e0 = entry; | ||
const e1 = byExtension[ext]; | ||
e0.pri = getScore(e0); | ||
e1.pri = getScore(e1); | ||
let drop = e0.pri < e1.pri ? e0 : e1, keep = e0.pri >= e1.pri ? e0 : e1; | ||
drop.extensions = drop.extensions.filter(e => e != ext); | ||
let drop = e0.pri < e1.pri ? e0 : e1; | ||
let keep = e0.pri >= e1.pri ? e0 : e1; | ||
drop.extensions = drop.extensions.filter(e => e !== ext); | ||
@@ -77,0 +81,0 @@ console.log(`${ext}: Keeping ${chalk.green(keep.type)} (${keep.pri}), dropping ${chalk.red(drop.type)} (${drop.pri})`); |
@@ -12,3 +12,3 @@ ```javascript --hide | ||
* ES6 support required (requires Node 6+) | ||
* **ES6 support required (node@>=6)** | ||
* `lookup()` renamed to `getType()` | ||
@@ -18,3 +18,3 @@ * `extension()` renamed to `getExtension()` | ||
If you need the legacy version of this module for any reason, please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0). | ||
If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0). | ||
@@ -21,0 +21,0 @@ ## Install - NPM |
@@ -0,9 +1,10 @@ | ||
'use strict'; | ||
var mime = require('..'); | ||
var mimeTypes = require('../node_modules/mime-types'); | ||
var assert = require('assert'); | ||
var path = require('path'); | ||
var chalk = require('chalk'); | ||
describe('class Mime', function () { | ||
it('new constructor()', function () { | ||
describe('class Mime', function() { | ||
it('new constructor()', function() { | ||
const Mime = require('../Mime'); | ||
@@ -29,3 +30,3 @@ | ||
it('define()', function () { | ||
it('define()', function() { | ||
const Mime = require('../Mime'); | ||
@@ -55,3 +56,3 @@ | ||
it('getType()', function () { | ||
it('getType()', function() { | ||
// Upper/lower case | ||
@@ -84,5 +85,5 @@ assert.equal(mime.getType('text.txt'), 'text/plain'); | ||
assert.equal(mime.getType('path\\to\\page.html'), 'text/html'); | ||
assert.strictEqual(mime.getType('/txt'), null); | ||
assert.strictEqual(mime.getType('\\txt'), null); | ||
assert.strictEqual(mime.getType('text.nope'), null); | ||
assert.strictEqual(mime.getType('/txt'), null); | ||
assert.strictEqual(mime.getType('\\txt'), null); | ||
assert.strictEqual(mime.getType('text.nope'), null); | ||
assert.strictEqual(mime.getType('/path/to/file.bogus'), null); | ||
@@ -105,3 +106,3 @@ assert.strictEqual(mime.getType('/path/to/json'), null); | ||
assert.strictEqual(mime.getExtension({}), null); | ||
}) | ||
}); | ||
}); | ||
@@ -114,5 +115,5 @@ | ||
if (diffs.length) { | ||
console.log('\n[INFO] The following inconsistencies with MDN and/or mime-types are expected:'); | ||
console.log('\n[INFO] The following inconsistencies with MDN (https://goo.gl/lHrFU6) and/or mime-types (https://github.com/jshttp/mime-types) are expected:'); | ||
diffs.forEach(function(d) { | ||
console.warn(` ${d[0]}[${chalk.blue(d[1])}] = ${chalk.red(d[2])}, node-uuid[${d[1]}] = ${chalk.green(d[3])}`); | ||
console.warn(` ${d[0]}[${chalk.blue(d[1])}] = ${chalk.red(d[2])}, mime[${d[1]}] = ${chalk.green(d[3])}`); | ||
}); | ||
@@ -124,3 +125,2 @@ } | ||
for (var ext in this.types) { | ||
const ext2 = this.extensions[this.types[ext]]; | ||
assert.equal(ext, this.extensions[this.types[ext]], '${ext} does not have consistent ext->type->ext mapping'); | ||
@@ -130,3 +130,3 @@ } | ||
it('MDN types', function () { | ||
it('MDN types', function() { | ||
// MDN types listed at https://goo.gl/lHrFU6 | ||
@@ -195,5 +195,4 @@ const MDN = { | ||
const actual = mime.getType(ext); | ||
if (actual != expected) diffs.push(['MDN', ext, expected, actual]); | ||
if (actual !== expected) diffs.push(['MDN', ext, expected, actual]); | ||
} | ||
const mimeTypes = require('../node_modules/mime-types'); | ||
@@ -203,7 +202,7 @@ for (let ext in mimeTypes.types) { | ||
const actual = mime.getType(ext); | ||
if (actual != expected) diffs.push(['mime-types', ext, expected, actual]); | ||
if (actual !== expected) diffs.push(['mime-types', ext, expected, actual]); | ||
} | ||
}); | ||
it('types', function () { | ||
it('types', function() { | ||
// Assortment of common types | ||
@@ -218,3 +217,3 @@ assert.equal(mime.getType('html'), 'text/html'); | ||
it('extensions', function () { | ||
it('extensions', function() { | ||
assert.equal(mime.getExtension('text/html;charset=UTF-8'), 'html'); | ||
@@ -225,14 +224,14 @@ assert.equal(mime.getExtension('text/HTML; charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('text/html ; charset=UTF-8'), 'html'); | ||
assert.equal( mime.getExtension(mime._types.text), 'txt'); | ||
assert.equal( mime.getExtension(mime._types.htm), 'html'); | ||
assert.equal( mime.getExtension('application/octet-stream'), 'bin'); | ||
assert.equal( mime.getExtension('application/octet-stream '), 'bin'); | ||
assert.equal( mime.getExtension(' text/html; charset=UTF-8'), 'html'); | ||
assert.equal( mime.getExtension('text/html; charset=UTF-8 '), 'html'); | ||
assert.equal( mime.getExtension('text/html; charset=UTF-8'), 'html'); | ||
assert.equal( mime.getExtension('text/html ; charset=UTF-8'), 'html'); | ||
assert.equal( mime.getExtension('text/html;charset=UTF-8'), 'html'); | ||
assert.equal( mime.getExtension('text/Html;charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension(mime._types.text), 'txt'); | ||
assert.equal(mime.getExtension(mime._types.htm), 'html'); | ||
assert.equal(mime.getExtension('application/octet-stream'), 'bin'); | ||
assert.equal(mime.getExtension('application/octet-stream '), 'bin'); | ||
assert.equal(mime.getExtension(' text/html; charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('text/html; charset=UTF-8 '), 'html'); | ||
assert.equal(mime.getExtension('text/html; charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('text/html ; charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('text/html;charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('text/Html;charset=UTF-8'), 'html'); | ||
assert.equal(mime.getExtension('unrecognized'), null); | ||
}); | ||
}); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
61357
7
16
408