Compare commits

...

32 Commits

Author SHA1 Message Date
beac49d5d2 7.2.8 2017-07-28 01:21:41 +02:00
25993bd66f update --nocoverage option 2017-07-28 01:21:37 +02:00
83b324054a 7.2.7 2017-07-23 15:15:26 +02:00
2c574fe015 update readme 2017-07-23 15:15:19 +02:00
3b50365ea9 7.2.6 2017-07-23 15:06:47 +02:00
e6f487eeee update readme 2017-07-23 15:06:43 +02:00
07c100ae44 7.2.5 2017-07-23 15:03:40 +02:00
55888cce89 now supports propper tracing of sourcemaps for coverage 2017-07-23 15:03:36 +02:00
d4c66af0d8 7.2.4 2017-07-20 17:51:44 +02:00
9359b5f7e9 update dependencies 2017-07-20 17:51:41 +02:00
87c0ec5728 7.2.3 2017-07-19 16:04:14 +02:00
aeb79f053f update dependencies 2017-07-19 16:04:09 +02:00
e01ecb9369 7.2.2 2017-07-18 15:13:18 +02:00
fd29434fa6 update dependencies 2017-07-18 15:13:14 +02:00
4684b9616c 7.2.1 2017-07-18 14:54:16 +02:00
a2701bc3be upgrade dependencies 2017-07-18 14:54:06 +02:00
425a86b33c 7.2.0 2017-07-18 14:41:55 +02:00
20631eb0a8 support SHELL PATH distributions in tests 2017-07-18 14:41:49 +02:00
27287d24fb 7.1.9 2017-06-30 18:55:16 +02:00
1b2393c7ed update to latest dependencies 2017-06-30 18:55:14 +02:00
330b0527c5 update to latest dependencies 2017-06-30 17:49:08 +02:00
4485b5bfc6 7.1.8 2017-06-23 16:40:02 +02:00
cf6f636d3e Merge branch 'master' of gitlab.com:gitzone/npmts 2017-06-23 16:39:27 +02:00
37e726a45f 7.1.7 2017-06-23 16:39:04 +02:00
0f0f2dd4ed Fix --nochecks option
See merge request !6
2017-06-21 18:54:29 +00:00
9033eede2c Fix --nochecks option 2017-06-21 18:54:28 +00:00
e65e7da26b 7.1.6 2017-06-17 11:10:55 +02:00
ef5c5eb2b8 update dependencies 2017-06-17 11:10:53 +02:00
ed156e6de8 7.1.5 2017-06-17 10:47:10 +02:00
d889a20572 now allows the setting of a better config for how tests are run 2017-06-17 10:47:07 +02:00
da1ec0329f 7.1.4 2017-06-16 16:12:45 +02:00
95e3f9cb10 add command line options --nochecks and --nocoverage 2017-06-16 16:12:42 +02:00
12 changed files with 3541 additions and 322 deletions

View File

@ -1,3 +1,4 @@
import { ProjectinfoNpm } from 'projectinfo'; import { ProjectinfoNpm } from 'projectinfo';
import { INpmtsConfig } from '../npmts.config';
export declare let projectInfo: ProjectinfoNpm; export declare let projectInfo: ProjectinfoNpm;
export declare let run: (configArg: any) => Promise<{}>; export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;

View File

@ -1,4 +1,12 @@
"use strict"; "use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const q = require("smartq"); const q = require("smartq");
const projectinfo_1 = require("projectinfo"); const projectinfo_1 = require("projectinfo");
@ -107,23 +115,17 @@ let checkNodeVersion = (configArg) => {
done.resolve(configArg); done.resolve(configArg);
return done.promise; return done.promise;
}; };
exports.run = (configArg) => { exports.run = (configArg) => __awaiter(this, void 0, void 0, function* () {
let done = q.defer();
plugins.beautylog.ora.text('Check Module: ...'); plugins.beautylog.ora.text('Check Module: ...');
// check cli
if (configArg.argv.nocheck) {
configArg.checkDependencies = false;
}
if (configArg.checkDependencies) { if (configArg.checkDependencies) {
checkProjectTypings(configArg) configArg = yield checkProjectTypings(configArg);
.then(checkDependencies) configArg = yield checkDependencies(configArg);
.then(checkDevDependencies) configArg = yield checkDevDependencies(configArg);
.then(checkNodeVersion) configArg = yield checkNodeVersion(configArg);
.then(done.resolve) return configArg;
.catch((err) => { console.log(err); });
} }
else { else {
done.resolve(configArg); configArg = yield checkProjectTypings(configArg);
return configArg;
} }
return done.promise; });
};

3
dist/mod02/index.js vendored
View File

@ -24,6 +24,7 @@ let tap = function (configArg) {
* the TabBuffer for npmts * the TabBuffer for npmts
*/ */
let npmtsTapBuffer = new plugins.tapbuffer.TabBuffer(); let npmtsTapBuffer = new plugins.tapbuffer.TabBuffer();
npmtsTapBuffer.setConfig(configArg.testConfig);
/** /**
* handle the testable files * handle the testable files
*/ */
@ -109,7 +110,7 @@ exports.run = function (configArg) {
plugins.beautylog.ora.text('now starting tests'); plugins.beautylog.ora.text('now starting tests');
plugins.beautylog.ora.end(); plugins.beautylog.ora.end();
plugins.beautylog.log('ready for tapbuffer:'); plugins.beautylog.log('ready for tapbuffer:');
if (configArg.coverage) { if (configArg.testConfig.coverage) {
tap(config) tap(config)
.then(handleCoverageData) .then(handleCoverageData)
.then(() => { .then(() => {

View File

@ -1,3 +1,4 @@
import { ITapbufferConfig } from 'tapbuffer';
/** /**
* specifies the different modes available * specifies the different modes available
* default -> uses default options no matterm what * default -> uses default options no matterm what
@ -7,12 +8,12 @@
export declare type npmtsMode = 'default' | 'custom' | 'merge'; export declare type npmtsMode = 'default' | 'custom' | 'merge';
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any; argv: any;
coverage: boolean;
coverageTreshold: number; coverageTreshold: number;
checkDependencies: boolean; checkDependencies: boolean;
mode: npmtsMode; mode: npmtsMode;
test: boolean; test: boolean;
testTs: any; testTs: any;
testConfig: ITapbufferConfig;
ts: any; ts: any;
tsOptions: any; tsOptions: any;
watch: boolean; watch: boolean;

11
dist/npmts.config.js vendored
View File

@ -7,12 +7,15 @@ exports.run = function (argvArg) {
let done = q.defer(); let done = q.defer();
let defaultConfig = { let defaultConfig = {
argv: undefined, argv: undefined,
coverage: true,
coverageTreshold: 70, coverageTreshold: 70,
checkDependencies: true, checkDependencies: true,
mode: 'default', mode: 'default',
test: true, test: true,
testTs: {}, testTs: {},
testConfig: {
parallel: true,
coverage: true
},
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
watch: false, watch: false,
@ -49,6 +52,12 @@ exports.run = function (argvArg) {
if (config.argv.notest) { if (config.argv.notest) {
config.test = false; config.test = false;
} }
if (config.argv.nocoverage) {
config.testConfig.coverage = false;
}
if (config.argv.nochecks) {
config.checkDependencies = false;
}
if (config.argv.watch) { if (config.argv.watch) {
config.watch = true; config.watch = true;
} }

2826
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "7.1.3", "version": "7.2.8",
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.", "description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {
@ -34,35 +34,35 @@
}, },
"homepage": "https://gitlab.com/gitzone/npmts#readme", "homepage": "https://gitlab.com/gitzone/npmts#readme",
"dependencies": { "dependencies": {
"@types/gulp-sourcemaps": "0.0.30", "@types/gulp-sourcemaps": "0.0.31",
"@types/minimatch": "^2.0.29", "@types/minimatch": "^2.0.29",
"@types/through2": "^2.0.33", "@types/through2": "^2.0.33",
"beautylog": "6.1.10", "beautylog": "^6.1.10",
"depcheck": "^0.6.7", "depcheck": "^0.6.7",
"early": "^2.1.1", "early": "^2.1.1",
"gulp-function": "^2.2.9", "gulp-function": "^2.2.9",
"gulp-sourcemaps": "^2.6.0", "gulp-sourcemaps": "^2.6.0",
"gulp-typescript": "^3.1.7", "gulp-typescript": "^3.2.1",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"npmextra": "^2.0.5", "npmextra": "^2.0.8",
"projectinfo": "^3.0.2", "projectinfo": "^3.0.2",
"smartanalytics": "^1.0.6", "smartanalytics": "^1.0.6",
"smartchok": "^1.0.8", "smartchok": "^1.0.11",
"smartcli": "^2.0.7", "smartcli": "^2.0.7",
"smartcov": "^1.0.2", "smartcov": "^1.0.2",
"smarterror": "^1.0.3", "smarterror": "^1.0.3",
"smartfile": "^4.2.17", "smartfile": "^4.2.17",
"smartgulp": "^1.0.6", "smartgulp": "^1.0.6",
"smartpath": "^3.2.8", "smartpath": "^3.2.8",
"smartq": "^1.1.1", "smartq": "^1.1.6",
"smartstream": "^1.0.8", "smartstream": "^1.0.10",
"smartstring": "^2.0.24", "smartstring": "^2.0.24",
"smartsystem": "^1.0.17", "smartsystem": "^1.0.18",
"tapbuffer": "^1.0.13", "tapbuffer": "^1.0.24",
"through2": "^2.0.3", "through2": "^2.0.3",
"tsn": "^2.0.15", "tsn": "^2.0.15",
"typescript": "^2.3.4", "typescript": "^2.4.2",
"typings-global": "^1.0.16" "typings-global": "^1.0.20"
}, },
"devDependencies": {} "devDependencies": {}
} }

View File

@ -33,6 +33,8 @@ npmts will
For more information on how tests are run check out the [tapbuffer module](https://www.npmjs.com/package/tapbuffer). For more information on how tests are run check out the [tapbuffer module](https://www.npmjs.com/package/tapbuffer).
For more information about how to best write tap tests check out the [tapbundle module's linked docs](https://www.npmjs.com/package/tapbundle).
This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze: This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze:
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/) [hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)

View File

@ -1,14 +1,17 @@
import * as q from 'smartq' import * as q from 'smartq'
import { ProjectinfoNpm } from 'projectinfo' import { ProjectinfoNpm } from 'projectinfo'
// interfaces
import { INpmtsConfig } from '../npmts.config'
import * as paths from '../npmts.paths' import * as paths from '../npmts.paths'
import * as plugins from './mod00.plugins' import * as plugins from './mod00.plugins'
export let projectInfo: ProjectinfoNpm export let projectInfo: ProjectinfoNpm
let checkProjectTypings = (configArg) => { let checkProjectTypings = (configArg: INpmtsConfig) => {
let done = q.defer() let done = q.defer<INpmtsConfig>()
plugins.beautylog.ora.text('Check Module: Check Project Typings...') plugins.beautylog.ora.text('Check Module: Check Project Typings...')
projectInfo = new ProjectinfoNpm(paths.cwd) projectInfo = new ProjectinfoNpm(paths.cwd)
if (typeof projectInfo.packageJson.typings === 'undefined') { if (typeof projectInfo.packageJson.typings === 'undefined') {
@ -34,8 +37,8 @@ const depcheckOptions = {
] ]
} }
let checkDependencies = (configArg) => { let checkDependencies = (configArg: INpmtsConfig) => {
let done = q.defer() let done = q.defer<INpmtsConfig>()
plugins.beautylog.ora.text('Check Module: Check Dependencies...') plugins.beautylog.ora.text('Check Module: Check Dependencies...')
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, { let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [ // folder with these names will be ignored ignoreDirs: [ // folder with these names will be ignored
@ -70,8 +73,8 @@ let checkDependencies = (configArg) => {
return done.promise return done.promise
} }
let checkDevDependencies = (configArg) => { let checkDevDependencies = (configArg: INpmtsConfig) => {
let done = q.defer() let done = q.defer<INpmtsConfig>()
plugins.beautylog.ora.text('Check Module: Check devDependencies...') plugins.beautylog.ora.text('Check Module: Check devDependencies...')
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, { let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [ // folder with these names will be ignored ignoreDirs: [ // folder with these names will be ignored
@ -106,31 +109,24 @@ let checkDevDependencies = (configArg) => {
return done.promise return done.promise
} }
let checkNodeVersion = (configArg) => { let checkNodeVersion = (configArg: INpmtsConfig) => {
let done = q.defer() let done = q.defer<INpmtsConfig>()
plugins.beautylog.ora.text('checking node version') plugins.beautylog.ora.text('checking node version')
done.resolve(configArg) done.resolve(configArg)
return done.promise return done.promise
} }
export let run = (configArg) => { export let run = async (configArg: INpmtsConfig) => {
let done = q.defer()
plugins.beautylog.ora.text('Check Module: ...') plugins.beautylog.ora.text('Check Module: ...')
// check cli
if (configArg.argv.nocheck) {
configArg.checkDependencies = false
}
if (configArg.checkDependencies) { if (configArg.checkDependencies) {
checkProjectTypings(configArg) configArg = await checkProjectTypings(configArg)
.then(checkDependencies) configArg = await checkDependencies(configArg)
.then(checkDevDependencies) configArg = await checkDevDependencies(configArg)
.then(checkNodeVersion) configArg = await checkNodeVersion(configArg)
.then(done.resolve) return configArg
.catch((err) => { console.log(err) })
} else { } else {
done.resolve(configArg) configArg = await checkProjectTypings(configArg)
return configArg
} }
return done.promise
} }

View File

@ -20,6 +20,8 @@ let tap = function (configArg: INpmtsConfig) {
*/ */
let npmtsTapBuffer = new plugins.tapbuffer.TabBuffer() let npmtsTapBuffer = new plugins.tapbuffer.TabBuffer()
npmtsTapBuffer.setConfig(configArg.testConfig)
/** /**
* handle the testable files * handle the testable files
*/ */
@ -114,7 +116,7 @@ export let run = function (configArg: INpmtsConfig) {
plugins.beautylog.ora.text('now starting tests') plugins.beautylog.ora.text('now starting tests')
plugins.beautylog.ora.end() plugins.beautylog.ora.end()
plugins.beautylog.log('ready for tapbuffer:') plugins.beautylog.log('ready for tapbuffer:')
if (configArg.coverage) { if (configArg.testConfig.coverage) {
tap(config) tap(config)
.then(handleCoverageData) .then(handleCoverageData)
.then(() => { .then(() => {

View File

@ -3,6 +3,9 @@ import paths = require('./npmts.paths')
import * as q from 'smartq' import * as q from 'smartq'
// interfaces
import { ITapbufferConfig } from 'tapbuffer'
/** /**
* specifies the different modes available * specifies the different modes available
* default -> uses default options no matterm what * default -> uses default options no matterm what
@ -13,12 +16,12 @@ export type npmtsMode = 'default' | 'custom' | 'merge'
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any argv: any
coverage: boolean
coverageTreshold: number coverageTreshold: number
checkDependencies: boolean checkDependencies: boolean
mode: npmtsMode mode: npmtsMode
test: boolean test: boolean
testTs: any testTs: any
testConfig: ITapbufferConfig
ts: any ts: any
tsOptions: any tsOptions: any
watch: boolean watch: boolean
@ -32,12 +35,15 @@ export let run = function (argvArg) {
let done = q.defer() let done = q.defer()
let defaultConfig: INpmtsConfig = { let defaultConfig: INpmtsConfig = {
argv: undefined, argv: undefined,
coverage: true,
coverageTreshold: 70, coverageTreshold: 70,
checkDependencies: true, checkDependencies: true,
mode: 'default', mode: 'default',
test: true, test: true,
testTs: {}, testTs: {},
testConfig: {
parallel: true,
coverage: true
},
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
watch: false, watch: false,
@ -83,6 +89,15 @@ export let run = function (argvArg) {
if (config.argv.notest) { if (config.argv.notest) {
config.test = false config.test = false
} }
if (config.argv.nocoverage) {
config.testConfig.coverage = false
}
if (config.argv.nochecks) {
config.checkDependencies = false
}
if (config.argv.watch) { if (config.argv.watch) {
config.watch = true config.watch = true
} }

894
yarn.lock

File diff suppressed because it is too large Load Diff