123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // Gulp Tools
- var gulp = require("gulp");
- var path = require("path");
- var shelljs = require("shelljs");
- // Gulp Helpers
- var rmDir = require("../../NodeHelpers/rmDir");
- // Import Build Config
- var config = require("../../Config/config.js");
- /**
- * Clean folders.
- */
- var clean = function(settings, cb) {
- rmDir(settings.computed.intermediateES6PackageDirectory);
- rmDir(settings.computed.ES6PackageDirectory);
- cb();
- }
- /**
- * Copy Sources.
- */
- var source = function(settings) {
- return gulp.src(settings.computed.mainDirectory + "/**/*")
- .pipe(gulp.dest(settings.computed.intermediateES6PackageDirectory));
- }
- /**
- * Copy dependencies.
- */
- var dep = function(settings) {
- const copyPaths = []
- // Add tsconfig rules.
- copyPaths.push(path.join(config.computed.rootFolder, "tsconfigRules.json"));
- const tsconfig = require(settings.computed.tsConfigPath);
- for (let pathName in tsconfig.compilerOptions.paths) {
- var paths = tsconfig.compilerOptions.paths[pathName];
- for (let dep of paths) {
- const fullPath = path.resolve(settings.computed.mainDirectory,
- tsconfig.compilerOptions.baseUrl,
- dep);
- copyPaths.push(fullPath);
- }
- }
- return gulp.src(copyPaths, { base: config.computed.rootFolder })
- .pipe(gulp.dest(config.computed.intermediateES6Package));
- }
- /**
- * TSC Build.
- */
- var build = function(settings, cb) {
- // Launch TSC.
- const options = {
- cwd: settings.computed.intermediateES6PackageDirectory,
- verbose: true
- };
- let command = `tsc --inlineSources --sourceMap true -t es5 -m esNext --outDir "${settings.computed.ES6PackageDirectory}"`;
- command
- shelljs.exec(command, options, function(code, stdout, stderr) {
- if (stderr) {
- console.log(stderr);
- }
- if (stdout) {
- console.log(stdout);
- }
- if (code !== 0) {
- cb("TSC Failed.")
- }
- else {
- cb();
- }
- });
- }
- /**
- * Dynamic es 6 module creation.
- */
- function buildES6Library(settings) {
- // Creates the required tasks.
- var tasks = [];
- var cleanup = function(cb) { return clean(settings, cb); };
- var copySource = function() { return source(settings); };
- var dependencies = function() { return dep(settings); };
- var buildes6 = function(cb) { return build(settings, cb) };
- tasks.push(cleanup, copySource, dependencies, buildes6);
- return gulp.series.apply(this, tasks);
- }
- /**
- * Dynamic es 6 module creation.
- */
- config.modules.map(function(module) {
- const settings = config[module];
- gulp.task(module + "-es6", buildES6Library(settings));
- });
|