Compare commits

...

21 Commits

Author SHA1 Message Date
efe73d0fd0 7.2.9 2017-07-28 17:16:17 +02:00
c52322ec12 add smart replacer 2017-07-28 17:16:14 +02:00
b7cf9949bf update docs 2017-07-28 01:27:21 +02:00
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
10 changed files with 486 additions and 171 deletions

11
dist/mod02/index.js vendored
View File

@ -30,6 +30,15 @@ let tap = function (configArg) {
*/ */
let testableFilesSmartstream = new plugins.smartstream.Smartstream([ let testableFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.smartgulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]), plugins.smartgulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
plugins.gulpFunction.forEach((fileArg) => __awaiter(this, void 0, void 0, function* () {
let stringToModify = fileArg.contents.toString();
let testRegex = /\/\/\smodule\stestimport\nimport[a-zA-Z0-9\*\s]*\sfrom\s'(..\/ts\/index)'/;
let replacer = (match, group1, offset, completeString) => {
return match.replace(group1, '../dist/index');
};
fileArg.setContentsFromString(stringToModify.replace(testRegex, replacer));
return fileArg;
})),
plugins.gulpSourcemaps.init(), plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript({ plugins.gulpTypeScript({
target: 'ES5', target: 'ES5',
@ -110,7 +119,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,13 +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: any; testConfig: ITapbufferConfig;
ts: any; ts: any;
tsOptions: any; tsOptions: any;
watch: boolean; watch: boolean;

View File

@ -7,14 +7,14 @@ 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: { testConfig: {
parallel: true parallel: true,
coverage: true
}, },
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
@ -53,7 +53,7 @@ exports.run = function (argvArg) {
config.test = false; config.test = false;
} }
if (config.argv.nocoverage) { if (config.argv.nocoverage) {
config.coverage = false; config.testConfig.coverage = false;
} }
if (config.argv.nochecks) { if (config.argv.nochecks) {
config.checkDependencies = false; config.checkDependencies = false;

View File

@ -39,11 +39,12 @@ with default behaviour.
| key | default value | description | | key | default value | description |
| --- | --- | --- | | --- | --- | --- |
| `"mode"` | `"default"` | "default" will do default stuff and override , "custom" only does what you specify | | `"mode"` | `"default"` | "default" will do default stuff and override , "custom" only does what you specify, "merge" will merge default options with whatever you specify on your own |
| `"test"` | `true` | test your module | | `"test"` | `true` | test your module |
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions | | `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc | | `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
| `"cli"` | "false" | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. | | `"cli"` | `"false"` | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. |
| `"testConfig"` | `{ parallel: true, coverage: true }` | allows you to control test behaviour. `"parallel"` controls wether testfiles are run sequentially or in parallel, and `"coverage` wether to create coverage reports |
### TypeScript ### TypeScript
by default npmts looks for `./ts/*.ts` and `./test/test.ts` that will compile to by default npmts looks for `./ts/*.ts` and `./test/test.ts` that will compile to

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "7.1.8", "version": "7.2.9",
"lockfileVersion": 1, "lockfileVersion": 1,
"dependencies": { "dependencies": {
"@gulp-sourcemaps/identity-map": { "@gulp-sourcemaps/identity-map": {

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "7.1.9", "version": "7.2.9",
"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": {
@ -42,27 +42,27 @@
"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.10", "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.10", "smartstream": "^1.0.10",
"smartstring": "^2.0.24", "smartstring": "^2.0.24",
"smartsystem": "^1.0.18", "smartsystem": "^1.0.18",
"tapbuffer": "^1.0.15", "tapbuffer": "^1.0.24",
"through2": "^2.0.3", "through2": "^2.0.3",
"tsn": "^2.0.15", "tsn": "^2.0.15",
"typescript": "^2.4.1", "typescript": "^2.4.2",
"typings-global": "^1.0.19" "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

@ -6,7 +6,9 @@ import paths = require('../npmts.paths')
import * as q from 'smartq' import * as q from 'smartq'
// interfaces
import { INpmtsConfig } from '../npmts.config' import { INpmtsConfig } from '../npmts.config'
import { Smartfile } from 'smartfile'
/** /**
* runs mocha * runs mocha
@ -27,6 +29,15 @@ let tap = function (configArg: INpmtsConfig) {
*/ */
let testableFilesSmartstream = new plugins.smartstream.Smartstream([ let testableFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.smartgulp.src([ plugins.path.join(paths.cwd, './ts/**/*.ts') ]), plugins.smartgulp.src([ plugins.path.join(paths.cwd, './ts/**/*.ts') ]),
plugins.gulpFunction.forEach(async (fileArg: Smartfile) => {
let stringToModify = fileArg.contents.toString()
let testRegex = /\/\/\smodule\stestimport\nimport[a-zA-Z0-9\*\s]*\sfrom\s'(..\/ts\/index)'/
let replacer = (match, group1, offset, completeString: string) => {
return match.replace(group1, '../dist/index')
}
fileArg.setContentsFromString(stringToModify.replace(testRegex, replacer))
return fileArg
}),
plugins.gulpSourcemaps.init(), plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript({ plugins.gulpTypeScript({
target: 'ES5', target: 'ES5',
@ -116,7 +127,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,13 +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: any testConfig: ITapbufferConfig
ts: any ts: any
tsOptions: any tsOptions: any
watch: boolean watch: boolean
@ -33,14 +35,14 @@ 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: { testConfig: {
parallel: true parallel: true,
coverage: true
}, },
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
@ -89,7 +91,7 @@ export let run = function (argvArg) {
} }
if (config.argv.nocoverage) { if (config.argv.nocoverage) {
config.coverage = false config.testConfig.coverage = false
} }
if (config.argv.nochecks) { if (config.argv.nochecks) {

586
yarn.lock

File diff suppressed because it is too large Load Diff