1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| 'use strict'
|
| /*!
| * multer
| * Copyright(c) 2014 Hage Yaapa
| * Copyright(c) 2015 Fangdun Cai
| * MIT Licensed
| */
|
| /**
| * Module dependencies.
| */
|
| const originalMulter = require('multer')
|
| function multer(options) {
| const m = originalMulter(options)
|
| makePromise(m, 'any')
| makePromise(m, 'array')
| makePromise(m, 'fields')
| makePromise(m, 'none')
| makePromise(m, 'single')
|
| return m
| }
|
| function makePromise(multer, name) {
| if (!multer[name]) return
|
| const fn = multer[name]
|
| multer[name] = function () {
| const middleware = fn.apply(this, arguments)
|
| return (ctx, next) => {
| return new Promise((resolve, reject) => {
| middleware(ctx.req, ctx.res, (err) => {
| err ? reject(err) : resolve(ctx)
| })
| }).then(next)
| }
| }
| }
|
| multer.diskStorage = originalMulter.diskStorage
| multer.memoryStorage = originalMulter.memoryStorage
|
| module.exports = multer
|
|