declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; var gulp = require('gulp'); var $ = require('gulp-load-plugins')({ lazy: true }); var debug = require('gulp-debug'); var foreach = require('gulp-foreach'); var gutil = require('gulp-util'); var errorHandler = require('../helpers/errorHandler'); function Coffee(options) { var src = options.src; var srcOption:any = {}; var dest = options.dest; var stream = options.stream; var lintConfig = options.lintConfig; var base = options.base; var lint = options.lint || true; if(!(dest && lintConfig)) { console.info(arguments); throw new Error('missing compile coffeee params'); } if(base) { srcOption.base = base; } if(src && !stream) { stream = gulp .src(src, srcOption) .pipe($.plumber()) .pipe($.print()); } if(!stream) { throw new Error('coffee missing stream'); } return stream .pipe(foreach(function(stream, file){ file = file.toString().toLowerCase(); if(!!file.match(/[.]coffee$/)) { gutil.log('coffee-script lint', gutil.colors.magenta(file)); return stream .pipe($.coffeelint(lintConfig)) .pipe($.coffeelint.reporter()); } else { return stream; } })) .pipe($["if"](/[.]coffee$/, $.coffee({ bare: true }))); }; export = Coffee