gulpTasks-watchCore.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. let shelljs = require('shelljs');
  4. var del = require("del");
  5. // Import Helpers.
  6. var processShaders = require("../helpers/gulp-processShaders");
  7. var uncommentShaders = require('../helpers/gulp-removeShaderComments');
  8. var rmDir = require("../../NodeHelpers/rmDir");
  9. // Read the full config.
  10. var config = require("../../Config/config.js");
  11. // Constants
  12. var module = "core";
  13. /**
  14. * Process shader ts files.
  15. */
  16. gulp.task("watchCore-cleanShaders", function startWatch() {
  17. var settings = config[module].computed;
  18. // Clean shaders.
  19. return del(settings.shaderTSGlob, { force: true });
  20. });
  21. gulp.task("watchCore-buildShaders", gulp.series("watchCore-cleanShaders", function buildShaders() {
  22. var settings = config[module].computed;
  23. uncommentShaders.displayName = "Uncomment";
  24. processShaders.displayName = "Process";
  25. // Generate shaders.
  26. return gulp.src(settings.shaderGlob)
  27. .pipe(uncommentShaders())
  28. .pipe(processShaders(true));
  29. }));
  30. /**
  31. * Watch ts files and fire repective tasks.
  32. */
  33. gulp.task("watchCore", gulp.series("watchCore-buildShaders", function watch() {
  34. var settings = config[module].computed;
  35. var library = config[module].libraries[0];
  36. // Generate output path.
  37. var outputDirectory = settings.localDevES6Directory;
  38. // Clean Folder.
  39. rmDir(outputDirectory);
  40. // Launch TSC.
  41. const options = {
  42. cwd: settings.srcDirectory,
  43. async: true,
  44. verbose: true
  45. };
  46. shelljs.exec(`node "${config.computed.tscPath}" --importHelpers false --isolatedModules true --declaration false --target es5 --module es2015 --outDir "${outputDirectory}" -w`, options, function(code, stdout, stderr) {
  47. if (stderr) {
  48. console.log(stderr);
  49. }
  50. if (stdout) {
  51. console.log(stdout);
  52. }
  53. });
  54. // Launch shader watch.
  55. var watch = gulp.watch(settings.shaderGlob, { interval: 1000 }, function() {
  56. console.log(library.output + ": Shaders.");
  57. })
  58. watch.on("add", (event) => {
  59. return gulp.src(event)
  60. .pipe(uncommentShaders())
  61. .pipe(processShaders(true));
  62. });
  63. watch.on("change", (event) => {
  64. return gulp.src(event)
  65. .pipe(uncommentShaders())
  66. .pipe(processShaders(true));
  67. });
  68. return Promise.resolve();
  69. }));