gulpTasks-tsLint.js 2.1 KB

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