express-cache-file
Version:
Express middleware to cache static files in server memory
51 lines (50 loc) • 1.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Size;
(function (Size) {
// reference: https://en.wikipedia.org/wiki/Byte#Units_based_on_powers_of_2
Size.kib = 1024;
Size.mib = Size.kib * 1024;
Size.gib = Size.mib * 1024;
Size.tib = Size.gib * 1024;
Size.pib = Size.tib * 1024;
Size.kb = 1000;
Size.mb = Size.kb * 1000;
Size.gb = Size.mb * 1000;
Size.tb = Size.gb * 1000;
Size.pb = Size.tb * 1000;
})(Size || (Size = {}));
function parseSize(size) {
if (!size || size === 'unlimited')
return -1;
if (typeof size === 'number')
return -1;
let value = parseFloat(size);
let unit = size.replace(value.toString(), '').trim().toLowerCase();
if (unit.startsWith('b'))
return value;
if (unit.startsWith('ki'))
return value * Size.kib;
if (unit.startsWith('mi'))
return value * Size.mib;
if (unit.startsWith('gi'))
return value * Size.gib;
if (unit.startsWith('ti'))
return value * Size.tib;
if (unit.startsWith('pi'))
return value * Size.pib;
if (unit.startsWith('k'))
return value * Size.kb;
if (unit.startsWith('m'))
return value * Size.mb;
if (unit.startsWith('g'))
return value * Size.gb;
if (unit.startsWith('t'))
return value * Size.tb;
if (unit.startsWith('p'))
return value * Size.pb;
if (value < 1000)
return value * Size.mb;
return value;
}
exports.default = parseSize;