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'); function TypeScript(_arg) { var base, dest, lint, options, src, stream, testReporter, tsLintRules, tsProject, tslintOptions; src = _arg.src; tsProject = _arg.tsProject; stream = _arg.stream; dest = _arg.dest; base = _arg.base; lint = _arg.lint; tsLintRules = _arg.tsLintRules; if (lint == null) { lint = true; } if (stream) { src = 'stream'; } if (!(src && tsProject && dest && tsLintRules)) { console.info(src, arguments); throw new Error('missing compile coffeee params'); } testReporter = function(output, file, options) { return console.log("Found " + output.length + " errors in " + file.path); }; options = {}; if (base) { options.base = base; } if (!stream) { stream = gulp.src(src, options); } stream = stream.pipe($.plumber()); tslintOptions = { rulesDirectory: null, emitError: true, configuration: tsLintRules }; return stream .pipe(foreach(function(stream, file){ file = file.toString().toLowerCase(); if(!!file.match(/[.]ts$/) && (!!file.match(/[.]d.ts$/)) === false) { gutil.log('type-script lint', gutil.colors.magenta(file)); return stream .pipe($.tslint(tslintOptions)) .pipe($.tslint.report(testReporter)); } else { return stream; } })) .pipe($["if"](/[.]ts$/, $.typescript(tsProject))); }; export = TypeScript;