All files / server/src/reply index.js

19.44% Statements 7/36
0% Branches 0/12
0% Functions 0/14
24.14% Lines 7/29
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 50 51 52 53 54 559x 9x 9x   9x       9x                                 9x                         9x                                
const path = require('path');
const fs = require('mz/fs');
const assert = require('assert');
 
exports.send = (...args) => ctx => {
  ctx.res.send(...args);
};
 
exports.file = (...args) => {
 
  assert(args.length >= 1, 'file() expects a path');
  assert(args.length <= 2, 'file() expects two arguments top');
 
  let [file, opts = {}] = args;
 
  if (!path.isAbsolute(file)) {
    file = path.resolve(process.cwd(), file);
  }
 
  return ctx => new Promise((resolve, reject) => {
    ctx.res.sendFile(file, opts, err => err ? reject(err) : resolve());
  });
};
 
 
exports.render = (...args) => {
 
  assert(args.length >= 1, 'file() expects a view name');
  assert(args.length <= 2, 'file() expects two arguments top');
 
  let [file, opts = {}] = args;
 
  return ctx => new Promise((resolve, reject) => {
    const callback = (err, html) => err ? reject(err) : resolve(html);
    ctx.res.render(file, opts, callback);
  });
};
 
exports.download = (...args) => {
 
  assert(args.length >= 1, 'file() expects a view name');
  assert(args.length <= 2, 'file() expects two arguments top');
 
  let [file, name] = args;
 
  if (!path.isAbsolute(file)) {
    file = path.resolve(process.cwd(), file);
  }
 
  return ctx => new Promise((resolve, reject) => {
    const callback = (err, html) => err ? reject(err) : resolve(html);
    ctx.res.download(file, name, callback);
  });
};