web-dev-server
Version:
Node.js simple http server for common development or training purposes.
56 lines • 2.64 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Headers = void 0;
var mimeDb = require('mime-db');
var Headers = /** @class */ (function () {
function Headers() {
}
Headers.GetMimeTypeByExtension = function (extension) {
if (Headers.extensions === null)
Headers.initMimeTypesAndExtensions();
if (Headers.extensions[extension])
return Headers.extensions[extension];
return null;
};
Headers.GetExtensionByMimeType = function (mimeType) {
if (Headers.mimes === null)
Headers.initMimeTypesAndExtensions();
if (Headers.mimes[mimeType])
return Headers.mimes[mimeType];
return null;
};
Headers.initMimeTypesAndExtensions = function () {
var preferences = ['nginx', 'apache', undefined, 'iana'], appOctetStreamMime = 'application/octet-stream', mimesStore = Object.create(null), extensionsStore = Object.create(null);
Object.keys(mimeDb).forEach(function (mimeType) {
var mimeRec = mimeDb[mimeType], extensions = mimeRec.extensions, extension, anotherMimeType, anotherMimeRec, anotherMimeRecSource, fromIndex, toIndex;
if (!extensions || !extensions.length)
return;
mimesStore[mimeType] = extensions;
for (var i = 0, l = extensions.length; i < l; i++) {
extension = extensions[i];
if (extensionsStore[extension]) {
anotherMimeType = extensionsStore[extension];
anotherMimeRec = mimeDb[anotherMimeType];
if (anotherMimeRec !== null && anotherMimeRec.source) {
anotherMimeRecSource = anotherMimeRec.source;
fromIndex = preferences.indexOf(anotherMimeRecSource);
toIndex = preferences.indexOf(mimeRec.source);
}
if (extensionsStore[extension] !== appOctetStreamMime &&
(fromIndex > toIndex || (fromIndex === toIndex &&
extensionsStore[extension].substr(0, 12) === 'application/'))) {
// skip remapping
continue;
}
}
extensionsStore[extension] = mimeType;
}
});
Headers.mimes = mimesStore;
Headers.extensions = extensionsStore;
};
Headers.mimes = null;
Headers.extensions = null;
return Headers;
}());
exports.Headers = Headers;
//# sourceMappingURL=MimeTypes.js.map