gulpTasks-importLint.js 1.8 KB

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