UNPKG

gulp-typescript-helper

Version:
153 lines 6.95 kB
"use strict"; /*! * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); } return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var gulp = require("gulp"); var sourcemaps = require("gulp-sourcemaps"); var typescript = require("gulp-typescript"); var replace = require("gulp-replace"); var mergeStreams = require("merge2"); var stream_to_promise_agnostic_1 = require("stream-to-promise-agnostic"); var BuildHelperBase_1 = require("./BuildHelperBase"); var mergeValues_1 = require("./mergeValues"); var StreamConvert = stream_to_promise_agnostic_1.streamToPromise(function (e) { return require("q").promise(e); }); function endsWith(source, pattern) { return source.lastIndexOf(pattern) == (source.length - pattern.length); } var REMOVE_EMPTY_LINES_REGEX = /(\n\s*$)+/gm; var REMOVE_EXTRANEOUS_ES6_HELPERS = /\n?^(\s|\t)*\b(var|const|let)\s+(__extends|__generator)\s*=\s*\w+(\.\w+)*(\s*;)?(\s|\t)*$/gm; var BuildHelper = (function (_super) { __extends(BuildHelper, _super); function BuildHelper() { return _super !== null && _super.apply(this, arguments) || this; } BuildHelper.prototype.removeExtraneousES6Helpers = function () { this.addPreProcess(function (source) { return source.pipe(replace(REMOVE_EXTRANEOUS_ES6_HELPERS, "")); }); return this; }; BuildHelper.prototype.onExecute = function () { var options = this.compilerOptions, from = this.sourceFolder, to = this.destinationFolder; var declaration = options.declaration; var tsStart = gulp.src(from + '/**/*.ts'); for (var _i = 0, _a = this._preProcessors; _i < _a.length; _i++) { var p = _a[_i]; tsStart = p(tsStart); } if (options.sourceMap) tsStart = tsStart.pipe(sourcemaps.init()); var tsResult = tsStart.pipe(typescript(options)); var dts = tsResult.dts; if (options.removeComments) { var o = mergeValues_1.default({}, options); delete o.removeComments; dts = tsStart.pipe(typescript(o)).dts; } var js = declaration ? tsResult.js : tsResult; if (this._minify) js = js.pipe(this.getPostProcess()); js = js.pipe(replace(REMOVE_EMPTY_LINES_REGEX, "")); if (options.sourceMap) js = js.pipe(sourcemaps.write('.', this.sourceMapOptions)); js = js.pipe(replace(REMOVE_EMPTY_LINES_REGEX, "")); var stream = declaration ? mergeStreams([ gulp.src([from + '/**/*.d.ts']), dts, js ]) : js; return StreamConvert.toPromise(stream.pipe(gulp.dest(to))); }; return BuildHelper; }(BuildHelperBase_1.BuildHelperBase)); exports.BuildHelper = BuildHelper; (function (BuildHelper) { function inject(promiseFactory) { StreamConvert = stream_to_promise_agnostic_1.streamToPromise(promiseFactory); return Factory; } BuildHelper.inject = inject; var Factory = (function () { function Factory(sourceFolder, destinationFolder, defaults) { if (destinationFolder === void 0) { destinationFolder = './'; } this.sourceFolder = sourceFolder; this.destinationFolder = destinationFolder; this.compilerOptionDefaults = mergeValues_1.default({}, defaults); } Factory.from = function (sourceFolder, defaults) { return new Factory(sourceFolder, null, defaults); }; Factory.fromTo = function (sourceFolder, destinationFolder, defaults) { return new Factory(sourceFolder, destinationFolder, defaults); }; Factory.at = function (path, defaults) { return new Factory(path, path, defaults); }; Factory.defaults = function (options) { return new Factory(null, null, options); }; Factory.prototype.from = function (sourceFolder) { return new Factory(sourceFolder, this.destinationFolder, this.compilerOptionDefaults); }; Factory.prototype.to = function (destinationFolder) { return new Factory(this.sourceFolder, destinationFolder, this.compilerOptionDefaults); }; Factory.prototype.at = function (targetFolder) { return new Factory(targetFolder, targetFolder, this.compilerOptionDefaults); }; Factory.prototype.defaults = function (options) { return new Factory(this.sourceFolder, this.destinationFolder, options); }; Factory.prototype.init = function (toSubFolder, target, module) { var source = this.sourceFolder; if (!source) throw new Error("Need to define a source folder before initializing."); var dest = this.destinationFolder; if (!dest) throw new Error("Need to define a base destination folder before initializing."); if (toSubFolder) { if (!endsWith(dest, '/')) dest += '/'; dest += toSubFolder; } var options = {}; if (target) options.target = target; if (module) options.module = module; return new BuildHelper(source, dest, mergeValues_1.default(options, this.compilerOptionDefaults)); }; Factory.prototype.addOptions = function (value) { return new Factory(this.sourceFolder, this.destinationFolder, mergeValues_1.default(value, this.compilerOptionDefaults)); }; Factory.prototype.target = function (value) { return this.addOptions({ target: value }); }; Factory.prototype.module = function (value) { return this.addOptions({ module: value }); }; return Factory; }()); BuildHelper.Factory = Factory; })(BuildHelper = exports.BuildHelper || (exports.BuildHelper = {})); exports.BuildHelper = BuildHelper; //# sourceMappingURL=BuildHelper.js.map