UNPKG

express-cache-file

Version:

Express middleware to cache static files in server memory

51 lines (50 loc) 1.53 kB
"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;