grunt.registerMultiTask('riCover', "Typescript code coverage", function () {
        var options = this.data;
        var reports = (options || {}).reports || {};

        var loadCoverage = require('remap-istanbul/lib/loadCoverage');
        var remap = require('remap-istanbul/lib/remap');
        var writeReport = require('remap-istanbul/lib/writeReport');

        var collector = remap(loadCoverage(options.src));
        //Write json
        writeReport(collector,'json', reports.json);
        //write custom type
        writeReport(collector, reports.type, reports.dest);
    });
gulp.task('remap-istanbul', ['test:mocha'], function (cb) {
  var loadCoverage = require('remap-istanbul/lib/loadCoverage');
  var remap = require('remap-istanbul/lib/remap');
  var writeReport = require('remap-istanbul/lib/writeReport');
  var collector = remap(loadCoverage('coverage/coverage-final.json'));
  var reports = [];
  reports.push(writeReport(collector, 'text'));
  reports.push(writeReport(collector, 'text-summary'));
  reports.push(writeReport(collector, 'json', 'coverage/coverage-final-mapped.json'));
  reports.push(writeReport(collector, 'html', 'coverage/lcov-report'));
  reports.push(writeReport(collector, 'lcovonly', 'coverage/lcov.info'));
  Promise.all(reports).then(function () {
    console.log('Full coverage report on :'.green + ('file://' + path.resolve('./coverage/lcov-report/index.html')).yellow.underline);
    cb();
  });
});