Socket
Book a DemoInstallSign in
Socket

@parcel/transformer-image

Package Overview
Dependencies
Maintainers
1
Versions
801
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@parcel/transformer-image - npm Package Compare versions

Comparing version

to
2.0.0-nightly.1984

41

lib/ImageTransformer.js

@@ -10,6 +10,2 @@ "use strict";

var _sharp = _interopRequireDefault(require("sharp"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const FORMATS = new Map([['heic', 'heif'], ['heif', 'heif'], ['jpeg', 'jpeg'], ['jpg', 'jpeg'], ['png', 'png'], ['raw', 'raw'], ['tiff', 'tiff'], ['webp', 'webp']]);

@@ -19,6 +15,6 @@

async transform({
asset
asset,
options
}) {
asset.isIsolated = true;
let inputBuffer = await asset.getBuffer();
let width = asset.query.width ? parseInt(asset.query.width, 10) : null;

@@ -28,20 +24,29 @@ let height = asset.query.height ? parseInt(asset.query.height, 10) : null;

let format = asset.query.as ? asset.query.as.toLowerCase().trim() : null;
let imagePipeline = (0, _sharp.default)(inputBuffer);
if (width || height) {
imagePipeline.resize(width, height);
}
if (width || height || quality || format) {
const sharp = await options.packageManager.require('sharp', asset.filePath, {
// Sharp takes too long to install for autoinstall option to make sense
autoinstall: false
});
let inputBuffer = await asset.getBuffer();
let imagePipeline = sharp(inputBuffer);
if (format) {
if (!FORMATS.has(format)) {
throw new Error(`Sharp does not support ${format} images.`);
if (width || height) {
imagePipeline.resize(width, height);
}
asset.type = format;
imagePipeline[FORMATS.get(format)]({
quality
});
if (format) {
if (!FORMATS.has(format)) {
throw new Error(`Sharp does not support ${format} images.`);
}
asset.type = format;
imagePipeline[FORMATS.get(format)]({
quality
});
}
asset.setStream(imagePipeline);
}
asset.setStream(imagePipeline);
return [asset];

@@ -48,0 +53,0 @@ }

{
"name": "@parcel/transformer-image",
"version": "2.0.0-nightly.1982+82747eb5",
"version": "2.0.0-nightly.1984+46e8ffa3",
"license": "MIT",

@@ -19,6 +19,8 @@ "publishConfig": {

"dependencies": {
"@parcel/plugin": "2.0.0-nightly.360+82747eb5",
"@parcel/plugin": "2.0.0-nightly.362+46e8ffa3"
},
"devDependencies": {
"sharp": "^0.24.1"
},
"gitHead": "82747eb5778248d8db35186ec424687f91db5942"
"gitHead": "46e8ffa3e781fcbee71dfba2fe83b7c0857f4866"
}
// @flow
import {Transformer} from '@parcel/plugin';
import sharp from 'sharp';

@@ -17,6 +16,5 @@ const FORMATS = new Map([

export default (new Transformer({
async transform({asset}) {
async transform({asset, options}) {
asset.isIsolated = true;
let inputBuffer = await asset.getBuffer();
let width = asset.query.width ? parseInt(asset.query.width, 10) : null;

@@ -29,23 +27,35 @@ let height = asset.query.height ? parseInt(asset.query.height, 10) : null;

let imagePipeline = sharp(inputBuffer);
if (width || height) {
imagePipeline.resize(width, height);
}
if (width || height || quality || format) {
const sharp = await options.packageManager.require(
'sharp',
asset.filePath,
{
// Sharp takes too long to install for autoinstall option to make sense
autoinstall: false,
},
);
if (format) {
if (!FORMATS.has(format)) {
throw new Error(`Sharp does not support ${format} images.`);
let inputBuffer = await asset.getBuffer();
let imagePipeline = sharp(inputBuffer);
if (width || height) {
imagePipeline.resize(width, height);
}
asset.type = format;
if (format) {
if (!FORMATS.has(format)) {
throw new Error(`Sharp does not support ${format} images.`);
}
imagePipeline[FORMATS.get(format)]({
quality,
});
asset.type = format;
imagePipeline[FORMATS.get(format)]({
quality,
});
}
asset.setStream(imagePipeline);
}
asset.setStream(imagePipeline);
return [asset];
},
}): Transformer);
SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.