gulpTasks-tsLint.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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.json");
  19. /*
  20. * TsLint all typescript files from the src directory.
  21. */
  22. gulp.task("typescript-tsLint", function() {
  23. const dtsFilter = filter(['**', '!**/*.d.ts'], { restore: false });
  24. return gulp.src(config.typescript)
  25. .pipe(dtsFilter)
  26. .pipe(gulpTslint(tsLintConfig))
  27. .pipe(gulpTslint.report());
  28. });
  29. /*
  30. * TsLint all typescript files from the src directory.
  31. */
  32. var tsLintExternalLibrary = function(library, settings, watch) {
  33. if (library.files && library.files.length) {
  34. return gulp.src(library.files, { base: settings.build.srcOutputDirectory })
  35. .pipe(gulpTslint(tsLintConfig))
  36. .pipe(gulpTslint.report());
  37. }
  38. else {
  39. return gulp.src((settings.build.srcDirectory || settings.build.srcOutputDirectory) + "/**/*.ts")
  40. .pipe(gulpTslint(tsLintConfig))
  41. .pipe(gulpTslint.report());
  42. }
  43. }
  44. /**
  45. * Dynamic module linting for external library (mat, post processes, ...).
  46. */
  47. config.modules.map(function(module) {
  48. // Task will be like moduleName-tsLint
  49. gulp.task(module + "-tsLint", function() {
  50. var settings = config[module];
  51. var tasks = settings.libraries.map(function(library) {
  52. return tsLintExternalLibrary(library, settings, false);
  53. });
  54. let mergedTasks = merge2(tasks);
  55. return mergedTasks;
  56. });
  57. });
  58. /**
  59. * Full Librairies tsLint.
  60. */
  61. gulp.task("typescript-libraries-tsLint",
  62. gulp.series(config.modules.map((module) => {
  63. return module + "-tsLint";
  64. })
  65. ));
  66. /**
  67. * Full TsLint.
  68. */
  69. gulp.task("tsLint", gulp.series("typescript-tsLint", "typescript-libraries-tsLint"));