gulpTasks-watchCore.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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(`tsc --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. watch.on("unlink", (event) => {
  69. return gulp.src(event)
  70. .pipe(uncommentShaders())
  71. .pipe(processShaders(true));
  72. });
  73. return Promise.resolve();
  74. }));