Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'sharp' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
/* eslint-disable no-console, prefer-arrow-callback, prefer-rest-params */
const { existsSync } = require('fs')
const { resolve } = require('path')
const { moveSync } = require('fs-extra')
const sharp = require('sharp')
const { noop } = require('lodash')
const { getBrowserData } = require('../shared')
sharp.concurrency(1)
function isValid(
assert,
screenshot,
filename,
baseline,
sessionId,
browserName,
callback = noop
) {
if (screenshot.status !== 0) {
console.log('Error saving screenshot...', screenshot)
callback(false)
}
assert.compareScreenshot(filename, baseline, browserName, result => {
callback(!!result)
// Strict mode.
'use strict'
// Package modules.
const sharp = require('sharp')
const sinon = require('sinon')
// Configure.
const methods = Object.getOwnPropertyNames(sharp.prototype)
// Patch methods, add reset and restore handlers.
methods.forEach((name) => sinon.spy(sharp.prototype, name))
sharp.prototype.reset = () => {
methods.forEach((name) => sharp.prototype[name].resetHistory())
}
sharp.prototype.restore = () => {
methods.forEach((name) => sharp.prototype[name].restore())
}
// Exports.
module.exports = sharp
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
// Strict mode.
'use strict'
// Package modules.
const sharp = require('sharp')
const sinon = require('sinon')
// Configure.
const methods = Object.getOwnPropertyNames(sharp.prototype)
// Patch methods, add reset and restore handlers.
methods.forEach((name) => sinon.spy(sharp.prototype, name))
sharp.prototype.reset = () => {
methods.forEach((name) => sharp.prototype[name].resetHistory())
}
sharp.prototype.restore = () => {
methods.forEach((name) => sharp.prototype[name].restore())
}
// Exports.
module.exports = sharp
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
// Strict mode.
'use strict'
// Package modules.
const sharp = require('sharp')
const sinon = require('sinon')
// Configure.
const methods = Object.getOwnPropertyNames(sharp.prototype)
// Patch methods, add reset and restore handlers.
methods.forEach((name) => sinon.spy(sharp.prototype, name))
sharp.prototype.reset = () => {
methods.forEach((name) => sharp.prototype[name].resetHistory())
}
sharp.prototype.restore = () => {
methods.forEach((name) => sharp.prototype[name].restore())
}
// Exports.
module.exports = sharp
const gl = createGLContext(WIDTH_S, HEIGHT_S)
if (!gl) {
console.error('Unable to create GL context')
process.exit(1)
}
const blendData = JSON.parse(result.result[0])
const timePiece = time(blendData, gl)
const gif = new GifEncoder(WIDTH, HEIGHT, {highWaterMark: 1024 * 1024})
gif.pipe(fs.createWriteStream(outPath))
gif.setRepeat(0)
gif.writeHeader()
sharp.cache(false) // Reduce memory usage
const totalFrames = 2 * FRAMES - 1
for (let i = 0; i < totalFrames; i++) {
// Render frame
const y = i < FRAMES ? i / FRAMES : 2 - i / FRAMES
timePiece.renderFrame(.5, y)
// Get frame data
let pixels = new Uint8Array(WIDTH_S * HEIGHT_S * 4)
gl.readPixels(0, 0, WIDTH_S, HEIGHT_S, gl.RGBA, gl.UNSIGNED_BYTE, pixels)
// Resize and flip (otherwise gifs come out upside-down!?)
let framePixels = await sharp(Buffer.from(pixels.buffer), {
raw: {
width: WIDTH_S,
height: HEIGHT_S,
const sharp = require('sharp');
const path = require('path');
const fs = require('fs-extra');
const Export = require(path.join(__dirname, 'export.js'));
const imagemin = require('imagemin');
const pngquant = require('imagemin-pngquant');
const mozjpeg = require('imagemin-mozjpeg');
const cluster = require('cluster');
let debug; try { debug = require('debug')('RIBworker:' + cluster.worker.id) } catch (err) { debug = () => {} };
let config;
let uncompressed_bytes = 0;
let compressed_bytes = 0;
let raw_bytes = 0;
sharp.concurrency(1); // Only permit one thread
process.on('message', async function (packet) {
if (packet.code === 'EXIT') {
// Send worker stats and exit
process.send({code: 'SUM', data: {uncompressed_bytes: uncompressed_bytes, compressed_bytes: compressed_bytes, raw_bytes: raw_bytes}});
process.exit(0);
} else if (packet.code === 'SETUP') {
config = packet.data;
} else if (packet.code === 'ACCEL') {
sharp.concurrency(config.max_threads); // Speed up the end, as there are fewer cores
} else if (packet.code === 'TASK') {
let result;
process.on('message', async function (packet) {
if (packet.code === 'EXIT') {
// Send worker stats and exit
process.send({code: 'SUM', data: {uncompressed_bytes: uncompressed_bytes, compressed_bytes: compressed_bytes, raw_bytes: raw_bytes}});
process.exit(0);
} else if (packet.code === 'SETUP') {
config = packet.data;
} else if (packet.code === 'ACCEL') {
sharp.concurrency(config.max_threads); // Speed up the end, as there are fewer cores
} else if (packet.code === 'TASK') {
let result;
if (!config) {
result = {code: 'NOPT', data: packet.data};
} else {
try {
exp = await process_image(packet.data, config);
result = { code: 'OK', data: exp };
} catch (err) {
if (err instanceof Error) err = new_error(err);
result = {code: 'ERROR', data: packet.data, error: err};
const image = sharp();
source.on('error', err => next(err));
image.on('error', err => source.emit('error', err));
image.on('finish', () => fs.unlink(req.tempfile, () => {})); // eslint-disable-line no-empty-function
// Convert to JPEG? GIFs become still-frames
const convertToJPEG = (
(config.convertGIF && type.mime === 'image/gif') ||
(config.convertPNG && type.mime === 'image/png')
);
if (mimetype !== 'image/jpeg' && convertToJPEG) {
mimetype = 'image/jpeg';
image.background({ r: 0, g: 0, b: 0, alpha: 0 });
image.flatten();
image.toFormat(sharp.format.jpeg);
}
// Respect EXIF orientation headers
if (mimetype === 'image/jpeg') {
image.rotate();
}
// Apply recipe
recipe.process(image, Object.freeze(Object.assign({}, req.params, {
query: req.query,
path: req.path,
originalUrl: req.originalUrl,
})));
// Always apply compression at the end
if (mimetype === 'image/jpeg') {
s.metadata(Meteor.bindEnvironment((err, metadata) => {
if (!metadata) {
metadata = {};
}
s.toFormat(sharp.format.jpeg)
.resize(Math.min(height || 0, metadata.width || Infinity), Math.min(height || 0, metadata.height || Infinity))
.pipe(sharp()
.resize(height, height)
.background('#FFFFFF')
.embed()
)
// Use buffer to get the result in memory then replace the existing file
// There is no option to override a file using this library
.toBuffer()
.then(Meteor.bindEnvironment((outputBuffer) => {
fs.writeFile(tempFilePath, outputBuffer, Meteor.bindEnvironment((err) => {
if (err != null) {
console.error(err);
}
const { size } = fs.lstatSync(tempFilePath);
this.getCollection().direct.update({ _id: file._id }, { $set: { size } });
gif.writeHeader()
sharp.cache(false) // Reduce memory usage
const totalFrames = 2 * FRAMES - 1
for (let i = 0; i < totalFrames; i++) {
// Render frame
const y = i < FRAMES ? i / FRAMES : 2 - i / FRAMES
timePiece.renderFrame(.5, y)
// Get frame data
let pixels = new Uint8Array(WIDTH_S * HEIGHT_S * 4)
gl.readPixels(0, 0, WIDTH_S, HEIGHT_S, gl.RGBA, gl.UNSIGNED_BYTE, pixels)
// Resize and flip (otherwise gifs come out upside-down!?)
let framePixels = await sharp(Buffer.from(pixels.buffer), {
raw: {
width: WIDTH_S,
height: HEIGHT_S,
channels: 4,
}
})
.resize(WIDTH, HEIGHT)
.flip()
.toBuffer()
// Add to GIF (slow!)
gif.setDelay(i === 0 ? PAUSE : DURATION / FRAMES)
gif.addFrame(framePixels)
// This seems to help keep memory usage down.
pixels = null