now supporting dependency checks

This commit is contained in:
2016-07-28 03:10:51 +02:00
parent 433fad502d
commit 3317168d12
12 changed files with 184 additions and 22 deletions

81
ts/npmts.check.ts Normal file
View File

@ -0,0 +1,81 @@
import * as plugins from "./npmts.plugins";
import * as paths from "./npmts.paths";
import {npmtsOra} from "./npmts.promisechain";
let checkProjectTypings = (configArg) => {
let done = plugins.Q.defer();
done.resolve(configArg);
return done.promise;
};
let checkDependencies = (configArg) => {
let done = plugins.Q.defer();
const options = {
ignoreBinPackage: false, // ignore the packages with bin entry
ignoreDirs: [ // folder with these names will be ignored
'test',
'dist',
'bower_components'
],
ignoreMatches: [ // ignore dependencies that matches these globs
"@types/*",
"babel-preset-*"
],
parsers: { // the target parsers
'*.ts': plugins.depcheck.parser.typescript,
},
detectors: [ // the target detectors
plugins.depcheck.detector.requireCallExpression,
plugins.depcheck.detector.importDeclaration
],
specials: [ // the target special parsers
plugins.depcheck.special.eslint,
plugins.depcheck.special.webpack
],
};
plugins.depcheck(paths.cwd, options, (unused) => {
for (let item of unused.dependencies){
plugins.beautylog.warn(`Watch out: unused dependency ${item.red}`);
};
for (let item of unused.devDependencies){
plugins.beautylog.log(`unused devDependency ${item.red}`);
};
for (let item of unused.missing){
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 (let item of unused.using){
console.log(item);
};
for(let item of unused.invalidFiles){
plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`);
};
for(let item of unused.invalidDirs){
plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`);
};
done.resolve(configArg);
});
return done.promise;
};
let checkNodeVersion = (configArg) => {
let done = plugins.Q.defer();
done.resolve(configArg);
return done.promise;
}
export let run = (configArg) => {
let done = plugins.Q.defer();
npmtsOra.text("running project checks..."),
checkProjectTypings(configArg)
.then(checkDependencies)
.then(checkNodeVersion)
.then(done.resolve);
return done.promise;
}

View File

@ -2,10 +2,6 @@ import "typings-global";
import plugins = require("./npmts.plugins");
import {npmtsOra} from "./npmts.promisechain";
export let isCi = function(){
return plugins.smartci.check.isCi();
};
export var run = function(configArg){
var done = plugins.Q.defer();
var config = configArg;

View File

@ -1,13 +1,13 @@
import "typings-global";
export import beautylog = require("beautylog");
export let gulp = require("gulp");
export let depcheck = require("depcheck");
export import gulp = require("gulp");
export let g = {
babel: require("gulp-babel"),
istanbul: require("gulp-istanbul"),
gFunction: require("gulp-function"),
injectModules: require("gulp-inject-modules"),
mocha: require("gulp-mocha"),
replace: require("gulp-replace"),
sourcemaps: require("gulp-sourcemaps"),
typedoc: require("gulp-typedoc")
};
@ -17,7 +17,6 @@ export import projectinfo = require("projectinfo");
export import path = require("path");
export import Q = require("q");
export import shelljs = require("shelljs");
export let smartci = require("smartci");
export import smartcli = require("smartcli");
export import smartcov = require("smartcov");
export import smartenv = require("smartenv");

View File

@ -5,6 +5,7 @@ import {Ora} from "beautylog"
export let npmtsOra = new plugins.beautylog.Ora("setting up TaskChain","cyan");
import NpmtsAssets = require("./npmts.assets");
import NpmtsCheck = require("./npmts.check");
import NpmtsClean = require("./npmts.clean");
import NpmtsCompile = require("./npmts.compile");
import NpmtsConfigFile = require("./npmts.configfile");
@ -18,6 +19,7 @@ export let promisechain = function(argvArg){
NpmtsConfigFile.run(argvArg)
.then(NpmtsOptions.run)
.then(NpmtsClean.run)
.then(NpmtsCheck.run)
.then(NpmtsCompile.run)
.then(NpmtsAssets.run)
.then(NpmtsTypeDoc.run)