gulpTasks-tsLint.js 1.4 KB

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