simplr-gulp
Version:
Fully functional gulpfile.js implementation. Tailored for Single Page Application. Written in TypeScript.
44 lines (43 loc) • 1.77 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const builder_base_1 = require("../builder-base");
const configuration_1 = require("../../configuration/configuration");
const gulp = require("gulp");
const uglify = require("gulp-uglify");
const sourcemaps = require("gulp-sourcemaps");
const typescript_builder_compiler_1 = require("./typescript-builder-compiler");
const cache = require("gulp-cached");
const typescript_reporter_1 = require("./typescript-reporter");
class TypescriptBuilderClass extends builder_base_1.BuilderBase {
constructor() {
super(...arguments);
this.reporter = new typescript_reporter_1.Reporter();
}
build(production, builder, done) {
let tsResult = builder.Project
.src()
.pipe(cache("scripts.typescript"));
if (!production) {
tsResult = tsResult.pipe(sourcemaps.init());
}
tsResult = tsResult.pipe(builder.Project(this.reporter)).js;
tsResult
.pipe((production) ? uglify({ mangle: true }) : sourcemaps.write())
.pipe(gulp.dest(builder.Config.OutDir))
.on("end", done);
}
initBuilder(production) {
if (production) {
return new typescript_builder_compiler_1.TypescriptBuilderCompiler(this.typescriptConfig.Production);
}
else {
return new typescript_builder_compiler_1.TypescriptBuilderCompiler(this.typescriptConfig.Development);
}
}
GetBuilder(production) {
return this.getBuilder(production);
}
get typescriptConfig() {
return configuration_1.Configuration.GulpConfig.TypeScriptConfig;
}
}
exports.TypescriptBuilder = new TypescriptBuilderClass();