333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'use strict';
 
const convert = require('koa-convert');
const is = require('is-type-of');
const co = require('co');
 
module.exports = {
  async callFn(fn, args, ctx) {
    args = args || [];
    if (!is.function(fn)) return;
    if (is.generatorFunction(fn)) fn = co.wrap(fn);
    return ctx ? fn.call(ctx, ...args) : fn(...args);
  },
 
  middleware(fn) {
    return is.generatorFunction(fn) ? convert(fn) : fn;
  },
};