now supporting dependency checks
This commit is contained in:
		
							
								
								
									
										3
									
								
								dist/npmts.check.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								dist/npmts.check.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
/// <reference types="q" />
 | 
			
		||||
import * as plugins from "./npmts.plugins";
 | 
			
		||||
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
 | 
			
		||||
							
								
								
									
										87
									
								
								dist/npmts.check.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								dist/npmts.check.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
"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;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								dist/npmts.options.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/npmts.options.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,4 @@
 | 
			
		||||
/// <reference types="q" />
 | 
			
		||||
import "typings-global";
 | 
			
		||||
import plugins = require("./npmts.plugins");
 | 
			
		||||
export declare let isCi: () => any;
 | 
			
		||||
export declare var run: (configArg: any) => plugins.Q.Promise<{}>;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								dist/npmts.options.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/npmts.options.js
									
									
									
									
										vendored
									
									
								
							@@ -2,9 +2,6 @@
 | 
			
		||||
require("typings-global");
 | 
			
		||||
var plugins = require("./npmts.plugins");
 | 
			
		||||
var npmts_promisechain_1 = require("./npmts.promisechain");
 | 
			
		||||
exports.isCi = function () {
 | 
			
		||||
    return plugins.smartci.check.isCi();
 | 
			
		||||
};
 | 
			
		||||
exports.run = function (configArg) {
 | 
			
		||||
    var done = plugins.Q.defer();
 | 
			
		||||
    var config = configArg;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								dist/npmts.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/npmts.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,13 +1,13 @@
 | 
			
		||||
import "typings-global";
 | 
			
		||||
export import beautylog = require("beautylog");
 | 
			
		||||
export declare let gulp: any;
 | 
			
		||||
export declare let depcheck: any;
 | 
			
		||||
export import gulp = require("gulp");
 | 
			
		||||
export declare let g: {
 | 
			
		||||
    babel: any;
 | 
			
		||||
    istanbul: any;
 | 
			
		||||
    gFunction: any;
 | 
			
		||||
    injectModules: any;
 | 
			
		||||
    mocha: any;
 | 
			
		||||
    replace: any;
 | 
			
		||||
    sourcemaps: any;
 | 
			
		||||
    typedoc: any;
 | 
			
		||||
};
 | 
			
		||||
@@ -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 declare let smartci: any;
 | 
			
		||||
export import smartcli = require("smartcli");
 | 
			
		||||
export import smartcov = require("smartcov");
 | 
			
		||||
export import smartenv = require("smartenv");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								dist/npmts.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/npmts.plugins.js
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,7 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
require("typings-global");
 | 
			
		||||
exports.beautylog = require("beautylog");
 | 
			
		||||
exports.depcheck = require("depcheck");
 | 
			
		||||
exports.gulp = require("gulp");
 | 
			
		||||
exports.g = {
 | 
			
		||||
    babel: require("gulp-babel"),
 | 
			
		||||
@@ -8,7 +9,6 @@ exports.g = {
 | 
			
		||||
    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")
 | 
			
		||||
};
 | 
			
		||||
@@ -18,7 +18,6 @@ exports.projectinfo = require("projectinfo");
 | 
			
		||||
exports.path = require("path");
 | 
			
		||||
exports.Q = require("q");
 | 
			
		||||
exports.shelljs = require("shelljs");
 | 
			
		||||
exports.smartci = require("smartci");
 | 
			
		||||
exports.smartcli = require("smartcli");
 | 
			
		||||
exports.smartcov = require("smartcov");
 | 
			
		||||
exports.smartenv = require("smartenv");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/npmts.promisechain.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/npmts.promisechain.js
									
									
									
									
										vendored
									
									
								
							@@ -3,6 +3,7 @@ require("typings-global");
 | 
			
		||||
var plugins = require("./npmts.plugins");
 | 
			
		||||
exports.npmtsOra = new plugins.beautylog.Ora("setting up TaskChain", "cyan");
 | 
			
		||||
var NpmtsAssets = require("./npmts.assets");
 | 
			
		||||
var NpmtsCheck = require("./npmts.check");
 | 
			
		||||
var NpmtsClean = require("./npmts.clean");
 | 
			
		||||
var NpmtsCompile = require("./npmts.compile");
 | 
			
		||||
var NpmtsConfigFile = require("./npmts.configfile");
 | 
			
		||||
@@ -15,6 +16,7 @@ exports.promisechain = function (argvArg) {
 | 
			
		||||
    NpmtsConfigFile.run(argvArg)
 | 
			
		||||
        .then(NpmtsOptions.run)
 | 
			
		||||
        .then(NpmtsClean.run)
 | 
			
		||||
        .then(NpmtsCheck.run)
 | 
			
		||||
        .then(NpmtsCompile.run)
 | 
			
		||||
        .then(NpmtsAssets.run)
 | 
			
		||||
        .then(NpmtsTypeDoc.run)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							@@ -29,29 +29,27 @@
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://gitlab.com/pushrocks/npmts#readme",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@types/gulp": "^3.8.28",
 | 
			
		||||
    "@types/minimatch": "^2.0.28",
 | 
			
		||||
    "@types/q": "^0.0.27",
 | 
			
		||||
    "@types/shelljs": "^0.3.27",
 | 
			
		||||
    "babel-preset-es2015": "^6.9.0",
 | 
			
		||||
    "beautylog": "5.0.18",
 | 
			
		||||
    "depcheck": "^0.6.4",
 | 
			
		||||
    "early": "^2.0.13",
 | 
			
		||||
    "gulp": "3.9.1",
 | 
			
		||||
    "gulp-babel": "^6.1.2",
 | 
			
		||||
    "gulp-concat": "^2.6.0",
 | 
			
		||||
    "gulp-function": "^1.3.6",
 | 
			
		||||
    "gulp-if": "^2.0.1",
 | 
			
		||||
    "gulp-inject-modules": "^1.0.0",
 | 
			
		||||
    "gulp-istanbul": "^1.0.0",
 | 
			
		||||
    "gulp-mocha": "^2.2.0",
 | 
			
		||||
    "gulp-replace": "^0.5.4",
 | 
			
		||||
    "gulp-sourcemaps": "^1.6.0",
 | 
			
		||||
    "gulp-typedoc": "^2.0.0",
 | 
			
		||||
    "lodash": "^4.14.0",
 | 
			
		||||
    "npmextra": "^1.0.8",
 | 
			
		||||
    "projectinfo": "1.0.3",
 | 
			
		||||
    "q": "^1.4.1",
 | 
			
		||||
    "shelljs": "^0.7.2",
 | 
			
		||||
    "smartci": "0.0.1",
 | 
			
		||||
    "shelljs": "^0.7.3",
 | 
			
		||||
    "smartcli": "1.0.4",
 | 
			
		||||
    "smartcov": "0.0.9",
 | 
			
		||||
    "smartenv": "1.2.5",
 | 
			
		||||
@@ -59,7 +57,7 @@
 | 
			
		||||
    "smartpath": "3.2.2",
 | 
			
		||||
    "smartstring": "^2.0.15",
 | 
			
		||||
    "source-map-support": "^0.4.2",
 | 
			
		||||
    "tsn": "^1.0.9",
 | 
			
		||||
    "tsn": "^1.0.10",
 | 
			
		||||
    "typedoc": "^0.4.4",
 | 
			
		||||
    "typescript": "^2.0.0-dev.20160630",
 | 
			
		||||
    "typings-global": "*"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										81
									
								
								ts/npmts.check.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								ts/npmts.check.ts
									
									
									
									
									
										Normal 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;
 | 
			
		||||
}
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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");
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user