gulpTasks-tsLint.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Import Dependencies.
  2. var gulp = require("gulp");
  3. var gulpTslint = require("gulp-tslint");
  4. var minimist = require("minimist");
  5. var filter = require('gulp-filter');
  6. // Parse Command Line.
  7. var commandLineOptions = minimist(process.argv.slice(2), {
  8. boolean: ["tsLintFix"]
  9. });
  10. // Define Constants
  11. var tsLintConfig = {
  12. formatter: "stylish",
  13. configuration: "../../tslint.json",
  14. fix: commandLineOptions.tsLintFix
  15. }
  16. // Read the full config.
  17. var config = require("../../Config/config.js");
  18. /*
  19. * TsLint all typescript files from the src directory.
  20. */
  21. var tsLintExternalLibrary = 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(gulpTslint(tsLintConfig))
  26. .pipe(gulpTslint.report());
  27. }
  28. /**
  29. * Dynamic module linting for external library (mat, post processes, ...).
  30. */
  31. config.lintModules.map(function(module) {
  32. // Task will be like moduleName-tsLint
  33. gulp.task(module + "-tsLint", function() {
  34. var settings = config[module];
  35. return tsLintExternalLibrary(settings, false);
  36. });
  37. });
  38. /**
  39. * Full Librairies tsLint.
  40. */
  41. gulp.task("typescript-libraries-tsLint",
  42. gulp.series(config.lintModules.map((module) => {
  43. return module + "-tsLint";
  44. })
  45. ));