UNPKG

hastily

Version:

express middleware to simulate fastly cdn

87 lines 6.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.optoResizeFilterToSharp = exports.optoFitToSharp = void 0; exports.optoFitToSharp = { bounds: 'inside', cover: 'outside', crop: 'cover', }; // sharp supports mitchell interpolation and not bilinear, // but who's gonna notice? exports.optoResizeFilterToSharp = { bicubic: 'cubic', bilinear: 'mitchell', cubic: 'cubic', lanczos: 'lanczos3', lanczos2: 'lanczos2', lanczos3: 'lanczos3', linear: 'mitchell', nearest: 'nearest', }; /** * @hidden */ const resize = (sharp, params) => { if (!params.has('width')) { params.warn('unsupported', 'width', 'resize without width param. Will not resize.'); return false; } const nums = params.toNumbers(['width', 'height', 'dpr']); const width = nums[0]; let height = nums[1]; const dpr = nums[2]; for (const [name, param] of [ ['width', width], ['height', height], ]) { if (param < 1 && param > 0) { params.warn('unsupported', name, 'ratio-based resize/crop. Will not apply.'); return false; } } if (isNaN(width)) { params.warn('invalid', 'width', 'resize with non-numeric width param'); return false; } if (isNaN(height)) { height = undefined; } const { log } = params; log.debug('width %s, height %s, dpr %s', width, height, dpr); const options = { withoutEnlargement: true, }; if (params.has('fit')) { const fitOpt = params.get('fit'); const fit = exports.optoFitToSharp[fitOpt]; if (fit) { options.fit = fit; } else { params.warn('unsupported', 'fit'); } log.debug('mapped options.fit from %s -> %s', fitOpt, options.fit); } else if (typeof height === 'number' && height > 0) { options.fit = 'fill'; } if (params.get('enable') === 'true' || params.get('disable') === 'false') { log.debug('overriding withoutEnlargement to false, yucky enlargement enabled'); options.withoutEnlargement = false; } if (params.has('resize-filter')) { const filterOpt = params.get('resize-filter'); const kernel = exports.optoResizeFilterToSharp[filterOpt]; if (kernel) { options.kernel = kernel; } else { params.warn('unsupported', 'fit'); } log.debug('mapped options.resize-filter from %s -> %s', filterOpt, options.kernel); } log.debug('sharp.resize(%s, %s, %o)', width, height, options); return sharp.resize(width, height, options); }; exports.default = resize; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tYXBwZXJzL3Jlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHYSxRQUFBLGNBQWMsR0FBa0M7SUFDM0QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsSUFBSSxFQUFFLE9BQU87Q0FDZCxDQUFDO0FBRUYsMERBQTBEO0FBQzFELDBCQUEwQjtBQUNiLFFBQUEsdUJBQXVCLEdBQXFDO0lBQ3ZFLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFVBQVU7SUFDbkIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsTUFBTSxFQUFFLFVBQVU7SUFDbEIsT0FBTyxFQUFFLFNBQVM7Q0FDbkIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLEdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FDVCxhQUFhLEVBQ2IsT0FBTyxFQUNQLDhDQUE4QyxDQUMvQyxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBVyxDQUFDO0lBQ3hDLElBQUksTUFBTSxHQUF1QixJQUFJLENBQUMsQ0FBQyxDQUFXLENBQUM7SUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLEtBQUssTUFBTSxDQUFDLElBQUksRUFB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