gulpTasks-importLint.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. isCore: settings.isCore,
  28. uncheckedLintImports: settings.build.uncheckedLintImports
  29. }));
  30. }
  31. /**
  32. * Dynamic module linting for library (mat, post processes, ...).
  33. */
  34. var lintLibrary = function(settings) {
  35. var tasks = [];
  36. var shaders = function() { return buildShaders(settings); };
  37. var lint = function() { return importLintLibrary(settings); };
  38. tasks.push(shaders, lint);
  39. return gulp.series.apply(this, tasks);
  40. };
  41. /**
  42. * Dynamic module linting for library (mat, post processes, ...).
  43. */
  44. config.modules.map(function(module) {
  45. const settings = config[module];
  46. gulp.task(module + "-importLint", lintLibrary(settings));
  47. });
  48. /**
  49. * Full Librairies importLint.
  50. */
  51. gulp.task("typescript-libraries-importLint",
  52. gulp.series(config.modules.map((module) => {
  53. return module + "-importLint";
  54. })
  55. ));