Compare commits

...

10 Commits

Author SHA1 Message Date
3d78bf268d 5.4.46 2016-10-03 12:45:56 +02:00
36887512ee 5.4.45 2016-10-03 12:38:56 +02:00
fb7025d7ec 5.4.44 2016-10-02 20:35:17 +02:00
8dcdad9e2c some more es6 module syntax 2016-10-02 20:35:13 +02:00
1898db5472 5.4.43 2016-09-29 16:25:29 +02:00
1f01bee204 fix README 2016-09-29 16:25:16 +02:00
851653a6ae 5.4.42 2016-09-29 16:19:59 +02:00
9229cd79dd fix tsn issue 2016-09-29 16:19:49 +02:00
86fb639c82 5.4.41 2016-09-29 00:19:56 +02:00
d536e6aa8c improve test compilation 2016-09-29 00:19:46 +02:00
46 changed files with 246 additions and 223 deletions

View File

@ -32,11 +32,11 @@ This works on your machine and in CI. There is a prebuild docker image available
[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/)
For further information read the docs: For further information read the docs:
1. [Intro](https://pushrocks.gitlab.io/npmts/gitbook/index.html) 1. [Intro](https://pushrocks.gitlab.io/npmts/index.html)
2. [Install](https://pushrocks.gitlab.io/npmts/gitbook/install.html) 2. [Install](https://pushrocks.gitlab.io/npmts/install.html)
3. [Default Behaviour](https://pushrocks.gitlab.io/npmts/gitbook/default.html) 3. [Default Behaviour](https://pushrocks.gitlab.io/npmts/default.html)
4. [Configuration](https://pushrocks.gitlab.io/npmts/gitbook/config.html) 4. [Configuration](https://pushrocks.gitlab.io/npmts/config.html)
5. [Examples](https://pushrocks.gitlab.io/npmts/gitbook/examples.html) 5. [Examples](https://pushrocks.gitlab.io/npmts/examples.html)
6. [Info](https://pushrocks.gitlab.io/npmts/gitbook/info.html) 6. [Info](https://pushrocks.gitlab.io/npmts/info.html)
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks) [![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)

1
dist/index.d.ts vendored
View File

@ -1 +0,0 @@
import 'typings-global';

6
dist/index.js vendored
View File

@ -1,8 +1,8 @@
"use strict";
require("typings-global");
/* ================================================== * /* ================================================== *
Starting NPMTS main process. **** NPMTS ****
Fabulous TypeScript development
* ================================================== */ * ================================================== */
"use strict";
const early = require("early"); const early = require("early");
early.start('NPMTS'); early.start('NPMTS');
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");

View File

@ -1,4 +1,3 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins'); export declare var run: (configArg: any) => q.Promise<{}>;
export declare var run: (configArg: any) => plugins.q.Promise<{}>;

View File

@ -1,10 +1,10 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
npmts_promisechain_1.npmtsOra.text('now looking at ' + 'required assets'.yellow); npmts_promisechain_1.npmtsOra.text('now looking at ' + 'required assets'.yellow);
if (config.cli === true) { if (config.cli === true) {

View File

@ -1,5 +1,5 @@
/// <reference types="q" /> /// <reference types="q" />
import * as plugins from './npmts.plugins'; import * as q from 'q';
import { ProjectinfoNpm } from 'projectinfo'; import { ProjectinfoNpm } from 'projectinfo';
export declare let projectInfo: ProjectinfoNpm; export declare let projectInfo: ProjectinfoNpm;
export declare let run: (configArg: any) => plugins.q.Promise<{}>; export declare let run: (configArg: any) => q.Promise<{}>;

11
dist/npmts.check.js vendored
View File

@ -1,10 +1,11 @@
"use strict"; "use strict";
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
const projectinfo_1 = require("projectinfo"); const projectinfo_1 = require("projectinfo");
let checkProjectTypings = (configArg) => { let checkProjectTypings = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('Check Module: Check Project Typings...'); npmts_promisechain_1.npmtsOra.text('Check Module: Check Project Typings...');
exports.projectInfo = new projectinfo_1.ProjectinfoNpm(paths.cwd); exports.projectInfo = new projectinfo_1.ProjectinfoNpm(paths.cwd);
if (typeof exports.projectInfo.packageJson.typings === 'undefined') { if (typeof exports.projectInfo.packageJson.typings === 'undefined') {
@ -30,7 +31,7 @@ const depcheckOptions = {
] ]
}; };
let checkDependencies = (configArg) => { let checkDependencies = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('Check Module: Check Dependencies...'); npmts_promisechain_1.npmtsOra.text('Check Module: Check Dependencies...');
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, { let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [ ignoreDirs: [
@ -66,7 +67,7 @@ let checkDependencies = (configArg) => {
return done.promise; return done.promise;
}; };
let checkDevDependencies = (configArg) => { let checkDevDependencies = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('Check Module: Check devDependencies...'); npmts_promisechain_1.npmtsOra.text('Check Module: Check devDependencies...');
let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, { let depcheckOptionsMerged = plugins.lodash.merge(depcheckOptions, {
ignoreDirs: [ ignoreDirs: [
@ -101,13 +102,13 @@ let checkDevDependencies = (configArg) => {
return done.promise; return done.promise;
}; };
let checkNodeVersion = (configArg) => { let checkNodeVersion = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('checking node version'); npmts_promisechain_1.npmtsOra.text('checking node version');
done.resolve(configArg); done.resolve(configArg);
return done.promise; return done.promise;
}; };
exports.run = (configArg) => { exports.run = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('Check Module: ...'); npmts_promisechain_1.npmtsOra.text('Check Module: ...');
checkProjectTypings(configArg) checkProjectTypings(configArg)
.then(checkDependencies) .then(checkDependencies)

View File

@ -1,4 +1,3 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins'); export declare let run: (configArg: any) => q.Promise<{}>;
export declare let run: (configArg: any) => plugins.q.Promise<{}>;

22
dist/npmts.clean.js vendored
View File

@ -1,20 +1,38 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
/**
* removes the dist directory which will be entirely rebuild
*/
let removeDist = function () { let removeDist = function () {
npmts_promisechain_1.npmtsOra.text('cleaning dist folder'); npmts_promisechain_1.npmtsOra.text('cleaning dist folder');
return plugins.smartfile.fs.remove(paths.distDir); return plugins.smartfile.fs.remove(paths.distDir);
}; };
/**
* remove .d.ts files from testDirctory
*/
let removeTestDeclarations = function () {
let done = q.defer();
plugins.smartfile.fs.listFileTree('./test/', '**/*.d.ts').then(fileArray => {
let fileArrayToRemove = plugins.smartpath.transform.toAbsolute(fileArray, process.cwd() + '//test/');
plugins.smartfile.fs.removeManySync(fileArrayToRemove);
done.resolve();
});
};
/**
* remove old pages
*/
let removePages = function () { let removePages = function () {
npmts_promisechain_1.npmtsOra.text('cleaning pages folder'); npmts_promisechain_1.npmtsOra.text('cleaning pages folder');
return plugins.smartfile.fs.remove(paths.pagesDir); return plugins.smartfile.fs.remove(paths.pagesDir);
}; };
exports.run = function (configArg) { exports.run = function (configArg) {
npmts_promisechain_1.npmtsOra.text('cleaning up from previous builds...'); npmts_promisechain_1.npmtsOra.text('cleaning up from previous builds...');
let done = plugins.q.defer(); let done = q.defer();
removeDist() removeDist()
.then(removeTestDeclarations)
.then(removePages) .then(removePages)
.then(function () { .then(function () {
plugins.beautylog.ok('Cleaned up from previous builds!'); plugins.beautylog.ok('Cleaned up from previous builds!');

View File

@ -1,4 +1,3 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins'); export declare let run: (configArg: any) => q.Promise<{}>;
export declare let run: (configArg: any) => plugins.q.Promise<{}>;

View File

@ -1,21 +1,21 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
npmts_promisechain_1.npmtsOra.text('now compiling ' + 'TypeScript'.yellow); npmts_promisechain_1.npmtsOra.text('now compiling ' + 'TypeScript'.yellow);
plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd) plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd)
.then(() => { .then(() => {
plugins.beautylog.ok('compiled main TypeScript!'); plugins.beautylog.ok('compiled main TypeScript!');
plugins.beautylog.log('now compiling tests!'); plugins.beautylog.log('now compiling tests!');
return plugins.tsn.compileGlobStringObject(config.testTs); return plugins.tsn.compileGlobStringObject(config.testTs, config.tsOptions, paths.cwd);
}) })
.then(function () { .then(function () {
plugins.beautylog.ok('compiled all TypeScript!'); plugins.beautylog.ok('compiled all TypeScript!');
done.resolve(config); done.resolve(config);
}); }).catch(err => { console.log(err); });
return done.promise; return done.promise;
}; };

View File

@ -1,6 +1,5 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins');
export declare type npmtsMode = 'default' | 'custom'; export declare type npmtsMode = 'default' | 'custom';
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any; argv: any;
@ -13,4 +12,4 @@ export interface INpmtsConfig {
tsOptions: any; tsOptions: any;
watch: boolean; watch: boolean;
} }
export declare var run: (argvArg: any) => plugins.q.Promise<{}>; export declare var run: (argvArg: any) => q.Promise<{}>;

View File

@ -1,11 +1,11 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
; ;
exports.run = function (argvArg) { exports.run = function (argvArg) {
let done = plugins.q.defer(); let done = q.defer();
let defaultConfig = { let defaultConfig = {
argv: undefined, argv: undefined,
coverageTreshold: 70, coverageTreshold: 70,
@ -38,10 +38,10 @@ exports.run = function (argvArg) {
// handle default mode // handle default mode
if (config.mode === 'default') { if (config.mode === 'default') {
config.ts = { config.ts = {
['./ts/**/*.ts']: './dist/' './ts/**/*.ts': './dist/'
}; };
config.testTs = { config.testTs = {
['./test/test.ts']: './test/' './test/**/*.ts': './test/'
}; };
} }
; ;

View File

@ -1,4 +1,3 @@
import 'typings-global';
export declare let npmtsPackageRoot: string; export declare let npmtsPackageRoot: string;
export declare let cwd: string; export declare let cwd: string;
export declare let tsDir: string; export declare let tsDir: string;

1
dist/npmts.paths.js vendored
View File

@ -1,5 +1,4 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
// NPMTS Paths // NPMTS Paths
exports.npmtsPackageRoot = plugins.path.join(__dirname, '../'); exports.npmtsPackageRoot = plugins.path.join(__dirname, '../');

View File

@ -1,8 +1,8 @@
import 'typings-global'; import 'typings-global';
export import beautylog = require('beautylog'); import * as beautylog from 'beautylog';
export declare let depcheck: any; declare let depcheck: any;
export import gulp = require('gulp'); import * as gulp from 'gulp';
export declare let g: { declare let g: {
babel: any; babel: any;
istanbul: any; istanbul: any;
gFunction: any; gFunction: any;
@ -11,19 +11,19 @@ export declare let g: {
sourcemaps: any; sourcemaps: any;
typedoc: any; typedoc: any;
}; };
export import lodash = require('lodash'); import * as lodash from 'lodash';
export import npmextra = require('npmextra'); import * as npmextra from 'npmextra';
export import projectinfo = require('projectinfo'); import * as projectinfo from 'projectinfo';
export import path = require('path'); import * as path from 'path';
export import q = require('q'); import * as shelljs from 'shelljs';
export import shelljs = require('shelljs'); import * as smartchok from 'smartchok';
export import smartchok = require('smartchok'); import * as smartcli from 'smartcli';
export import smartcli = require('smartcli'); import * as smartcov from 'smartcov';
export import smartcov = require('smartcov'); import * as smartenv from 'smartenv';
export import smartenv = require('smartenv'); import * as smartfile from 'smartfile';
export import smartfile = require('smartfile'); import * as smartpath from 'smartpath';
export import smartpath = require('smartpath'); import * as smartstream from 'smartstream';
export import smartstream = require('smartstream'); import * as smartstring from 'smartstring';
export import smartstring = require('smartstring');
export declare let sourceMapSupport: any; export declare let sourceMapSupport: any;
export import tsn = require('tsn'); import * as tsn from 'tsn';
export { beautylog, depcheck, gulp, g, lodash, npmextra, projectinfo, path, shelljs, smartchok, smartcli, smartcov, smartenv, smartfile, smartpath, smartstream, smartstring, tsn };

55
dist/npmts.plugins.js vendored
View File

@ -1,9 +1,12 @@
"use strict"; "use strict";
require("typings-global"); require("typings-global");
exports.beautylog = require("beautylog"); const beautylog = require("beautylog");
exports.depcheck = require('depcheck'); exports.beautylog = beautylog;
exports.gulp = require("gulp"); let depcheck = require('depcheck');
exports.g = { exports.depcheck = depcheck;
const gulp = require("gulp");
exports.gulp = gulp;
let g = {
babel: require('gulp-babel'), babel: require('gulp-babel'),
istanbul: require('gulp-istanbul'), istanbul: require('gulp-istanbul'),
gFunction: require('gulp-function'), gFunction: require('gulp-function'),
@ -12,19 +15,33 @@ exports.g = {
sourcemaps: require('gulp-sourcemaps'), sourcemaps: require('gulp-sourcemaps'),
typedoc: require('gulp-typedoc') typedoc: require('gulp-typedoc')
}; };
exports.lodash = require("lodash"); exports.g = g;
exports.npmextra = require("npmextra"); const lodash = require("lodash");
exports.projectinfo = require("projectinfo"); exports.lodash = lodash;
exports.path = require("path"); const npmextra = require("npmextra");
exports.q = require("q"); exports.npmextra = npmextra;
exports.shelljs = require("shelljs"); const projectinfo = require("projectinfo");
exports.smartchok = require("smartchok"); exports.projectinfo = projectinfo;
exports.smartcli = require("smartcli"); const path = require("path");
exports.smartcov = require("smartcov"); exports.path = path;
exports.smartenv = require("smartenv"); const shelljs = require("shelljs");
exports.smartfile = require("smartfile"); exports.shelljs = shelljs;
exports.smartpath = require("smartpath"); const smartchok = require("smartchok");
exports.smartstream = require("smartstream"); exports.smartchok = smartchok;
exports.smartstring = require("smartstring"); const smartcli = require("smartcli");
exports.smartcli = smartcli;
const smartcov = require("smartcov");
exports.smartcov = smartcov;
const smartenv = require("smartenv");
exports.smartenv = smartenv;
const smartfile = require("smartfile");
exports.smartfile = smartfile;
const smartpath = require("smartpath");
exports.smartpath = smartpath;
const smartstream = require("smartstream");
exports.smartstream = smartstream;
const smartstring = require("smartstring");
exports.smartstring = smartstring;
exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing
exports.tsn = require("tsn"); const tsn = require("tsn");
exports.tsn = tsn;

View File

@ -1,6 +1,5 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global';
import plugins = require('./npmts.plugins');
import { Ora } from 'beautylog'; import { Ora } from 'beautylog';
import * as q from 'q';
export declare let npmtsOra: Ora; export declare let npmtsOra: Ora;
export declare let run: (argvArg: any) => plugins.q.Promise<{}>; export declare let run: (argvArg: any) => q.Promise<{}>;

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const beautylog_1 = require("beautylog"); const beautylog_1 = require("beautylog");
const q = require("q");
exports.npmtsOra = new beautylog_1.Ora('setting up TaskChain', 'cyan'); exports.npmtsOra = new beautylog_1.Ora('setting up TaskChain', 'cyan');
const NpmtsAssets = require("./npmts.assets"); const NpmtsAssets = require("./npmts.assets");
const NpmtsCheck = require("./npmts.check"); const NpmtsCheck = require("./npmts.check");
@ -12,7 +12,7 @@ const NpmtsOptions = require("./npmts.options");
const NpmtsTests = require("./npmts.tests"); const NpmtsTests = require("./npmts.tests");
const NpmtsWatch = require("./npmts.watch"); const NpmtsWatch = require("./npmts.watch");
exports.run = function (argvArg) { exports.run = function (argvArg) {
let done = plugins.q.defer(); let done = q.defer();
exports.npmtsOra.start(); exports.npmtsOra.start();
NpmtsOptions.run(argvArg) NpmtsOptions.run(argvArg)
.then(NpmtsClean.run) .then(NpmtsClean.run)

View File

@ -1,5 +1,4 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins');
import { INpmtsConfig } from './npmts.options'; import { INpmtsConfig } from './npmts.options';
export declare let run: (configArg: INpmtsConfig) => plugins.q.Promise<{}>; export declare let run: (configArg: INpmtsConfig) => q.Promise<{}>;

9
dist/npmts.tests.js vendored
View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const q = require("q");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
/** /**
* runs mocha * runs mocha
@ -10,7 +10,7 @@ const npmts_promisechain_1 = require("./npmts.promisechain");
let mocha = function (configArg) { let mocha = function (configArg) {
npmts_promisechain_1.npmtsOra.text('Instrumentalizing and testing transpiled JS'); npmts_promisechain_1.npmtsOra.text('Instrumentalizing and testing transpiled JS');
npmts_promisechain_1.npmtsOra.end(); // end npmtsOra for tests. npmts_promisechain_1.npmtsOra.end(); // end npmtsOra for tests.
let done = plugins.q.defer(); let done = q.defer();
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')]) plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.g.sourcemaps.init()) .pipe(plugins.g.sourcemaps.init())
.pipe(plugins.g.babel({ .pipe(plugins.g.babel({
@ -39,7 +39,6 @@ let mocha = function (configArg) {
localSmartstream.run() localSmartstream.run()
.then(() => { done.resolve(configArg); }, (err) => { .then(() => { done.resolve(configArg); }, (err) => {
plugins.beautylog.error('Tests failed!'); plugins.beautylog.error('Tests failed!');
configArg.watch = true;
if (configArg.watch) { if (configArg.watch) {
done.resolve(configArg); done.resolve(configArg);
} }
@ -51,7 +50,7 @@ let mocha = function (configArg) {
return done.promise; return done.promise;
}; };
let coverage = function (configArg) { let coverage = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2) plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2)
.then(function (percentageArg) { .then(function (percentageArg) {
if (percentageArg >= configArg.coverageTreshold) { if (percentageArg >= configArg.coverageTreshold) {
@ -73,7 +72,7 @@ let coverage = function (configArg) {
return done.promise; return done.promise;
}; };
exports.run = function (configArg) { exports.run = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
if (config.test === true) { if (config.test === true) {
npmts_promisechain_1.npmtsOra.text('now starting tests'); npmts_promisechain_1.npmtsOra.text('now starting tests');

View File

@ -1,4 +1,3 @@
/// <reference types="q" /> /// <reference types="q" />
import 'typings-global'; import * as q from 'q';
import plugins = require('./npmts.plugins'); export declare let run: (configArg: any) => q.Promise<{}>;
export declare let run: (configArg: any) => plugins.q.Promise<{}>;

View File

@ -1,11 +1,11 @@
"use strict"; "use strict";
require("typings-global");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const npmts_promisechain_1 = require("./npmts.promisechain"); const npmts_promisechain_1 = require("./npmts.promisechain");
const q = require("q");
const npmts_check_1 = require("./npmts.check"); const npmts_check_1 = require("./npmts.check");
let genTypeDoc = function (configArg) { let genTypeDoc = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
npmts_promisechain_1.npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow); npmts_promisechain_1.npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow);
plugins.beautylog.log('TypeDoc Output:'); plugins.beautylog.log('TypeDoc Output:');
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts')) plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts'))
@ -28,7 +28,7 @@ let genTypeDoc = function (configArg) {
return done.promise; return done.promise;
}; };
exports.run = function (configArg) { exports.run = function (configArg) {
let done = plugins.q.defer(); let done = q.defer();
if (configArg.docs) { if (configArg.docs) {
genTypeDoc(configArg) genTypeDoc(configArg)
.then(() => { .then(() => {

View File

@ -1,4 +1,4 @@
/// <reference types="q" /> /// <reference types="q" />
import * as plugins from './npmts.plugins'; import * as q from 'q';
import { INpmtsConfig } from './npmts.options'; import { INpmtsConfig } from './npmts.options';
export declare let run: (configArg: INpmtsConfig) => plugins.q.Promise<{}>; export declare let run: (configArg: INpmtsConfig) => q.Promise<{}>;

3
dist/npmts.watch.js vendored
View File

@ -1,9 +1,10 @@
"use strict"; "use strict";
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const promisechain = require("./npmts.promisechain"); const promisechain = require("./npmts.promisechain");
const q = require("q");
let npmtsSmartchok = null; let npmtsSmartchok = null;
exports.run = (configArg) => { exports.run = (configArg) => {
let done = plugins.q.defer(); let done = q.defer();
if (configArg.watch && npmtsSmartchok === null) { if (configArg.watch && npmtsSmartchok === null) {
let pathsToWatch = []; let pathsToWatch = [];
for (let key in configArg.ts) { for (let key in configArg.ts) {

View File

@ -1,15 +0,0 @@
{
"structure": {
"readme": "index.md"
},
"plugins": [
"tonic",
"edit-link"
],
"pluginsConfig": {
"edit-link": {
"base": "https://gitlab.com/pushrocks/npmts/edit/master/docs/",
"label": "Edit on GitLab"
}
}
}

View File

@ -1,42 +0,0 @@
# 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)

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "5.4.40", "version": "5.4.46",
"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": {
@ -38,7 +38,7 @@
"@types/minimatch": "^2.0.29", "@types/minimatch": "^2.0.29",
"@types/q": "^0.x.x", "@types/q": "^0.x.x",
"@types/shelljs": "^0.3.31", "@types/shelljs": "^0.3.31",
"babel-preset-es2015": "^6.14.0", "babel-preset-es2015": "^6.16.0",
"beautylog": "5.0.23", "beautylog": "5.0.23",
"depcheck": "^0.6.4", "depcheck": "^0.6.4",
"early": "^2.0.35", "early": "^2.0.35",
@ -50,7 +50,7 @@
"gulp-mocha": "^3.0.1", "gulp-mocha": "^3.0.1",
"gulp-sourcemaps": "^1.6.0", "gulp-sourcemaps": "^1.6.0",
"gulp-typedoc": "^2.0.0", "gulp-typedoc": "^2.0.0",
"lodash": "^4.16.1", "lodash": "^4.16.2",
"npmextra": "^2.0.3", "npmextra": "^2.0.3",
"projectinfo": "1.0.3", "projectinfo": "1.0.3",
"q": "^1.4.1", "q": "^1.4.1",
@ -59,12 +59,12 @@
"smartcli": "1.0.9", "smartcli": "1.0.9",
"smartcov": "1.0.0", "smartcov": "1.0.0",
"smartenv": "1.2.5", "smartenv": "1.2.5",
"smartfile": "4.0.21", "smartfile": "4.0.22",
"smartpath": "3.2.2", "smartpath": "3.2.2",
"smartstream": "^1.0.5", "smartstream": "^1.0.5",
"smartstring": "^2.0.17", "smartstring": "^2.0.17",
"source-map-support": "^0.4.2", "source-map-support": "^0.4.3",
"tsn": "^2.0.3", "tsn": "^2.0.4",
"typedoc": "^0.4.5", "typedoc": "^0.4.5",
"typescript": "next", "typescript": "next",
"typings-global": "^1.0.14" "typings-global": "^1.0.14"

View File

@ -1,8 +1,8 @@
import 'typings-global'
/* ================================================== * /* ================================================== *
Starting NPMTS main process. **** NPMTS ****
Fabulous TypeScript development
* ================================================== */ * ================================================== */
import * as early from 'early' import * as early from 'early'
early.start('NPMTS') early.start('NPMTS')
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'

View File

@ -1,10 +1,11 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import * as q from 'q'
import {npmtsOra} from './npmts.promisechain' import {npmtsOra} from './npmts.promisechain'
export var run = function(configArg){ export var run = function(configArg){
let done = plugins.q.defer() let done = q.defer()
let config = configArg let config = configArg
npmtsOra.text('now looking at ' + 'required assets'.yellow) npmtsOra.text('now looking at ' + 'required assets'.yellow)
if (config.cli === true) { if (config.cli === true) {

View File

@ -1,13 +1,15 @@
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'
import * as paths from './npmts.paths' import * as paths from './npmts.paths'
import { npmtsOra } from './npmts.promisechain'
import * as q from 'q'
import { npmtsOra } from './npmts.promisechain'
import {ProjectinfoNpm} from 'projectinfo' import {ProjectinfoNpm} from 'projectinfo'
export let projectInfo: ProjectinfoNpm export let projectInfo: ProjectinfoNpm
let checkProjectTypings = (configArg) => { let checkProjectTypings = (configArg) => {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('Check Module: Check Project Typings...') npmtsOra.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,7 +36,7 @@ const depcheckOptions = {
} }
let checkDependencies = (configArg) => { let checkDependencies = (configArg) => {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('Check Module: Check Dependencies...') npmtsOra.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,7 +72,7 @@ let checkDependencies = (configArg) => {
} }
let checkDevDependencies = (configArg) => { let checkDevDependencies = (configArg) => {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('Check Module: Check devDependencies...') npmtsOra.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,14 +108,14 @@ let checkDevDependencies = (configArg) => {
} }
let checkNodeVersion = (configArg) => { let checkNodeVersion = (configArg) => {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('checking node version') npmtsOra.text('checking node version')
done.resolve(configArg) done.resolve(configArg)
return done.promise return done.promise
} }
export let run = (configArg) => { export let run = (configArg) => {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('Check Module: ...') npmtsOra.text('Check Module: ...')
checkProjectTypings(configArg) checkProjectTypings(configArg)
.then(checkDependencies) .then(checkDependencies)

View File

@ -1,24 +1,45 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import {npmtsOra} from './npmts.promisechain'
let removeDist = function(){ import * as q from 'q'
import { npmtsOra } from './npmts.promisechain'
/**
* removes the dist directory which will be entirely rebuild
*/
let removeDist = function () {
npmtsOra.text('cleaning dist folder') npmtsOra.text('cleaning dist folder')
return plugins.smartfile.fs.remove(paths.distDir) return plugins.smartfile.fs.remove(paths.distDir)
} }
let removePages = function(){ /**
* remove .d.ts files from testDirctory
*/
let removeTestDeclarations = function () {
let done = q.defer()
plugins.smartfile.fs.listFileTree('./test/', '**/*.d.ts').then(fileArray => {
let fileArrayToRemove = plugins.smartpath.transform.toAbsolute(fileArray, process.cwd() + '//test/')
plugins.smartfile.fs.removeManySync(fileArrayToRemove)
done.resolve()
})
}
/**
* remove old pages
*/
let removePages = function () {
npmtsOra.text('cleaning pages folder') npmtsOra.text('cleaning pages folder')
return plugins.smartfile.fs.remove(paths.pagesDir) return plugins.smartfile.fs.remove(paths.pagesDir)
} }
export let run = function(configArg){ export let run = function (configArg) {
npmtsOra.text('cleaning up from previous builds...') npmtsOra.text('cleaning up from previous builds...')
let done = plugins.q.defer() let done = q.defer()
removeDist() removeDist()
.then(removeTestDeclarations)
.then(removePages) .then(removePages)
.then(function(){ .then(function () {
plugins.beautylog.ok('Cleaned up from previous builds!') plugins.beautylog.ok('Cleaned up from previous builds!')
done.resolve(configArg) done.resolve(configArg)
}) })

View File

@ -1,21 +1,23 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import * as q from 'q'
import {npmtsOra} from './npmts.promisechain' import {npmtsOra} from './npmts.promisechain'
export let run = function (configArg) { export let run = function (configArg) {
let done = plugins.q.defer() let done = q.defer()
let config = configArg let config = configArg
npmtsOra.text('now compiling ' + 'TypeScript'.yellow) npmtsOra.text('now compiling ' + 'TypeScript'.yellow)
plugins.tsn.compileGlobStringObject(config.ts,config.tsOptions,paths.cwd) plugins.tsn.compileGlobStringObject(config.ts,config.tsOptions,paths.cwd)
.then(() => { .then(() => {
plugins.beautylog.ok('compiled main TypeScript!') plugins.beautylog.ok('compiled main TypeScript!')
plugins.beautylog.log('now compiling tests!') plugins.beautylog.log('now compiling tests!')
return plugins.tsn.compileGlobStringObject(config.testTs) return plugins.tsn.compileGlobStringObject(config.testTs,config.tsOptions,paths.cwd)
}) })
.then(function () { .then(function () {
plugins.beautylog.ok('compiled all TypeScript!') plugins.beautylog.ok('compiled all TypeScript!')
done.resolve(config) done.resolve(config)
}) }).catch(err => { console.log(err) })
return done.promise return done.promise
} }

View File

@ -1,6 +1,8 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import * as q from 'q'
import { npmtsOra } from './npmts.promisechain' import { npmtsOra } from './npmts.promisechain'
export type npmtsMode = 'default' | 'custom' export type npmtsMode = 'default' | 'custom'
@ -19,7 +21,7 @@ export interface INpmtsConfig {
}; };
export var run = function (argvArg) { export var run = function (argvArg) {
let done = plugins.q.defer() let done = q.defer()
let defaultConfig: INpmtsConfig = { let defaultConfig: INpmtsConfig = {
argv: undefined, argv: undefined,
coverageTreshold: 70, coverageTreshold: 70,
@ -59,10 +61,10 @@ export var run = function (argvArg) {
// handle default mode // handle default mode
if (config.mode === 'default') { if (config.mode === 'default') {
config.ts = { config.ts = {
['./ts/**/*.ts']: './dist/' './ts/**/*.ts': './dist/'
} }
config.testTs = { config.testTs = {
['./test/test.ts']: './test/' './test/**/*.ts': './test/'
} }
}; };

View File

@ -1,4 +1,3 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
// NPMTS Paths // NPMTS Paths

View File

@ -1,8 +1,8 @@
import 'typings-global' import 'typings-global'
export import beautylog = require('beautylog') import * as beautylog from 'beautylog'
export let depcheck = require('depcheck') let depcheck = require('depcheck')
export import gulp = require('gulp') import * as gulp from 'gulp'
export let g = { let g = {
babel: require('gulp-babel'), babel: require('gulp-babel'),
istanbul: require('gulp-istanbul'), istanbul: require('gulp-istanbul'),
gFunction: require('gulp-function'), gFunction: require('gulp-function'),
@ -11,19 +11,39 @@ export let g = {
sourcemaps: require('gulp-sourcemaps'), sourcemaps: require('gulp-sourcemaps'),
typedoc: require('gulp-typedoc') typedoc: require('gulp-typedoc')
} }
export import lodash = require('lodash') import * as lodash from 'lodash'
export import npmextra = require('npmextra') import * as npmextra from 'npmextra'
export import projectinfo = require('projectinfo') import * as projectinfo from 'projectinfo'
export import path = require('path') import * as path from 'path'
export import q = require('q') import * as shelljs from 'shelljs'
export import shelljs = require('shelljs') import * as smartchok from 'smartchok'
export import smartchok = require('smartchok') import * as smartcli from 'smartcli'
export import smartcli = require('smartcli') import * as smartcov from 'smartcov'
export import smartcov = require('smartcov') import * as smartenv from 'smartenv'
export import smartenv = require('smartenv') import * as smartfile from 'smartfile'
export import smartfile = require('smartfile') import * as smartpath from 'smartpath'
export import smartpath = require('smartpath') import * as smartstream from 'smartstream'
export import smartstream = require('smartstream') import * as smartstring from 'smartstring'
export import smartstring = require('smartstring')
export let sourceMapSupport = require('source-map-support').install() // display errors correctly during testing export let sourceMapSupport = require('source-map-support').install() // display errors correctly during testing
export import tsn = require('tsn') import * as tsn from 'tsn'
export {
beautylog,
depcheck,
gulp,
g,
lodash,
npmextra,
projectinfo,
path,
shelljs,
smartchok,
smartcli,
smartcov,
smartenv,
smartfile,
smartpath,
smartstream,
smartstring,
tsn
}

View File

@ -1,7 +1,8 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import {Ora} from 'beautylog' import {Ora} from 'beautylog'
import * as q from 'q'
export let npmtsOra = new Ora('setting up TaskChain','cyan') export let npmtsOra = new Ora('setting up TaskChain','cyan')
import * as NpmtsAssets from './npmts.assets' import * as NpmtsAssets from './npmts.assets'
@ -14,7 +15,7 @@ import * as NpmtsTests from './npmts.tests'
import * as NpmtsWatch from './npmts.watch' import * as NpmtsWatch from './npmts.watch'
export let run = function(argvArg){ export let run = function(argvArg){
let done = plugins.q.defer() let done = q.defer()
npmtsOra.start() npmtsOra.start()
NpmtsOptions.run(argvArg) NpmtsOptions.run(argvArg)
.then(NpmtsClean.run) .then(NpmtsClean.run)

View File

@ -1,6 +1,8 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import * as q from 'q'
import { npmtsOra } from './npmts.promisechain' import { npmtsOra } from './npmts.promisechain'
import { INpmtsConfig } from './npmts.options' import { INpmtsConfig } from './npmts.options'
@ -11,7 +13,7 @@ import { INpmtsConfig } from './npmts.options'
let mocha = function (configArg: INpmtsConfig) { let mocha = function (configArg: INpmtsConfig) {
npmtsOra.text('Instrumentalizing and testing transpiled JS') npmtsOra.text('Instrumentalizing and testing transpiled JS')
npmtsOra.end() // end npmtsOra for tests. npmtsOra.end() // end npmtsOra for tests.
let done = plugins.q.defer() let done = q.defer()
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')]) plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.g.sourcemaps.init()) .pipe(plugins.g.sourcemaps.init())
.pipe(plugins.g.babel({ .pipe(plugins.g.babel({
@ -52,7 +54,7 @@ let mocha = function (configArg: INpmtsConfig) {
} }
let coverage = function (configArg: INpmtsConfig) { let coverage = function (configArg: INpmtsConfig) {
let done = plugins.q.defer() let done = q.defer()
plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2) plugins.smartcov.get.percentage(plugins.path.join(paths.coverageDir, 'lcov.info'), 2)
.then(function (percentageArg) { .then(function (percentageArg) {
if (percentageArg >= configArg.coverageTreshold) { if (percentageArg >= configArg.coverageTreshold) {
@ -76,7 +78,7 @@ let coverage = function (configArg: INpmtsConfig) {
} }
export let run = function (configArg: INpmtsConfig) { export let run = function (configArg: INpmtsConfig) {
let done = plugins.q.defer() let done = q.defer()
let config = configArg let config = configArg
if (config.test === true) { if (config.test === true) {
npmtsOra.text('now starting tests') npmtsOra.text('now starting tests')

View File

@ -1,12 +1,13 @@
import 'typings-global'
import plugins = require('./npmts.plugins') import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths') import paths = require('./npmts.paths')
import { npmtsOra } from './npmts.promisechain' import { npmtsOra } from './npmts.promisechain'
import * as q from 'q'
import { projectInfo } from './npmts.check' import { projectInfo } from './npmts.check'
let genTypeDoc = function (configArg) { let genTypeDoc = function (configArg) {
let done = plugins.q.defer() let done = q.defer()
npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow) npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow)
plugins.beautylog.log('TypeDoc Output:') plugins.beautylog.log('TypeDoc Output:')
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts')) plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts'))
@ -32,7 +33,7 @@ let genTypeDoc = function (configArg) {
} }
export let run = function (configArg) { export let run = function (configArg) {
let done = plugins.q.defer() let done = q.defer()
if (configArg.docs) { if (configArg.docs) {
genTypeDoc(configArg) genTypeDoc(configArg)
.then(() => { .then(() => {

View File

@ -1,10 +1,13 @@
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'
import * as promisechain from './npmts.promisechain' import * as promisechain from './npmts.promisechain'
let npmtsSmartchok: plugins.smartchok.Smartchok = null
import * as q from 'q'
import { INpmtsConfig } from './npmts.options' import { INpmtsConfig } from './npmts.options'
let npmtsSmartchok: plugins.smartchok.Smartchok = null
export let run = (configArg: INpmtsConfig) => { export let run = (configArg: INpmtsConfig) => {
let done = plugins.q.defer() let done = q.defer()
if (configArg.watch && npmtsSmartchok === null) { if (configArg.watch && npmtsSmartchok === null) {
let pathsToWatch: string[] = [] let pathsToWatch: string[] = []
for (let key in configArg.ts) { for (let key in configArg.ts) {