add smartstream
This commit is contained in:
parent
71588595e6
commit
7c960649bc
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,6 @@
|
||||
node_modules/
|
||||
test/
|
||||
pages/
|
||||
public/
|
||||
npm-debug/
|
||||
.DS_Store
|
@ -31,6 +31,12 @@ npmts will
|
||||
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/)
|
||||
|
||||
For further information read the docs.
|
||||
For further information read the docs:
|
||||
* [1. Intro](https://pushrocks.gitlab.io/npmts/gitbook/index.md)
|
||||
* [2. Install](https://pushrocks.gitlab.io/npmts/gitbook/install.md)
|
||||
* [3. Default Behaviour](https://pushrocks.gitlab.io/npmts/gitbook/default.md)
|
||||
* [4. Configuration](https://pushrocks.gitlab.io/npmts/gitbook/config.md)
|
||||
* [5. Examples](https://pushrocks.gitlab.io/npmts/gitbook/examples.md)
|
||||
* [6. Info](https://pushrocks.gitlab.io/npmts/gitbook/info.md)
|
||||
|
||||
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
|
||||
|
1
dist/npmts.plugins.d.ts
vendored
1
dist/npmts.plugins.d.ts
vendored
@ -23,6 +23,7 @@ export import smartcov = require('smartcov');
|
||||
export import smartenv = require('smartenv');
|
||||
export import smartfile = require('smartfile');
|
||||
export import smartpath = require('smartpath');
|
||||
export import smartstream = require('smartstream');
|
||||
export import smartstring = require('smartstring');
|
||||
export declare let sourceMapSupport: any;
|
||||
export import tsn = require('tsn');
|
||||
|
1
dist/npmts.plugins.js
vendored
1
dist/npmts.plugins.js
vendored
@ -24,6 +24,7 @@ exports.smartcov = require("smartcov");
|
||||
exports.smartenv = require("smartenv");
|
||||
exports.smartfile = require("smartfile");
|
||||
exports.smartpath = require("smartpath");
|
||||
exports.smartstream = require("smartstream");
|
||||
exports.smartstring = require("smartstring");
|
||||
exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing
|
||||
exports.tsn = require("tsn");
|
||||
|
3
dist/npmts.tests.d.ts
vendored
3
dist/npmts.tests.d.ts
vendored
@ -1,4 +1,5 @@
|
||||
/// <reference types="q" />
|
||||
import 'typings-global';
|
||||
import plugins = require('./npmts.plugins');
|
||||
export declare let run: (configArg: any) => plugins.q.Promise<{}>;
|
||||
import { INpmtsConfig } from './npmts.options';
|
||||
export declare let run: (configArg: INpmtsConfig) => plugins.q.Promise<{}>;
|
||||
|
35
dist/npmts.tests.js
vendored
35
dist/npmts.tests.js
vendored
@ -4,8 +4,8 @@ const plugins = require("./npmts.plugins");
|
||||
const paths = require("./npmts.paths");
|
||||
const npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
/**
|
||||
*
|
||||
* @returns {*}
|
||||
* runs mocha
|
||||
* @returns INpmtsConfig
|
||||
*/
|
||||
let mocha = function (configArg) {
|
||||
npmts_promisechain_1.npmtsOra.text('Instrumentalizing and testing transpiled JS');
|
||||
@ -22,22 +22,31 @@ let mocha = function (configArg) {
|
||||
.pipe(plugins.g.sourcemaps.write())
|
||||
.pipe(plugins.g.injectModules())
|
||||
.on('finish', function () {
|
||||
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')])
|
||||
.pipe(plugins.g.babel({
|
||||
let localSmartstream = new plugins.smartstream.Smartstream([
|
||||
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]),
|
||||
plugins.g.babel({
|
||||
presets: [
|
||||
require.resolve('babel-preset-es2015')
|
||||
]
|
||||
}))
|
||||
.pipe(plugins.g.injectModules())
|
||||
.pipe(plugins.g.mocha())
|
||||
.pipe(plugins.g.istanbul.writeReports({
|
||||
}),
|
||||
plugins.g.injectModules(),
|
||||
plugins.g.mocha(),
|
||||
plugins.g.istanbul.writeReports({
|
||||
dir: plugins.path.join(paths.cwd, './coverage'),
|
||||
reporters: ['lcovonly', 'json', 'text', 'text-summary']
|
||||
}))
|
||||
.pipe(plugins.g.gFunction(function () {
|
||||
plugins.beautylog.ok('Tested!');
|
||||
})
|
||||
]);
|
||||
localSmartstream.run()
|
||||
.then(() => { done.resolve(configArg); }, (err) => {
|
||||
plugins.beautylog.error('Tests failed!');
|
||||
configArg.watch = true;
|
||||
if (configArg.watch) {
|
||||
done.resolve(configArg);
|
||||
}, 'atEnd'));
|
||||
}
|
||||
else {
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
return done.promise;
|
||||
};
|
||||
@ -55,8 +64,10 @@ let coverage = function (configArg) {
|
||||
+ `coverage fails your treshold of `
|
||||
+ `${configArg.coverageTreshold.toString()}%`);
|
||||
plugins.beautylog.error('exiting due to coverage failure');
|
||||
if (!configArg.watch) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
done.resolve(configArg);
|
||||
});
|
||||
return done.promise;
|
||||
|
3
dist/npmts.watch.d.ts
vendored
3
dist/npmts.watch.d.ts
vendored
@ -1,3 +1,4 @@
|
||||
/// <reference types="q" />
|
||||
import * as plugins from './npmts.plugins';
|
||||
export declare let run: (configArg: any) => plugins.q.Promise<{}>;
|
||||
import { INpmtsConfig } from './npmts.options';
|
||||
export declare let run: (configArg: INpmtsConfig) => plugins.q.Promise<{}>;
|
||||
|
3
dist/npmts.watch.js
vendored
3
dist/npmts.watch.js
vendored
@ -9,6 +9,9 @@ exports.run = (configArg) => {
|
||||
for (let key in configArg.ts) {
|
||||
pathsToWatch.push(key);
|
||||
}
|
||||
for (let key in configArg.testTs) {
|
||||
pathsToWatch.push(key);
|
||||
}
|
||||
npmtsSmartchok = new plugins.smartchok.Smartchok(pathsToWatch);
|
||||
npmtsSmartchok.getObservableFor('change').then((changeObservableArg) => {
|
||||
plugins.beautylog.info('now watching...');
|
||||
|
42
docs/index.md
Normal file
42
docs/index.md
Normal file
@ -0,0 +1,42 @@
|
||||
# npmts
|
||||
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
||||
|
||||
## Availabililty
|
||||
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts)
|
||||
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmts)
|
||||
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmts)
|
||||
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/gitbook)
|
||||
|
||||
## Status for master
|
||||
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts)
|
||||
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmts/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
|
||||
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
|
||||
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
|
||||
|
||||
## Introduction
|
||||
NPMTS is your friend when writing, testing, publishing and documenting npm modules written in TypeScript.
|
||||
|
||||
npmts will
|
||||
|
||||
1. check your dependencies and package.json
|
||||
1. transpile your code with tsc,
|
||||
1. document your code with typedoc,
|
||||
1. test your code with mocha
|
||||
1. create coverage with istanbul
|
||||
|
||||
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/)
|
||||
|
||||
For further information read the docs:
|
||||
* [1. Intro](https://pushrocks.gitlab.io/npmts/gitbook/index.md)
|
||||
* [2. Install](https://pushrocks.gitlab.io/npmts/gitbook/install.md)
|
||||
* [3. Default Behaviour](https://pushrocks.gitlab.io/npmts/gitbook/default.md)
|
||||
* [4. Configuration](https://pushrocks.gitlab.io/npmts/gitbook/config.md)
|
||||
* [5. Examples](https://pushrocks.gitlab.io/npmts/gitbook/examples.md)
|
||||
* [6. Info](https://pushrocks.gitlab.io/npmts/gitbook/info.md)
|
||||
|
||||
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
|
@ -5,7 +5,7 @@ Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
||||
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts)
|
||||
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmts)
|
||||
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmts)
|
||||
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/docs)
|
||||
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/gitbook)
|
||||
|
||||
## Status for master
|
||||
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
@ -31,6 +31,12 @@ npmts will
|
||||
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/)
|
||||
|
||||
For further information read the docs.
|
||||
For further information read the docs:
|
||||
* [1. Intro](https://pushrocks.gitlab.io/npmts/gitbook/index.md)
|
||||
* [2. Install](https://pushrocks.gitlab.io/npmts/gitbook/install.md)
|
||||
* [3. Default Behaviour](https://pushrocks.gitlab.io/npmts/gitbook/default.md)
|
||||
* [4. Configuration](https://pushrocks.gitlab.io/npmts/gitbook/config.md)
|
||||
* [5. Examples](https://pushrocks.gitlab.io/npmts/gitbook/examples.md)
|
||||
* [6. Info](https://pushrocks.gitlab.io/npmts/gitbook/info.md)
|
||||
|
||||
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)
|
||||
|
32
npm-debug.log
Normal file
32
npm-debug.log
Normal file
@ -0,0 +1,32 @@
|
||||
0 info it worked if it ends with ok
|
||||
1 verbose cli [ '/Users/philkunz/.nvm/versions/node/v6.5.0/bin/node',
|
||||
1 verbose cli '/Users/philkunz/.nvm/versions/node/v6.5.0/bin/npm',
|
||||
1 verbose cli 'version',
|
||||
1 verbose cli 'patch' ]
|
||||
2 info using npm@3.10.3
|
||||
3 info using node@v6.5.0
|
||||
4 info git [ 'status', '--porcelain' ]
|
||||
5 verbose stack Error: Git working directory not clean.
|
||||
5 verbose stack M README.md
|
||||
5 verbose stack M gitbook/index.md
|
||||
5 verbose stack at /Users/philkunz/.nvm/versions/node/v6.5.0/lib/node_modules/npm/lib/version.js:247:19
|
||||
5 verbose stack at /Users/philkunz/.nvm/versions/node/v6.5.0/lib/node_modules/npm/lib/utils/no-progress-while-running.js:21:8
|
||||
5 verbose stack at ChildProcess.exithandler (child_process.js:197:7)
|
||||
5 verbose stack at emitTwo (events.js:106:13)
|
||||
5 verbose stack at ChildProcess.emit (events.js:191:7)
|
||||
5 verbose stack at maybeClose (internal/child_process.js:877:16)
|
||||
5 verbose stack at Socket.<anonymous> (internal/child_process.js:334:11)
|
||||
5 verbose stack at emitOne (events.js:96:13)
|
||||
5 verbose stack at Socket.emit (events.js:188:7)
|
||||
5 verbose stack at Pipe._handle.close [as _onclose] (net.js:493:12)
|
||||
6 verbose cwd /Users/philkunz/gitlab/pushrocks/npmts
|
||||
7 error Darwin 16.0.0
|
||||
8 error argv "/Users/philkunz/.nvm/versions/node/v6.5.0/bin/node" "/Users/philkunz/.nvm/versions/node/v6.5.0/bin/npm" "version" "patch"
|
||||
9 error node v6.5.0
|
||||
10 error npm v3.10.3
|
||||
11 error Git working directory not clean.
|
||||
11 error M README.md
|
||||
11 error M gitbook/index.md
|
||||
12 error If you need help, you may report this error at:
|
||||
12 error <https://github.com/npm/npm/issues>
|
||||
13 verbose exit [ 1, true ]
|
@ -51,7 +51,7 @@
|
||||
"gulp-sourcemaps": "^1.6.0",
|
||||
"gulp-typedoc": "^2.0.0",
|
||||
"lodash": "^4.16.1",
|
||||
"npmextra": "^2.0.1",
|
||||
"npmextra": "^2.0.3",
|
||||
"projectinfo": "1.0.3",
|
||||
"q": "^1.4.1",
|
||||
"shelljs": "^0.7.4",
|
||||
@ -59,8 +59,9 @@
|
||||
"smartcli": "1.0.9",
|
||||
"smartcov": "1.0.0",
|
||||
"smartenv": "1.2.5",
|
||||
"smartfile": "4.0.20",
|
||||
"smartfile": "4.0.21",
|
||||
"smartpath": "3.2.2",
|
||||
"smartstream": "^1.0.5",
|
||||
"smartstring": "^2.0.17",
|
||||
"source-map-support": "^0.4.2",
|
||||
"tsn": "^2.0.3",
|
||||
|
@ -23,6 +23,7 @@ export import smartcov = require('smartcov')
|
||||
export import smartenv = require('smartenv')
|
||||
export import smartfile = require('smartfile')
|
||||
export import smartpath = require('smartpath')
|
||||
export import smartstream = require('smartstream')
|
||||
export import smartstring = require('smartstring')
|
||||
export let sourceMapSupport = require('source-map-support').install() // display errors correctly during testing
|
||||
export import tsn = require('tsn')
|
||||
|
@ -2,12 +2,13 @@ import 'typings-global'
|
||||
import plugins = require('./npmts.plugins')
|
||||
import paths = require('./npmts.paths')
|
||||
import { npmtsOra } from './npmts.promisechain'
|
||||
import { INpmtsConfig } from './npmts.options'
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {*}
|
||||
* runs mocha
|
||||
* @returns INpmtsConfig
|
||||
*/
|
||||
let mocha = function (configArg) {
|
||||
let mocha = function (configArg: INpmtsConfig) {
|
||||
npmtsOra.text('Instrumentalizing and testing transpiled JS')
|
||||
npmtsOra.end() // end npmtsOra for tests.
|
||||
let done = plugins.q.defer()
|
||||
@ -23,30 +24,34 @@ let mocha = function (configArg) {
|
||||
.pipe(plugins.g.sourcemaps.write())
|
||||
.pipe(plugins.g.injectModules())
|
||||
.on('finish', function () {
|
||||
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')])
|
||||
.pipe(plugins.g.babel({
|
||||
let localSmartstream = new plugins.smartstream.Smartstream([
|
||||
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]),
|
||||
plugins.g.babel({
|
||||
presets: [
|
||||
require.resolve('babel-preset-es2015')
|
||||
]
|
||||
}))
|
||||
.pipe(plugins.g.injectModules())
|
||||
.pipe(plugins.g.mocha())
|
||||
.pipe(plugins.g.istanbul.writeReports({
|
||||
}),
|
||||
plugins.g.injectModules(),
|
||||
plugins.g.mocha(),
|
||||
plugins.g.istanbul.writeReports({
|
||||
dir: plugins.path.join(paths.cwd, './coverage'),
|
||||
reporters: ['lcovonly', 'json', 'text', 'text-summary']
|
||||
}))
|
||||
.pipe(plugins.g.gFunction(
|
||||
function () {
|
||||
plugins.beautylog.ok('Tested!')
|
||||
})
|
||||
])
|
||||
localSmartstream.run()
|
||||
.then(() => { done.resolve(configArg) }, (err) => {
|
||||
plugins.beautylog.error('Tests failed!')
|
||||
if (configArg.watch) {
|
||||
done.resolve(configArg)
|
||||
},
|
||||
'atEnd'
|
||||
))
|
||||
} else {
|
||||
process.exit(1)
|
||||
}
|
||||
})
|
||||
})
|
||||
return done.promise
|
||||
}
|
||||
|
||||
let coverage = function (configArg) {
|
||||
let coverage = function (configArg: INpmtsConfig) {
|
||||
let done = plugins.q.defer()
|
||||
plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2)
|
||||
.then(function (percentageArg) {
|
||||
@ -63,14 +68,14 @@ let coverage = function (configArg) {
|
||||
+ `${configArg.coverageTreshold.toString()}%`
|
||||
)
|
||||
plugins.beautylog.error('exiting due to coverage failure')
|
||||
process.exit(1)
|
||||
if (!configArg.watch) { process.exit(1) }
|
||||
}
|
||||
done.resolve(configArg)
|
||||
})
|
||||
return done.promise
|
||||
}
|
||||
|
||||
export let run = function (configArg) {
|
||||
export let run = function (configArg: INpmtsConfig) {
|
||||
let done = plugins.q.defer()
|
||||
let config = configArg
|
||||
if (config.test === true) {
|
||||
|
@ -1,14 +1,18 @@
|
||||
import * as plugins from './npmts.plugins'
|
||||
import * as promisechain from './npmts.promisechain'
|
||||
let npmtsSmartchok: plugins.smartchok.Smartchok = null
|
||||
import { INpmtsConfig } from './npmts.options'
|
||||
|
||||
export let run = (configArg) => {
|
||||
export let run = (configArg: INpmtsConfig) => {
|
||||
let done = plugins.q.defer()
|
||||
if (configArg.watch && npmtsSmartchok === null) {
|
||||
let pathsToWatch: string[] = []
|
||||
for (let key in configArg.ts) {
|
||||
pathsToWatch.push(key)
|
||||
}
|
||||
for (let key in configArg.testTs) {
|
||||
pathsToWatch.push(key)
|
||||
}
|
||||
npmtsSmartchok = new plugins.smartchok.Smartchok(pathsToWatch)
|
||||
npmtsSmartchok.getObservableFor('change').then((changeObservableArg) => {
|
||||
plugins.beautylog.info('now watching...')
|
||||
|
Loading…
Reference in New Issue
Block a user