123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // Import Dependencies.
- const gulp = require("gulp");
- const path = require("path");
- const depcruise = require('dependency-cruiser');
- const colorConsole = require('../../NodeHelpers/colorConsole');
- // Read the full config.
- const config = require("../../Config/config.js");
- /*
- * TsLint all typescript files from the src directory.
- */
- const dependencies = function(settings, moduleName, cb) {
- var cruiseResult = depcruise.cruise(
- [path.relative(path.resolve("./"), settings.computed.mainDirectory)],
- {
- validate: true,
- ruleSet: {
- forbidden: [{
- name: 'no-circular',
- comment: 'circular dependencies will make you dizzy',
- severity: 'error',
- from: {},
- to: {
- circular: true
- }
- }],
- options: {
- doNotFollow: "node_modules",
- tsConfig: {
- fileName: settings.computed.tsConfigPath
- },
- webpackConfig: {
- fileName: settings.computed.webpackConfigPath
- }
- }
- }
- });
- if (cruiseResult.summary.error > 0) {
- var errorCount = cruiseResult.summary.error;
- if (errorCount > 0) {
- colorConsole.error(`New circular dependencies in ${moduleName.cyan}: ${("" + errorCount).red}`);
- for (let error of cruiseResult.summary.violations) {
- colorConsole.error(` From: '${error.from.replace(/\.\.\//g, "").yellow}' To: '${error.to.replace(/\.\.\//g, "").yellow}'`);
- }
- process.exit(1);
- }
- }
- colorConsole.success("No New circular dependencies.");
- cb();
- }
- /**
- * Dynamic module linting for external library (mat, post processes, ...).
- */
- config.lintModules.map(function(module) {
- // Task will be like moduleName-circularDependencies
- gulp.task(module + "-circularDependencies", function(cb) {
- var settings = config[module];
- dependencies(settings, module, cb);
- });
- });
- /**
- * Full Librairies tsLint.
- */
- gulp.task("circularDependencies",
- gulp.series(config.lintModules.map((module) => {
- return module + "-circularDependencies";
- })
- ));
|