From 75a46212da9ccd4ad5c456ae81119c2c8d120a28 Mon Sep 17 00:00:00 2001 From: Jonathan Cremin Date: Tue, 24 May 2016 21:33:09 +0100 Subject: [PATCH] Remove gm dependency and update tests. --- .gitlab-ci.yml | 3 +-- circle.yml | 16 ---------------- lib/resize.js | 29 ++++++++++++++++++++++++++--- package.json | 7 +++++-- test/fixtures/app-icon.png | Bin 0 -> 9110 bytes test/fixtures/kim.gif | Bin 0 -> 77858 bytes test/unit/image-resize.spec.js | 33 ++++++++++++++++++++++++++------- test/web/file.spec.js | 10 +++------- 8 files changed, 61 insertions(+), 37 deletions(-) delete mode 100644 circle.yml create mode 100644 test/fixtures/app-icon.png create mode 100644 test/fixtures/kim.gif diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49a188f..83e8a1b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ test: stage: test before_script: - npm install - - node test/fixtures/mongo-user.js test/fixtures/mongo-file.js + - npm run init script: - npm test tags: @@ -25,4 +25,3 @@ cache: untracked: true paths: - node_modules - - web/public/jspm_packages diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 516ad4a..0000000 --- a/circle.yml +++ /dev/null @@ -1,16 +0,0 @@ -machine: - node: - version: iojs-3.2.0 - -test: - pre: - - mongo hostr test/fixtures/mongo-user.js test/fixtures/mongo-file.js - override: - - npm run cover - -dependencies: - cache_directories: - - node_modules - - web/public/jspm_packages - post: - - npm run jspm diff --git a/lib/resize.js b/lib/resize.js index 7e44e07..a432f3f 100644 --- a/lib/resize.js +++ b/lib/resize.js @@ -1,10 +1,33 @@ import debugname from 'debug'; const debug = debugname('hostr-api:resize'); -import gm from 'gm'; +import lwip from 'lwip'; +import imageType from 'image-type'; + +const supported = ['jpg', 'png', 'gif']; export default function(input, size) { debug('Resizing'); - const image = gm(input); - return image.resize(size.width, size.height, '>').stream(); + const type = imageType(input); + + if (!type.ext || supported.indexOf(type.ext) < 0) { + throw new Error('Not a supported image.'); + } + + return new Promise((resolve, reject) => { + lwip.open(input, type.ext, (errIn, image) => { + if (errIn) { + return reject(errIn); + } + image.cover(size.width, size.height, (errOut, resized) => { + if (errOut) { + return reject(errOut); + } + + resized.toBuffer(type.ext, (errBuf, buffer) => { + resolve(buffer); + }); + }); + }); + }); } diff --git a/package.json b/package.json index 935a61e..e0f1f35 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "init": "node -r babel/register -e \"require('./lib/storage')();\"", "jspm": "jspm install", "start": "npm run build && node -r babel/register app.js", - "test": "npm run test-seed && mocha -r babel/register test/**/*.spec.js", + "test": "npm run test-seed && mocha -r babel/register test/**/*.spec.js && mocha -r babel/register -r co-mocha test/unit/image-resize.spec.js", "test-seed": "node test/fixtures/mongo-user.js && node test/fixtures/mongo-file.js", "watch": "parallelshell \"npm run watch-js\" \"npm run watch-sass\" \"npm run watch-server\"", "watch-js": "babel -Dw -m system -d web/public/build web/public/src", @@ -34,8 +34,9 @@ "debug": "~2.2.0", "ejs": "~2.3.2", "form-data": "^1.0.0-rc3", - "gm": "~1.18.1", "http-errors": "~1.3.1", + "image-size": "^0.5.0", + "image-type": "^2.1.0", "jspm": "~0.16.0", "kcors": "~1.0.1", "koa": "~1.0.0", @@ -52,6 +53,7 @@ "koa-statsd": "~0.0.2", "koa-views": "~3.1.0", "koa-websocket": "~1.1.0", + "lwip": "0.0.9", "mime-types": "~2.1.5", "moment": "~2.10.6", "mongodb-promisified": "~1.0.3", @@ -69,6 +71,7 @@ }, "devDependencies": { "babel-eslint": "^4.0.10", + "co-mocha": "^1.1.2", "eslint": "~1.3.0", "eslint-config-airbnb": "0.0.8", "istanbul": "~0.3.18", diff --git a/test/fixtures/app-icon.png b/test/fixtures/app-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..388173ae5666f858ce8a34610904c82acf20de8e GIT binary patch literal 9110 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 { + it('should resize a jpg', function* resizeImage() { + const file = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'utah-arches.jpg')); const imageBuffer = yield resize(file, {height: 100, width: 100}); - const tmpFile = tmp.tmpNameSync(); - fs.writeFileSync(tmpFile + '.jpg', imageBuffer); - assert(tmpFile); + const tmpFile = tmp.tmpNameSync() + '.jpg'; + fs.writeFileSync(tmpFile, imageBuffer); + const type = imageType(fs.readFileSync(tmpFile)); + assert(type.ext === 'jpg'); + }); + + it('should resize a png', function* resizeImage() { + const file = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'app-icon.png')); + const imageBuffer = yield resize(file, {height: 100, width: 100}); + const tmpFile = tmp.tmpNameSync() + '.png'; + fs.writeFileSync(tmpFile, imageBuffer); + const type = imageType(fs.readFileSync(tmpFile)); + assert(type.ext === 'png'); + }); + + it('should resize a gif', function* resizeImage() { + const file = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'kim.gif')); + const imageBuffer = yield resize(file, {height: 100, width: 100}); + const tmpFile = tmp.tmpNameSync() + '.gif'; + fs.writeFileSync(tmpFile, imageBuffer); + const type = imageType(fs.readFileSync(tmpFile)); + assert(type.ext === 'gif'); }); }); diff --git a/test/web/file.spec.js b/test/web/file.spec.js index cdd1c4d..3453ca3 100644 --- a/test/web/file.spec.js +++ b/test/web/file.spec.js @@ -1,5 +1,5 @@ import assert from 'assert'; -import gm from 'gm'; +import sizeOf from 'image-size'; import { agent } from 'supertest'; import app from '../../app'; @@ -46,9 +46,7 @@ describe('hostr-web file', function() { .expect(200) .expect('Content-type', 'image/jpeg') .expect(function(response) { - gm(response.body).size((err, size) => { - assert(size.width === 150); - }); + assert(sizeOf(response.body).width === 150); }) .end(done); }); @@ -61,9 +59,7 @@ describe('hostr-web file', function() { .expect(200) .expect('Content-type', 'image/jpeg') .expect(function(response) { - gm(response.body).size((err, size) => { - assert(size.width === 970); - }); + assert(sizeOf(response.body).width === 970); }) .end(done); });