gulpTasks-librariesES6.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // Gulp Tools
  2. var gulp = require("gulp");
  3. var path = require("path");
  4. var shelljs = require("shelljs");
  5. // Gulp Helpers
  6. var rmDir = require("../../NodeHelpers/rmDir");
  7. // Import Build Config
  8. var config = require("../../Config/config.js");
  9. /**
  10. * Clean folders.
  11. */
  12. var clean = function(settings, cb) {
  13. rmDir(settings.computed.intermediateES6PackageDirectory);
  14. rmDir(settings.computed.ES6PackageDirectory);
  15. cb();
  16. }
  17. /**
  18. * Copy Sources.
  19. */
  20. var source = function(settings) {
  21. return gulp.src(settings.computed.mainDirectory + "/**/*")
  22. .pipe(gulp.dest(settings.computed.intermediateES6PackageDirectory));
  23. }
  24. /**
  25. * Copy dependencies.
  26. */
  27. var dep = function(settings) {
  28. const copyPaths = []
  29. // Add tsconfig rules.
  30. copyPaths.push(path.join(config.computed.rootFolder, "tsconfigRules.json"));
  31. const tsconfig = require(settings.computed.tsConfigPath);
  32. for (let pathName in tsconfig.compilerOptions.paths) {
  33. var paths = tsconfig.compilerOptions.paths[pathName];
  34. for (let dep of paths) {
  35. const fullPath = path.resolve(settings.computed.mainDirectory,
  36. tsconfig.compilerOptions.baseUrl,
  37. dep);
  38. copyPaths.push(fullPath);
  39. }
  40. }
  41. return gulp.src(copyPaths, { base: config.computed.rootFolder })
  42. .pipe(gulp.dest(config.computed.intermediateES6Package));
  43. }
  44. /**
  45. * TSC Build.
  46. */
  47. var build = function(settings, cb) {
  48. // Launch TSC.
  49. const options = {
  50. cwd: settings.computed.intermediateES6PackageDirectory,
  51. verbose: true
  52. };
  53. let command = `tsc --inlineSources --sourceMap true -t es5 -m esNext --outDir "${settings.computed.ES6PackageDirectory}"`;
  54. command
  55. shelljs.exec(command, options, function(code, stdout, stderr) {
  56. if (stderr) {
  57. console.log(stderr);
  58. }
  59. if (stdout) {
  60. console.log(stdout);
  61. }
  62. if (code !== 0) {
  63. cb("TSC Failed.")
  64. }
  65. else {
  66. cb();
  67. }
  68. });
  69. }
  70. /**
  71. * Dynamic es 6 module creation.
  72. */
  73. function buildES6Library(settings) {
  74. // Creates the required tasks.
  75. var tasks = [];
  76. var cleanup = function(cb) { return clean(settings, cb); };
  77. var copySource = function() { return source(settings); };
  78. var dependencies = function() { return dep(settings); };
  79. var buildes6 = function(cb) { return build(settings, cb) };
  80. tasks.push(cleanup, copySource, dependencies, buildes6);
  81. return gulp.series.apply(this, tasks);
  82. }
  83. /**
  84. * Dynamic es 6 module creation.
  85. */
  86. config.modules.map(function(module) {
  87. const settings = config[module];
  88. gulp.task(module + "-es6", buildES6Library(settings));
  89. });