import base = require("./base"); declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; var gulp = require('gulp'); var path = require('path'); var $ = require('gulp-load-plugins')({lazy: true}); class CompileJst extends base.BaseTask { constructor() { super(); return this; } static watch:boolean = true; //static dependency:any = ['cleanJavaScript']; static taskName:string = 'compileJst'; static config(task, tasks, userOptions) { return { files: [ './source/**/*.jst.jade', './source/**/*.jst.haml', './source/**/*.jst.html', './source/**/*.jst.coffeekup' ], jade:{ config: { pretty: true }, filter: /[.]jade$/ }, coffee: { filter: /[.]coffeekup$/ }, minify:{ filter: /[.]min.html$/, config: { conditionals: true, spare:true } } }; } static gulp(options, settings, task, tasks):void { CompileJst.checkArguments(options, settings, task, tasks); var _ = require('lodash'); var ck = require('coffeekup'); var wraptext = require('gulp-requirejs-wrap-text'); var gulpRunner = options.gulp || gulp; var config = settings; var _ref; if (!(config != null ? (_ref = config.files) != null ? _ref.length : void 0 : void 0)) { return; } function transformCoffeeKup(contents) { return ck.render(contents); } return gulpRunner.src(config.files, { base: config.base }) .pipe($.print()) .pipe($.plumber()) .pipe($["if"](config.jade.filter, $.jade(config.jade.config))) .pipe($["if"](config.coffee.filter, $.insert.transform(transformCoffeeKup))) .pipe($["if"](config.coffee.filter, $.rename({ extname: ".html" }))) .pipe($.prettify({ indent_size: 2 })) .pipe($["if"](config.minify.filter, $.minifyHtml(config.minify.config))) .pipe(wraptext()) .pipe($["if"](/[.]min.html$/, $.uglify())) .pipe($.rename({ extname: ".js" })) .pipe(gulp.dest(settings.dist || options.dist)); } } export = CompileJst;