From 15ab1bdeabbb794e4e3777b499b600f21519facd Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 2 May 2017 12:55:41 -0500 Subject: [PATCH 1/7] Expose the processed body/files This change exposes the resulting request body and/or files value to the outer Koa wrapper for each respective object. --- index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.js b/index.js index baa6447..4e14d4d 100644 --- a/index.js +++ b/index.js @@ -36,6 +36,8 @@ function makePromise(multer, name) { return (ctx, next) => { return new Promise((resolve, reject) => { middleware(ctx.req, ctx.res, (err) => { + if (ctx.req.body) ctx.request.body = ctx.req.body + if (ctx.req.files) ctx.request.files = ctx.req.files err ? reject(err) : resolve(ctx) }) }).then(next) From bbcdfaf22d8d9acb858daf1635191a69a78be361 Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 2 May 2017 12:59:26 -0500 Subject: [PATCH 2/7] Forgot to expose the single file reference. --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 4e14d4d..7e9bf0c 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,7 @@ function makePromise(multer, name) { return new Promise((resolve, reject) => { middleware(ctx.req, ctx.res, (err) => { if (ctx.req.body) ctx.request.body = ctx.req.body + if (ctx.req.file) ctx.request.file = ctx.req.file if (ctx.req.files) ctx.request.files = ctx.req.files err ? reject(err) : resolve(ctx) }) From 363a790069a5d92b1a04582592de6920f20cfc7a Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 2 May 2017 13:11:39 -0500 Subject: [PATCH 3/7] Fixed semicolons --- index.js | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/index.js b/index.js index 7e9bf0c..531e9cf 100644 --- a/index.js +++ b/index.js @@ -11,42 +11,42 @@ * Module dependencies. */ -const originalMulter = require('multer') +const originalMulter = require('multer'); function multer(options) { - const m = originalMulter(options) + const m = originalMulter(options); - makePromise(m, 'any') - makePromise(m, 'array') - makePromise(m, 'fields') - makePromise(m, 'none') - makePromise(m, 'single') + makePromise(m, 'any'); + makePromise(m, 'array'); + makePromise(m, 'fields'); + makePromise(m, 'none'); + makePromise(m, 'single'); - return m + return m; } function makePromise(multer, name) { - if (!multer[name]) return + if (!multer[name]) return; - const fn = multer[name] + const fn = multer[name]; multer[name] = function () { - const middleware = fn.apply(this, arguments) + const middleware = fn.apply(this, arguments); return (ctx, next) => { return new Promise((resolve, reject) => { middleware(ctx.req, ctx.res, (err) => { - if (ctx.req.body) ctx.request.body = ctx.req.body - if (ctx.req.file) ctx.request.file = ctx.req.file - if (ctx.req.files) ctx.request.files = ctx.req.files - err ? reject(err) : resolve(ctx) - }) - }).then(next) - } - } + if (ctx.req.body) ctx.request.body = ctx.req.body; + if (ctx.req.file) ctx.request.file = ctx.req.file; + if (ctx.req.files) ctx.request.files = ctx.req.files; + err ? reject(err) : resolve(ctx); + }); + }).then(next); + }; + }; } -multer.diskStorage = originalMulter.diskStorage -multer.memoryStorage = originalMulter.memoryStorage +multer.diskStorage = originalMulter.diskStorage; +multer.memoryStorage = originalMulter.memoryStorage; -module.exports = multer +module.exports = multer; From 5c3c28bc90042829a3a40c253454175ab16d66fb Mon Sep 17 00:00:00 2001 From: Tech Born Date: Tue, 2 May 2017 18:32:31 +0000 Subject: [PATCH 4/7] Conditional to let the tests pass. --- index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 531e9cf..3071839 100644 --- a/index.js +++ b/index.js @@ -36,9 +36,11 @@ function makePromise(multer, name) { return (ctx, next) => { return new Promise((resolve, reject) => { middleware(ctx.req, ctx.res, (err) => { - if (ctx.req.body) ctx.request.body = ctx.req.body; - if (ctx.req.file) ctx.request.file = ctx.req.file; - if (ctx.req.files) ctx.request.files = ctx.req.files; + if ('request' in ctx){ + if (ctx.req.body) ctx.request.body = ctx.req.body; + if (ctx.req.file) ctx.request.file = ctx.req.file; + if (ctx.req.files) ctx.request.files = ctx.req.files; + } err ? reject(err) : resolve(ctx); }); }).then(next); From eba1359584feaac5341e0873c9cc16514fb2f273 Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 2 May 2017 14:08:17 -0500 Subject: [PATCH 5/7] Update package.json Changed the engine requirements to coordinate with Koa 2.x's requirements of Node 6 or newer. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3293baa..f726078 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "multer": "1.2.1" }, "engines": { - "node": ">= 4" + "node": ">= 6.0.0" }, "files": [ "History.md", From ad7d9c00b33d646d67365fc2f728c2c1eb73d00c Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 2 May 2017 14:15:29 -0500 Subject: [PATCH 6/7] Update .travis.yml Changed node versions that are tested since Koa 2.x only requires Node 6 or greater. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1a455f9..62a57ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: node_js node_js: - - "4" - - "5" - "6" + - "7" + - "node" sudo: false script: "npm run test-ci" after_script: "npm install coveralls@2 && cat ./coverage/lcov.info | coveralls" From d3632405cf21a25d0f1f3d3b14af83719ccc3b07 Mon Sep 17 00:00:00 2001 From: Techborn Date: Tue, 16 May 2017 18:09:52 -0500 Subject: [PATCH 7/7] Added exposure of files to the Context object --- index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 3071839..9a61112 100644 --- a/index.js +++ b/index.js @@ -39,7 +39,10 @@ function makePromise(multer, name) { if ('request' in ctx){ if (ctx.req.body) ctx.request.body = ctx.req.body; if (ctx.req.file) ctx.request.file = ctx.req.file; - if (ctx.req.files) ctx.request.files = ctx.req.files; + if (ctx.req.files) { + ctx.request.files = ctx.req.files; + ctx.files = ctx.req.files; + } } err ? reject(err) : resolve(ctx); });