gulpTasks-importLint.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. var filter = require('gulp-filter');
  4. // Helpers.
  5. var validateImports = require("../helpers/gulp-validateImports");
  6. var uncommentShaders = require('../helpers/gulp-removeShaderComments');
  7. var processShaders = require("../helpers/gulp-processShaders");
  8. // Read the full config.
  9. var config = require("../../Config/config.js");
  10. /**
  11. * Create shader ts files.
  12. */
  13. var buildShaders = function(settings) {
  14. return gulp.src(settings.computed.shaderGlob)
  15. .pipe(uncommentShaders())
  16. .pipe(processShaders(settings.isCore));
  17. }
  18. /*
  19. * ImportLint all typescript files from the src directory.
  20. */
  21. var importLintLibrary = function(settings) {
  22. const fxFilter = filter(['**', '!**/*.fragment.ts', '!**/*.vertex.ts', '!**/ShadersInclude/**'], { restore: false });
  23. return gulp.src(settings.computed.tsGlob)
  24. .pipe(fxFilter)
  25. .pipe(validateImports({
  26. externals: settings.build.umd.processDeclaration.classMap
  27. }));
  28. }
  29. /**
  30. * Dynamic module linting for library (mat, post processes, ...).
  31. */
  32. var lintLibrary = function(settings) {
  33. var tasks = [];
  34. var shaders = function() { return buildShaders(settings); };
  35. var lint = function() { return importLintLibrary(settings); };
  36. tasks.push(shaders, lint);
  37. return gulp.series.apply(this, tasks);
  38. };
  39. /**
  40. * Dynamic module linting for library (mat, post processes, ...).
  41. */
  42. config.lintModules.map(function(module) {
  43. const settings = config[module];
  44. gulp.task(module + "-importLint", lintLibrary(settings));
  45. });
  46. /**
  47. * Full Librairies importLint.
  48. */
  49. gulp.task("typescript-libraries-importLint",
  50. gulp.series(config.lintModules.map((module) => {
  51. return module + "-importLint";
  52. })
  53. ));