mimos
Advanced tools
Comparing version 2.0.0 to 2.0.1
@@ -22,13 +22,22 @@ // Load modules | ||
var result = options.override ? internals.compile(options.override) : internals.base; | ||
this._byType = result.byType; | ||
this._byExtension = result.byExtension; | ||
}; | ||
internals.compile = function (override) { | ||
var db = Hoek.clone(MimeDb); | ||
Hoek.merge(db, options.override, true, false); | ||
Hoek.merge(db, override, true, false); | ||
this._byType = db; | ||
this._byExtension = {}; | ||
var result = { | ||
byType: db, | ||
byExtension: {} | ||
}; | ||
var keys = Object.keys(this._byType); | ||
var keys = Object.keys(result.byType); | ||
for (var i = 0, il = keys.length; i < il; i++) { | ||
var type = keys[i]; | ||
var mime = this._byType[type]; | ||
var mime = result.byType[type]; | ||
mime.type = mime.type || type; | ||
@@ -43,8 +52,13 @@ mime.source = mime.source || 'mime-db'; | ||
var ext = mime.extensions[j]; | ||
this._byExtension[ext] = mime; | ||
result.byExtension[ext] = mime; | ||
} | ||
} | ||
return result; | ||
}; | ||
internals.base = internals.compile(); // Prevents an expensive copy on each constructor when no customization is needed | ||
internals.Mimos.prototype.path = function (path) { | ||
@@ -51,0 +65,0 @@ |
{ | ||
"name": "mimos", | ||
"description": "Mime database interface", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"repository": "git://github.com/hapijs/mimos", | ||
@@ -6,0 +6,0 @@ "main": "index", |
@@ -27,5 +27,5 @@ // Load modules | ||
var m = new Mimos(); | ||
var mimos = new Mimos(); | ||
expect(m.path('/static/javascript/app.js')).deep.equal({ | ||
expect(mimos.path('/static/javascript/app.js')).deep.equal({ | ||
source: 'iana', | ||
@@ -42,5 +42,5 @@ charset: 'UTF-8', | ||
var m = new Mimos(); | ||
var mimos = new Mimos(); | ||
expect(m.path('/static/javascript')).to.deep.equal({}); | ||
expect(mimos.path('/static/javascript')).to.deep.equal({}); | ||
done(); | ||
@@ -53,5 +53,5 @@ }); | ||
var upper = '/static/image/image.JPG'; | ||
var m = new Mimos(); | ||
var mimos = new Mimos(); | ||
expect(m.path(lower).type).to.equal(m.path(upper).type); | ||
expect(mimos.path(lower).type).to.equal(mimos.path(upper).type); | ||
@@ -66,5 +66,5 @@ done(); | ||
var m = new Mimos(); | ||
var mimos = new Mimos(); | ||
expect(m.type('text/plain')).to.deep.equal({ | ||
expect(mimos.type('text/plain')).to.deep.equal({ | ||
source: 'iana', | ||
@@ -80,5 +80,5 @@ compressible: true, | ||
var m = new Mimos(); | ||
var mimos = new Mimos(); | ||
expect(m.type('hapi/test')).to.deep.equal({ | ||
expect(mimos.type('hapi/test')).to.deep.equal({ | ||
source: 'hapi', | ||
@@ -107,5 +107,5 @@ compressible: false, | ||
var m = new Mimos(dbOverwrite); | ||
expect(m.type('node/module')).to.deep.equal(nodeModule); | ||
expect(m.path('/node_modules/node/module.npm')).to.deep.equal(nodeModule); | ||
var mimos = new Mimos(dbOverwrite); | ||
expect(mimos.type('node/module')).to.deep.equal(nodeModule); | ||
expect(mimos.path('/node_modules/node/module.npm')).to.deep.equal(nodeModule); | ||
@@ -130,6 +130,6 @@ done(); | ||
var m = new Mimos(dbOverwrite); | ||
var mimos = new Mimos(dbOverwrite); | ||
expect(m.type('application/javascript')).to.deep.equal(jsModule); | ||
expect(m.path('/static/js/app.js')).to.deep.equal(jsModule); | ||
expect(mimos.type('application/javascript')).to.deep.equal(jsModule); | ||
expect(mimos.path('/static/js/app.js')).to.deep.equal(jsModule); | ||
@@ -157,5 +157,5 @@ done(); | ||
var m = new Mimos(dbOverwrite); | ||
var mimos = new Mimos(dbOverwrite); | ||
var typeResult = m.type('application/javascript'); | ||
var typeResult = mimos.type('application/javascript'); | ||
@@ -167,3 +167,3 @@ expect(typeResult).to.deep.equal({ | ||
var pathResult = m.path('/static/js/app.js'); | ||
var pathResult = mimos.path('/static/js/app.js'); | ||
@@ -182,3 +182,3 @@ expect(pathResult).to.deep.equal({ | ||
var m = Mimos(); | ||
var mimos = Mimos(); | ||
}).to.throw('Mimos must be created with new'); | ||
@@ -193,3 +193,3 @@ done(); | ||
var m = new Mimos({ | ||
var mimos = new Mimos({ | ||
override: { | ||
@@ -196,0 +196,0 @@ 'application/javascript': { |
11174
205