utils.js 419 B

123456789101112131415161718
  1. 'use strict';
  2. const convert = require('koa-convert');
  3. const is = require('is-type-of');
  4. const co = require('co');
  5. module.exports = {
  6. async callFn(fn, args, ctx) {
  7. args = args || [];
  8. if (!is.function(fn)) return;
  9. if (is.generatorFunction(fn)) fn = co.wrap(fn);
  10. return ctx ? fn.call(ctx, ...args) : fn(...args);
  11. },
  12. middleware(fn) {
  13. return is.generatorFunction(fn) ? convert(fn) : fn;
  14. },
  15. };