Switch linter from semistandard to biome

Uses the recommended rules apart from complexity/useArrowFunction,
which would affect about 1700 lines of code with little benefit
right now. This is something that can be addressed over time.
This commit is contained in:
Lovell Fuller
2025-09-17 16:47:33 +01:00
parent a0af662d78
commit b36237ddcb
85 changed files with 238 additions and 375 deletions

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const fixtures = require('../fixtures');
const sharp = require('../../');
@@ -67,7 +65,7 @@ describe('Alpha transparency', function () {
it('Do not flatten', function (done) {
sharp(fixtures.inputPngWithTransparency)
.flatten(false)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('png', info.format);
assert.strictEqual(4, info.channels);
@@ -78,7 +76,7 @@ describe('Alpha transparency', function () {
it('Ignored for JPEG', function (done) {
sharp(fixtures.inputJpg)
.flatten({ background: '#ff0000' })
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('jpeg', info.format);
assert.strictEqual(3, info.channels);
@@ -100,7 +98,7 @@ describe('Alpha transparency', function () {
it('Enlargement with non-nearest neighbor interpolation shouldnt cause dark edges', function () {
const base = 'alpha-premultiply-enlargement-2048x1536-paper.png';
const actual = fixtures.path('output.' + base);
const actual = fixtures.path(`output.${base}`);
const expected = fixtures.expected(base);
return sharp(fixtures.inputPngAlphaPremultiplicationSmall)
.resize(2048, 1536)
@@ -112,7 +110,7 @@ describe('Alpha transparency', function () {
it('Reduction with non-nearest neighbor interpolation shouldnt cause dark edges', function () {
const base = 'alpha-premultiply-reduction-1024x768-paper.png';
const actual = fixtures.path('output.' + base);
const actual = fixtures.path(`output.${base}`);
const expected = fixtures.expected(base);
return sharp(fixtures.inputPngAlphaPremultiplicationLarge)
.resize(1024, 768)

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const { inputAvif, inputJpg, inputGifAnimated } = require('../fixtures');
@@ -20,8 +18,8 @@ describe('AVIF', () => {
.resize(32)
.jpeg()
.toBuffer();
const { size, ...metadata } = await sharp(data)
.metadata();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 13,
@@ -49,8 +47,8 @@ describe('AVIF', () => {
.resize(32)
.avif({ effort: 0 })
.toBuffer();
const { size, ...metadata } = await sharp(data)
.metadata();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 26,
@@ -77,8 +75,8 @@ describe('AVIF', () => {
const data = await sharp(inputAvif)
.resize(32)
.toBuffer();
const { size, ...metadata } = await sharp(data)
.metadata();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 13,
@@ -106,8 +104,8 @@ describe('AVIF', () => {
.resize(10)
.avif({ effort: 0 })
.toBuffer();
const { size, ...metadata } = await sharp(data)
.metadata();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 300,
@@ -136,8 +134,8 @@ describe('AVIF', () => {
.sharpen()
.avif({ effort: 0 })
.toBuffer();
const { size, ...metadata } = await sharp(data)
.metadata();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 26,

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const fixtures = require('../fixtures');
const sharp = require('../../');
@@ -14,7 +12,7 @@ describe('Bandbool per-channel boolean operations', function () {
sharp.bool.eor
]
.forEach(function (op) {
it(op + ' operation', function (done) {
it(`${op} operation`, function (done) {
sharp(fixtures.inputPngBooleanNoAlpha)
.bandbool(op)
.toColourspace('b-w')
@@ -23,7 +21,7 @@ describe('Bandbool per-channel boolean operations', function () {
assert.strictEqual(200, info.width);
assert.strictEqual(200, info.height);
assert.strictEqual(1, info.channels);
fixtures.assertSimilar(fixtures.expected('bandbool_' + op + '_result.png'), data, done);
fixtures.assertSimilar(fixtures.expected(`bandbool_${op}_result.png`), data, done);
});
});
});
@@ -31,7 +29,7 @@ describe('Bandbool per-channel boolean operations', function () {
it('sRGB image retains 3 channels', function (done) {
sharp(fixtures.inputJpg)
.bandbool('and')
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(3, info.channels);
done();

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const fixtures = require('../fixtures');
const sharp = require('../../');
@@ -18,7 +16,7 @@ describe('Boolean operation between two images', function () {
sharp.bool.eor
]
.forEach(function (op) {
it(op + ' operation, file', function (done) {
it(`${op} operation, file`, function (done) {
sharp(fixtures.inputJpg)
.resize(320, 240)
.boolean(fixtures.inputJpgBooleanTest, op)
@@ -26,11 +24,11 @@ describe('Boolean operation between two images', function () {
if (err) throw err;
assert.strictEqual(320, info.width);
assert.strictEqual(240, info.height);
fixtures.assertSimilar(fixtures.expected('boolean_' + op + '_result.jpg'), data, done);
fixtures.assertSimilar(fixtures.expected(`boolean_${op}_result.jpg`), data, done);
});
});
it(op + ' operation, buffer', function (done) {
it(`${op} operation, buffer`, function (done) {
sharp(fixtures.inputJpg)
.resize(320, 240)
.boolean(inputJpgBooleanTestBuffer, op)
@@ -38,11 +36,11 @@ describe('Boolean operation between two images', function () {
if (err) throw err;
assert.strictEqual(320, info.width);
assert.strictEqual(240, info.height);
fixtures.assertSimilar(fixtures.expected('boolean_' + op + '_result.jpg'), data, done);
fixtures.assertSimilar(fixtures.expected(`boolean_${op}_result.jpg`), data, done);
});
});
it(op + ' operation, raw', function (done) {
it(`${op} operation, raw`, function (done) {
sharp(fixtures.inputJpgBooleanTest)
.raw()
.toBuffer(function (err, data, info) {
@@ -54,7 +52,7 @@ describe('Boolean operation between two images', function () {
if (err) throw err;
assert.strictEqual(320, info.width);
assert.strictEqual(240, info.height);
fixtures.assertSimilar(fixtures.expected('boolean_' + op + '_result.jpg'), data, done);
fixtures.assertSimilar(fixtures.expected(`boolean_${op}_result.jpg`), data, done);
});
});
});

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../lib');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const fixtures = require('../fixtures');
const sharp = require('../../');
@@ -322,7 +320,7 @@ describe('composite', () => {
describe('string gravity', () => {
Object.keys(sharp.gravity).forEach(gravity => {
it(gravity, done => {
const expected = fixtures.expected('overlay-gravity-' + gravity + '.jpg');
const expected = fixtures.expected(`overlay-gravity-${gravity}.jpg`);
sharp(fixtures.inputJpg)
.resize(80)
.composite([{
@@ -344,7 +342,7 @@ describe('composite', () => {
describe('tile and gravity', () => {
Object.keys(sharp.gravity).forEach(gravity => {
it(gravity, done => {
const expected = fixtures.expected('overlay-tile-gravity-' + gravity + '.jpg');
const expected = fixtures.expected(`overlay-tile-gravity-${gravity}.jpg`);
sharp(fixtures.inputJpg)
.resize(80)
.composite([{

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,6 +1,4 @@
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,6 +1,4 @@
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const fs = require('fs');
const assert = require('node:assert');
const fs = require('node:fs');
const sharp = require('../../lib');
const fixtures = require('../fixtures');
@@ -32,7 +30,7 @@ describe('failOn', () => {
isWarningEmitted = true;
})
.resize(32, 24)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(true, isWarningEmitted);
assert.strictEqual('png', info.format);

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const fixtures = require('../fixtures');
describe('Test fixtures', function () {

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');

View File

@@ -1,11 +1,9 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const path = require('path');
const assert = require('assert');
const fs = require('node:fs');
const path = require('node:path');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -388,9 +386,8 @@ describe('Input/output', function () {
});
it('Fail when output File is input File via Promise', function (done) {
sharp(fixtures.inputJpg).toFile(fixtures.inputJpg).then(function (data) {
assert(false);
done();
sharp(fixtures.inputJpg).toFile(fixtures.inputJpg).then(function () {
done(new Error('Unexpectedly resolved Promise'));
}).catch(function (err) {
assert(err instanceof Error);
assert.strictEqual('Cannot use same file for input and output', err.message);
@@ -409,9 +406,8 @@ describe('Input/output', function () {
it('Fail when output File is input File via Promise (relative output, absolute input)', function (done) {
const relativePath = path.relative(process.cwd(), fixtures.inputJpg);
sharp(fixtures.inputJpg).toFile(relativePath).then(function (data) {
assert(false);
done();
sharp(fixtures.inputJpg).toFile(relativePath).then(function () {
done(new Error('Unexpectedly resolved Promise'));
}).catch(function (err) {
assert(err instanceof Error);
assert.strictEqual('Cannot use same file for input and output', err.message);
@@ -430,9 +426,8 @@ describe('Input/output', function () {
it('Fail when output File is input File via Promise (relative input, absolute output)', function (done) {
const relativePath = path.relative(process.cwd(), fixtures.inputJpg);
sharp(relativePath).toFile(fixtures.inputJpg).then(function (data) {
assert(false);
done();
sharp(relativePath).toFile(fixtures.inputJpg).then(function () {
done(new Error('Unexpectedly resolved Promise'));
}).catch(function (err) {
assert(err instanceof Error);
assert.strictEqual('Cannot use same file for input and output', err.message);
@@ -449,9 +444,8 @@ describe('Input/output', function () {
});
it('Fail when output File is empty via Promise', function (done) {
sharp(fixtures.inputJpg).toFile('').then(function (data) {
assert(false);
done();
sharp(fixtures.inputJpg).toFile('').then(function () {
done(new Error('Unexpectedly resolved Promise'));
}).catch(function (err) {
assert(err instanceof Error);
assert.strictEqual('Missing output file path', err.message);
@@ -522,7 +516,7 @@ describe('Input/output', function () {
try {
sharp().toFormat('zoinks');
isValid = true;
} catch (e) {}
} catch (_err) {}
assert(!isValid);
done();
});
@@ -633,7 +627,7 @@ describe('Input/output', function () {
sharp(fixtures.inputJpg)
.resize(320, 240)
.png({ compressionLevel: 1, force: false })
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('jpeg', info.format);
assert.strictEqual(320, info.width);
@@ -1059,7 +1053,7 @@ describe('Input/output', function () {
});
const badPipeline = sharp({ raw: { width: 840, height: 500, channels: 3 } })
.toFormat('jpeg')
.toBuffer(function (err, data, info) {
.toBuffer(function (err) {
assert.strictEqual(err.message.indexOf('memory area too small') > 0, true);
const readable = fs.createReadStream(fixtures.inputJPGBig);
const inPipeline = sharp()
@@ -1067,10 +1061,7 @@ describe('Input/output', function () {
.raw();
const goodPipeline = sharp({ raw: { width: 840, height: 472, channels: 3 } })
.toFormat('jpeg')
.toBuffer(function (err, data, info) {
if (err) throw err;
done();
});
.toBuffer(done);
readable.pipe(inPipeline).pipe(goodPipeline);
});
readable.pipe(inPipeline).pipe(badPipeline);

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const fs = require('fs');
const assert = require('node:assert');
const fs = require('node:fs');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const fs = require('fs');
const assert = require('node:assert');
const fs = require('node:fs');
const semver = require('semver');
const libvips = require('../../lib/libvips');

View File

@@ -1,12 +1,10 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const sharp = require('../../');
const fixtures = require('../fixtures');
const assert = require('assert');
const assert = require('node:assert');
describe('Linear adjustment', function () {
const blackPoint = 70;
@@ -17,7 +15,7 @@ describe('Linear adjustment', function () {
it('applies linear levels adjustment w/o alpha ch', function (done) {
sharp(fixtures.inputJpgWithLowContrast)
.linear(a, b)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
fixtures.assertSimilar(fixtures.expected('low-contrast-linear.jpg'), data, done);
});
@@ -26,7 +24,7 @@ describe('Linear adjustment', function () {
it('applies slope level adjustment w/o alpha ch', function (done) {
sharp(fixtures.inputJpgWithLowContrast)
.linear(a)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
fixtures.assertSimilar(fixtures.expected('low-contrast-slope.jpg'), data, done);
});
@@ -35,7 +33,7 @@ describe('Linear adjustment', function () {
it('applies offset level adjustment w/o alpha ch', function (done) {
sharp(fixtures.inputJpgWithLowContrast)
.linear(null, b)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
fixtures.assertSimilar(fixtures.expected('low-contrast-offset.jpg'), data, done);
});
@@ -83,7 +81,7 @@ describe('Linear adjustment', function () {
it('per channel level adjustment', function (done) {
sharp(fixtures.inputWebP)
.linear([0.25, 0.5, 0.75], [150, 100, 50]).toBuffer(function (err, data, info) {
.linear([0.25, 0.5, 0.75], [150, 100, 50]).toBuffer(function (err, data) {
if (err) throw err;
fixtures.assertSimilar(fixtures.expected('linear-per-channel.jpg'), data, done);
});

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const exifReader = require('exif-reader');
const icc = require('icc');
@@ -756,7 +754,7 @@ describe('Image metadata', function () {
sharp(fixtures.inputJpg)
.resize(64)
.withIccProfile(fixtures.path('hilutite.icm'))
.toFile(output, function (err, info) {
.toFile(output, function (err) {
if (err) throw err;
fixtures.assertMaxColourDistance(output, fixtures.expected('hilutite.jpg'), 9);
done();

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const sharp = require('../../');
const assert = require('assert');
const assert = require('node:assert');
const fixtures = require('../fixtures');
describe('Modulate', function () {

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -104,7 +102,7 @@ describe('Negate', function () {
const output = fixtures.path('output.unmodified-by-negate.png');
sharp(fixtures.inputJpgWithLowContrast)
.negate(false)
.toFile(output, function (err, info) {
.toFile(output, function (err) {
if (err) throw err;
fixtures.assertMaxColourDistance(output, fixtures.inputJpgWithLowContrast, 0);
done();

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -24,7 +22,7 @@ describe('Normalization', function () {
sharp(fixtures.inputJpgWithLowContrast)
.normalise()
.raw()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
assertNormalized(data);
done();
@@ -36,7 +34,7 @@ describe('Normalization', function () {
.greyscale()
.normalize()
.raw()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
assertNormalized(data);
done();
@@ -47,7 +45,7 @@ describe('Normalization', function () {
sharp(fixtures.inputPngWithGreyAlpha)
.normalise()
.raw()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
assertNormalized(data);
done();
@@ -90,7 +88,7 @@ describe('Normalization', function () {
const output = fixtures.path('output.unmodified-png-with-one-color.png');
sharp(fixtures.inputPngWithOneColor)
.normalize()
.toFile(output, function (err, info) {
.toFile(output, function (err) {
if (err) done(err);
fixtures.assertMaxColourDistance(output, fixtures.inputPngWithOneColor, 0);
done();
@@ -101,7 +99,7 @@ describe('Normalization', function () {
sharp(fixtures.inputPngWithTransparency16bit)
.normalise()
.raw()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
assertNormalized(data);
done();
@@ -112,7 +110,7 @@ describe('Normalization', function () {
sharp(fixtures.inputJpgWithLowContrast)
.normalise({ lower: 10, upper: 70 })
.raw()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
assertNormalized(data);
done();

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -137,6 +135,7 @@ describe('PNG', function () {
.toBuffer();
const { size, ...metadata } = await sharp(data).metadata();
void size;
assert.deepStrictEqual(metadata, {
autoOrient: {
height: 68,

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -200,7 +198,7 @@ describe('Raw pixel data', function () {
});
writable
.jpeg()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('jpeg', info.format);
assert.strictEqual(32, info.width);
@@ -285,20 +283,20 @@ describe('Raw pixel data', function () {
});
});
for (const { constructor, depth, bits } of [
{ constructor: Uint8Array, depth: undefined, bits: 8 },
{ constructor: Uint8Array, depth: 'uchar', bits: 8 },
{ constructor: Uint8ClampedArray, depth: 'uchar', bits: 8 },
{ constructor: Int8Array, depth: 'char', bits: 8 },
{ constructor: Uint16Array, depth: 'ushort', bits: 16 },
{ constructor: Int16Array, depth: 'short', bits: 16 },
{ constructor: Uint32Array, depth: 'uint', bits: 32 },
{ constructor: Int32Array, depth: 'int', bits: 32 },
{ constructor: Float32Array, depth: 'float', bits: 32 },
{ constructor: Float64Array, depth: 'double', bits: 64 }
for (const { type, depth, bits } of [
{ type: Uint8Array, depth: undefined, bits: 8 },
{ type: Uint8Array, depth: 'uchar', bits: 8 },
{ type: Uint8ClampedArray, depth: 'uchar', bits: 8 },
{ type: Int8Array, depth: 'char', bits: 8 },
{ type: Uint16Array, depth: 'ushort', bits: 16 },
{ type: Int16Array, depth: 'short', bits: 16 },
{ type: Uint32Array, depth: 'uint', bits: 32 },
{ type: Int32Array, depth: 'int', bits: 32 },
{ type: Float32Array, depth: 'float', bits: 32 },
{ type: Float64Array, depth: 'double', bits: 64 }
]) {
it(constructor.name, () =>
sharp(new constructor(3), { raw: { width: 1, height: 1, channels: 3 } })
it(type.name, () =>
sharp(new type(3), { raw: { width: 1, height: 1, channels: 3 } })
.raw({ depth })
.toBuffer({ resolveWithObject: true })
.then(({ data, info }) => {

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -129,7 +127,7 @@ describe('Resize dimensions', function () {
.resize(0x4000, 0x4000)
.extract({ top: 0x2000, left: 0x2000, width: 256, height: 256 })
.webp()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('webp', info.format);
assert.strictEqual(256, info.width);
@@ -149,7 +147,7 @@ describe('Resize dimensions', function () {
assert.strictEqual(607, info.height);
sharp(data)
.resize(233, 131)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual('webp', info.format);
assert.strictEqual(233, info.width);
@@ -169,7 +167,7 @@ describe('Resize dimensions', function () {
sharp(data)
.rotate(90)
.resize(533, 800)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(533, info.width);
assert.strictEqual(800, info.height);
@@ -660,7 +658,7 @@ describe('Resize dimensions', function () {
sharp(fixtures.inputTiff8BitDepth)
.resize(210, 210, { kernel: 'nearest' })
.png()
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(210, info.width);
assert.strictEqual(210, info.height);

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -173,8 +171,8 @@ describe('Rotation', function () {
});
[-3690, -450, -90, 90, 450, 3690].forEach(function (angle) {
it('Rotate by any 90-multiple angle (' + angle + 'deg)', function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, data, info) {
it(`Rotate by any 90-multiple angle (${angle}deg)`, function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(240, info.width);
assert.strictEqual(320, info.height);
@@ -184,8 +182,8 @@ describe('Rotation', function () {
});
[-3750, -510, -150, 30, 390, 3630].forEach(function (angle) {
it('Rotate by any 30-multiple angle (' + angle + 'deg)', function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, data, info) {
it(`Rotate by any 30-multiple angle (${angle}deg)`, function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(397, info.width);
assert.strictEqual(368, info.height);
@@ -195,8 +193,8 @@ describe('Rotation', function () {
});
[-3780, -540, 0, 180, 540, 3780].forEach(function (angle) {
it('Rotate by any 180-multiple angle (' + angle + 'deg)', function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, data, info) {
it(`Rotate by any 180-multiple angle (${angle}deg)`, function (done) {
sharp(fixtures.inputJpg320x240).rotate(angle).toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(320, info.width);
assert.strictEqual(240, info.height);
@@ -446,7 +444,7 @@ describe('Rotation', function () {
sharp(fixtures.inputJpg)
.rotate(45)
.rotate(90)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(2225, info.width);
assert.strictEqual(2725, info.height);
@@ -458,7 +456,7 @@ describe('Rotation', function () {
sharp(fixtures.inputJpg)
.rotate(90)
.rotate(45)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, _data, info) {
if (err) throw err;
assert.strictEqual(3500, info.width);
assert.strictEqual(3500, info.height);

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -711,7 +709,7 @@ describe('Image Stats', function () {
it('File input with corrupt header fails gracefully, Promise out', function () {
return sharp(fixtures.inputJpgWithCorruptHeader)
.stats().then(function (stats) {
.stats().then(function () {
throw new Error('Corrupt Header file');
}).catch(function (err) {
assert.ok(!!err);
@@ -724,7 +722,7 @@ describe('Image Stats', function () {
fs.createReadStream(fixtures.inputJpgWithCorruptHeader).pipe(pipeline);
return pipeline
.stats().then(function (stats) {
.stats().then(function () {
throw new Error('Corrupt Header file');
}).catch(function (err) {
assert.ok(!!err);
@@ -740,7 +738,7 @@ describe('Image Stats', function () {
});
it('Non-existent file in, Promise out', function (done) {
sharp('fail').stats().then(function (stats) {
sharp('fail').stats().then(function () {
throw new Error('Non-existent file');
}, function (err) {
assert.ok(!!err);

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');
@@ -64,7 +62,7 @@ describe('Threshold', function () {
it('threshold false (=0)', function (done) {
sharp(fixtures.inputJpg)
.threshold(false)
.toBuffer(function (err, data, info) {
.toBuffer(function (err, data) {
if (err) throw err;
fixtures.assertSimilar(fixtures.inputJpg, data, done);
});

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,11 +1,9 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const path = require('path');
const assert = require('assert');
const fs = require('node:fs');
const path = require('node:path');
const assert = require('node:assert');
const extractZip = require('extract-zip');
@@ -47,7 +45,7 @@ const assertDeepZoomTiles = function (directory, expectedSize, expectedLevels, d
.catch(done);
};
const assertZoomifyTiles = function (directory, expectedTileSize, expectedLevels, done) {
const assertZoomifyTiles = function (directory, expectedLevels, done) {
fs.stat(path.join(directory, 'ImageProperties.xml'), function (err, stat) {
if (err) throw err;
assert.ok(stat.isFile());
@@ -57,7 +55,7 @@ const assertZoomifyTiles = function (directory, expectedTileSize, expectedLevels
fs.readdirSync(path.join(directory, 'TileGroup0')).forEach(function (tile) {
// Verify tile file name
assert.ok(/^[0-9]+-[0-9]+-[0-9]+\.jpg$/.test(tile));
const level = parseInt(tile.split('-')[0]);
const level = Number(tile.split('-')[0]);
maxTileLevel = Math.max(maxTileLevel, level);
});
@@ -67,7 +65,7 @@ const assertZoomifyTiles = function (directory, expectedTileSize, expectedLevels
});
};
const assertGoogleTiles = function (directory, expectedTileSize, expectedLevels, done) {
const assertGoogleTiles = function (directory, expectedLevels, done) {
// Get levels
const dirents = fs.readdirSync(directory, { withFileTypes: true });
const levels = dirents.filter(dirent => dirent.isDirectory()).map(dirent => dirent.name);
@@ -411,7 +409,7 @@ describe('Tile', function () {
size: 512,
depth: 'one'
})
.toFile(fixtures.path('output.512_depth_one.dzi'), function (err, info) {
.toFile(fixtures.path('output.512_depth_one.dzi'), function (err) {
if (err) throw err;
// Verify only one depth generated
assertDeepZoomTiles(directory, 512, 1, done);
@@ -427,7 +425,7 @@ describe('Tile', function () {
size: 512,
depth: 'onepixel'
})
.toFile(fixtures.path('output.512_depth_onepixel.dzi'), function (err, info) {
.toFile(fixtures.path('output.512_depth_onepixel.dzi'), function (err) {
if (err) throw err;
// Verify only one depth generated
assertDeepZoomTiles(directory, 512, 13, done);
@@ -443,7 +441,7 @@ describe('Tile', function () {
size: 256,
depth: 'onetile'
})
.toFile(fixtures.path('output.256_depth_onetile.dzi'), function (err, info) {
.toFile(fixtures.path('output.256_depth_onetile.dzi'), function (err) {
if (err) throw err;
// Verify only one depth generated
assertDeepZoomTiles(directory, 256, 5, done);
@@ -459,7 +457,7 @@ describe('Tile', function () {
size: 256,
skipBlanks: 0
})
.toFile(fixtures.path('output.256_skip_blanks.dzi'), function (err, info) {
.toFile(fixtures.path('output.256_skip_blanks.dzi'), function (err) {
if (err) throw err;
// assert them 0_0.jpeg doesn't exist because it's a white tile
const whiteTilePath = path.join(directory, '11', '0_0.jpeg');
@@ -510,7 +508,7 @@ describe('Tile', function () {
assert.strictEqual(2225, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertZoomifyTiles(directory, 256, 1, done);
assertZoomifyTiles(directory, 1, done);
});
});
});
@@ -531,7 +529,7 @@ describe('Tile', function () {
assert.strictEqual(2225, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertZoomifyTiles(directory, 256, 5, done);
assertZoomifyTiles(directory, 5, done);
});
});
});
@@ -552,7 +550,7 @@ describe('Tile', function () {
assert.strictEqual(2225, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertZoomifyTiles(directory, 256, 13, done);
assertZoomifyTiles(directory, 13, done);
});
});
});
@@ -576,7 +574,7 @@ describe('Tile', function () {
assert.strictEqual(1536, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertZoomifyTiles(directory, 256, 4, done);
assertZoomifyTiles(directory, 4, done);
});
});
});
@@ -733,7 +731,7 @@ describe('Tile', function () {
assert.strictEqual(2225, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertGoogleTiles(directory, 256, 1, done);
assertGoogleTiles(directory, 1, done);
});
});
});
@@ -754,7 +752,7 @@ describe('Tile', function () {
assert.strictEqual(2225, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertGoogleTiles(directory, 256, 5, done);
assertGoogleTiles(directory, 5, done);
});
});
});
@@ -778,7 +776,7 @@ describe('Tile', function () {
assert.strictEqual(2074, info.height);
assert.strictEqual(3, info.channels);
assert.strictEqual(undefined, info.size);
assertGoogleTiles(directory, 256, 5, done);
assertGoogleTiles(directory, 5, done);
});
});
});

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const sharp = require('../../');
const inRange = require('../../lib/is').inRange;

View File

@@ -1,8 +1,6 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const sharp = require('../../');
const fixtures = require('../fixtures');

View File

@@ -1,9 +1,7 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const assert = require('assert');
const assert = require('node:assert');
const semver = require('semver');
const sharp = require('../../');

View File

@@ -1,10 +1,8 @@
// Copyright 2013 Lovell Fuller and others.
// SPDX-License-Identifier: Apache-2.0
'use strict';
const fs = require('fs');
const assert = require('assert');
const fs = require('node:fs');
const assert = require('node:assert');
const sharp = require('../../');
const fixtures = require('../fixtures');