hastily
Version:
express middleware to simulate fastly cdn
55 lines • 3.68 kB
JavaScript
import { optoFitToSharp } from './resize';
/**
* @hidden
*/
const resizeCanvas = (sharp, params) => {
let background = 'white';
if (params.has('bg-color')) {
try {
background = params.toColor('bg-color');
}
catch (e) {
// let it be the original;
}
}
const options = {
background,
fit: 'contain',
withoutEnlargement: false,
};
let region;
try {
region = params.toRegion('canvas');
}
catch (e) {
return false;
}
if (Number(region.left) > 0 || Number(region.top) > 0) {
params.warn('unsupported', 'canvas', 'pixel-specific (greater than 0) canvas offsets. Will not apply canvas.');
return false;
}
const positions = [];
if (region.left === 0) {
positions.push('left');
}
if (region.top === 0) {
positions.push('top');
}
if (positions.length > 0) {
options.position = positions.join(' ');
}
if (params.has('fit')) {
const fitOpt = params.get('fit');
const fit = optoFitToSharp[fitOpt];
if (fit) {
options.fit = fit;
}
else {
params.warn('unsupported', 'fit');
}
}
params.log.debug('sharp.resize(%s, %s, %o)', region.width, region.height, options);
return sharp.resize(region.width, region.height, options);
};
export default resizeCanvas;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWNhbnZhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWFwcGVycy9yZXNpemUtY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUM7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUM3QyxJQUFJLFVBQVUsR0FBVSxPQUFPLENBQUM7SUFDaEMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzFCLElBQUk7WUFDRixVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsMEJBQTBCO1NBQzNCO0tBQ0Y7SUFDRCxNQUFNLE9BQU8sR0FBMkI7UUFDdEMsVUFBVTtRQUNWLEdBQUcsRUFBRSxTQUFTO1FBQ2Qsa0JBQWtCLEVBQUUsS0FBSztLQUMxQixDQUFDO0lBQ0YsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJO1FBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDcEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDUix3RUFBd0UsQ0FDekUsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDL0IsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtRQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3hCO0lBQ0QsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRTtRQUNwQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3ZCO0lBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN4QixPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVcsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxHQUFHLEVBQUU7WUFDUCxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztTQUNuQjthQUFNO1lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNkLDBCQUEwQixFQUMxQixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsT0FBTyxDQUNSLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FBQztBQUVGLGVBQWUsWUFBWSxDQUFDIn0=