88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
|
"use strict";
|
||
|
var plugins = require("./npmts.plugins");
|
||
|
var paths = require("./npmts.paths");
|
||
|
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||
|
var checkProjectTypings = function (configArg) {
|
||
|
var done = plugins.Q.defer();
|
||
|
done.resolve(configArg);
|
||
|
return done.promise;
|
||
|
};
|
||
|
var checkDependencies = function (configArg) {
|
||
|
var done = plugins.Q.defer();
|
||
|
var options = {
|
||
|
ignoreBinPackage: false,
|
||
|
ignoreDirs: [
|
||
|
'test',
|
||
|
'dist',
|
||
|
'bower_components'
|
||
|
],
|
||
|
ignoreMatches: [
|
||
|
"@types/*",
|
||
|
"babel-preset-*"
|
||
|
],
|
||
|
parsers: {
|
||
|
'*.ts': plugins.depcheck.parser.typescript,
|
||
|
},
|
||
|
detectors: [
|
||
|
plugins.depcheck.detector.requireCallExpression,
|
||
|
plugins.depcheck.detector.importDeclaration
|
||
|
],
|
||
|
specials: [
|
||
|
plugins.depcheck.special.eslint,
|
||
|
plugins.depcheck.special.webpack
|
||
|
],
|
||
|
};
|
||
|
plugins.depcheck(paths.cwd, options, function (unused) {
|
||
|
for (var _i = 0, _a = unused.dependencies; _i < _a.length; _i++) {
|
||
|
var item = _a[_i];
|
||
|
plugins.beautylog.warn("Watch out: unused dependency " + item.red);
|
||
|
}
|
||
|
;
|
||
|
for (var _b = 0, _c = unused.devDependencies; _b < _c.length; _b++) {
|
||
|
var item = _c[_b];
|
||
|
plugins.beautylog.log("unused devDependency " + item.red);
|
||
|
}
|
||
|
;
|
||
|
for (var _d = 0, _e = unused.missing; _d < _e.length; _d++) {
|
||
|
var item = _e[_d];
|
||
|
plugins.beautylog.error("unused devDependency " + item.red);
|
||
|
}
|
||
|
;
|
||
|
if (unused.missing.length > 0) {
|
||
|
plugins.beautylog.info("exiting due to missing dependencies in package.json");
|
||
|
process.exit(1);
|
||
|
}
|
||
|
for (var _f = 0, _g = unused.using; _f < _g.length; _f++) {
|
||
|
var item = _g[_f];
|
||
|
console.log(item);
|
||
|
}
|
||
|
;
|
||
|
for (var _h = 0, _j = unused.invalidFiles; _h < _j.length; _h++) {
|
||
|
var item = _j[_h];
|
||
|
plugins.beautylog.warn("Watch out: could not parse file " + item.red);
|
||
|
}
|
||
|
;
|
||
|
for (var _k = 0, _l = unused.invalidDirs; _k < _l.length; _k++) {
|
||
|
var item = _l[_k];
|
||
|
plugins.beautylog.warn("Watch out: could not parse directory " + item.red);
|
||
|
}
|
||
|
;
|
||
|
done.resolve(configArg);
|
||
|
});
|
||
|
return done.promise;
|
||
|
};
|
||
|
var checkNodeVersion = function (configArg) {
|
||
|
var done = plugins.Q.defer();
|
||
|
done.resolve(configArg);
|
||
|
return done.promise;
|
||
|
};
|
||
|
exports.run = function (configArg) {
|
||
|
var done = plugins.Q.defer();
|
||
|
npmts_promisechain_1.npmtsOra.text("running project checks..."),
|
||
|
checkProjectTypings(configArg)
|
||
|
.then(checkDependencies)
|
||
|
.then(checkNodeVersion)
|
||
|
.then(done.resolve);
|
||
|
return done.promise;
|
||
|
};
|