Compare commits

...

46 Commits

Author SHA1 Message Date
65fe421de1 6.1.9 2017-01-21 23:23:03 +01:00
d94d66ef19 update beautylog 2017-01-21 23:23:00 +01:00
3e4ac03a63 6.1.8 2017-01-21 20:45:35 +01:00
0948fa806c update deps 2017-01-21 20:45:32 +01:00
53980160df 6.1.7 2017-01-21 19:59:22 +01:00
886f1ae6f4 update dependencies 2017-01-21 19:59:20 +01:00
4602e7e3c9 6.1.6 2017-01-21 19:37:32 +01:00
1dbb5f6f36 update dependencies 2017-01-21 19:37:29 +01:00
1023bf9f3c 6.1.5 2017-01-20 18:42:05 +01:00
78bebcda25 fix testing for rxjs 2017-01-20 18:38:02 +01:00
74deee70a3 6.1.4 2017-01-18 01:04:22 +01:00
019864a484 remove shelljs 2017-01-18 01:04:19 +01:00
80db0fc581 6.1.3 2017-01-18 00:58:16 +01:00
9a25b4ef91 remove q in favour of smartq 2017-01-18 00:58:09 +01:00
9f42a20e4b Merge branch 'master' into 'master'
add ES2015.iterable

See merge request !1
2017-01-17 17:42:21 +00:00
dbb8fd0fff add ES2015.iterable 2017-01-17 16:47:19 +01:00
4368713ad5 6.1.2 2017-01-15 21:45:12 +01:00
58cea5cb48 fix lib inclusion for tests 2017-01-15 21:45:08 +01:00
329e0dc101 6.1.1 2017-01-15 20:12:26 +01:00
da45d002a3 some fixes for es5 transpilation 2017-01-15 20:12:12 +01:00
59e811247f remove unused dep 2017-01-15 20:06:07 +01:00
7bcd2f4f5d 6.1.0 2017-01-15 20:01:15 +01:00
78d77c003c remove babel and instead use typescript 2017-01-15 20:01:10 +01:00
aca85d2ff3 6.0.0 2017-01-15 14:32:32 +01:00
f03c4a45c2 remove TypeDoc 2017-01-15 14:32:28 +01:00
faf55e4e31 5.5.12 2016-12-18 23:14:01 +01:00
b78fe35e88 5.5.11 2016-12-18 21:35:37 +01:00
7ab4561727 add new npmpage 2016-12-18 21:35:23 +01:00
200f44a792 5.5.10 2016-11-25 13:42:53 +01:00
312dc4bd7f remove unnecessary logging 2016-11-25 13:42:46 +01:00
60bed4cb1f 5.5.9 2016-11-25 13:19:02 +01:00
8831a8d173 empty Buffer at end of transpilation 2016-11-25 13:18:59 +01:00
36f540a22e 5.5.8 2016-11-25 13:03:44 +01:00
7e61b49d04 fix 16 file treshold 2016-11-25 13:03:41 +01:00
57aa38af89 5.5.7 2016-11-25 00:52:25 +01:00
12cf37f01f update messages for better feedback 2016-11-25 00:52:17 +01:00
44150f4d83 5.5.6 2016-11-25 00:36:50 +01:00
3fd755691d now catching babel errors 2016-11-25 00:36:44 +01:00
00983205ce 5.5.5 2016-11-22 18:54:56 +01:00
a0b1b1847c improve README 2016-11-22 18:54:35 +01:00
be9e98ad0c 5.5.4 2016-11-22 18:52:48 +01:00
84578e8dd0 update README 2016-11-22 18:51:51 +01:00
6d759706ac 5.5.3 2016-10-27 21:59:24 +02:00
2bd4063d22 speed bump 2016-10-27 21:59:19 +02:00
c274590184 5.5.2 2016-10-22 02:38:59 +02:00
de8992da84 fix some minor issues 2016-10-22 02:38:55 +02:00
56 changed files with 239 additions and 365 deletions

View File

@ -1,3 +1,4 @@
# standard ci
image: hosttoday/ht-docker-node:npmci image: hosttoday/ht-docker-node:npmci
stages: stages:
@ -50,7 +51,7 @@ pages:
image: hosttoday/ht-docker-node:npmpage image: hosttoday/ht-docker-node:npmpage
stage: pages stage: pages
script: script:
- npmci command npmpage --host gitlab - npmci command npmpage --publish gitlab
only: only:
- tags - tags
artifacts: artifacts:

View File

@ -1,4 +1,3 @@
.idea/
compile/ compile/
coverage/ coverage/
test/ test/

View File

@ -1,7 +1,5 @@
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 6.0.0 (unreleased) v 6.0.0 (released)
- handle bithound - remove TypeDoc, please look at npmpage
- check package.json - check package.json
- check .gitlab-ci-yml
- check appveyor.yml

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2016 Push.Rocks Copyright (c) 2016 Lossless GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -10,6 +10,8 @@ Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
## Status for master ## Status for master
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/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) [![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmts.svg)](https://www.npmjs.com/package/npmts)
[![docker pulls](https://img.shields.io/docker/pulls/hosttoday/ht-docker-node.svg)](https://hub.docker.com/r/hosttoday/ht-docker-node/)
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts) [![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 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) [![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)

View File

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

6
dist/mod00/index.js vendored
View File

@ -2,15 +2,15 @@
/* ------------------------------------------ /* ------------------------------------------
* This module compiles TypeScript files * This module compiles TypeScript files
* -------------------------------------------- */ * -------------------------------------------- */
const q = require("q"); const q = require("smartq");
const npmts_log_1 = require("../npmts.log"); const plugins = require("./mod00.plugins");
const NpmtsAssets = require("./mod00.assets"); const NpmtsAssets = require("./mod00.assets");
const NpmtsCheck = require("./mod00.check"); const NpmtsCheck = require("./mod00.check");
const NpmtsClean = require("./mod00.clean"); const NpmtsClean = require("./mod00.clean");
const NpmtsCompile = require("./mod00.compile"); const NpmtsCompile = require("./mod00.compile");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.text('starting TypeScript Compilation'); plugins.beautylog.ora.text('starting TypeScript Compilation');
NpmtsClean.run(configArg) NpmtsClean.run(configArg)
.then(NpmtsCheck.run) .then(NpmtsCheck.run)
.then(NpmtsCompile.run) .then(NpmtsCompile.run)

View File

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

View File

@ -1,13 +1,12 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const paths = require("../npmts.paths"); const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins"); const plugins = require("./mod00.plugins");
const mod00_check_1 = require("../mod00/mod00.check"); const mod00_check_1 = require("../mod00/mod00.check");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
npmts_log_1.npmtsOra.text('now looking at ' + 'required assets'.yellow); plugins.beautylog.ora.text('now looking at ' + 'required assets'.yellow);
if (config.cli === true) { if (config.cli === true) {
let mainJsPath = mod00_check_1.projectInfo.packageJson.main; let mainJsPath = mod00_check_1.projectInfo.packageJson.main;
let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js')); let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js'));

View File

@ -1,5 +1,3 @@
/// <reference types="q" />
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) => q.Promise<{}>; export declare let run: (configArg: any) => Promise<{}>;

View File

@ -1,12 +1,11 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const projectinfo_1 = require("projectinfo"); const projectinfo_1 = require("projectinfo");
const paths = require("../npmts.paths"); const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins"); const plugins = require("./mod00.plugins");
let checkProjectTypings = (configArg) => { let checkProjectTypings = (configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.text('Check Module: Check Project Typings...'); plugins.beautylog.ora.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') {
plugins.beautylog.error(`please add typings field to package.json`); plugins.beautylog.error(`please add typings field to package.json`);
@ -32,7 +31,7 @@ const depcheckOptions = {
}; };
let checkDependencies = (configArg) => { let checkDependencies = (configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.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: [ ignoreDirs: [
'test', 'test',
@ -49,7 +48,7 @@ let checkDependencies = (configArg) => {
plugins.beautylog.warn(`Watch out: unused dependency "${item}"`); plugins.beautylog.warn(`Watch out: unused dependency "${item}"`);
} }
for (let item in unused.missing) { for (let item in unused.missing) {
plugins.beautylog.error(`unused devDependency "${item}"`); plugins.beautylog.error(`missing dependency "${item}" in package.json`);
} }
if (unused.missing.length > 0) { if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json'); plugins.beautylog.info('exiting due to missing dependencies in package.json');
@ -68,7 +67,7 @@ let checkDependencies = (configArg) => {
}; };
let checkDevDependencies = (configArg) => { let checkDevDependencies = (configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.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: [ ignoreDirs: [
'ts', 'ts',
@ -103,13 +102,13 @@ let checkDevDependencies = (configArg) => {
}; };
let checkNodeVersion = (configArg) => { let checkNodeVersion = (configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.text('checking node version'); plugins.beautylog.ora.text('checking node version');
done.resolve(configArg); done.resolve(configArg);
return done.promise; return done.promise;
}; };
exports.run = (configArg) => { exports.run = (configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.text('Check Module: ...'); plugins.beautylog.ora.text('Check Module: ...');
checkProjectTypings(configArg) checkProjectTypings(configArg)
.then(checkDependencies) .then(checkDependencies)
.then(checkDevDependencies) .then(checkDevDependencies)

View File

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

View File

@ -1,13 +1,12 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const paths = require("../npmts.paths"); const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins"); const plugins = require("./mod00.plugins");
/** /**
* removes the dist directory which will be entirely rebuild * removes the dist directory which will be entirely rebuild
*/ */
let removeDist = function () { let removeDist = function () {
npmts_log_1.npmtsOra.text('cleaning dist folder'); plugins.beautylog.ora.text('cleaning dist folder');
return plugins.smartfile.fs.remove(paths.distDir); return plugins.smartfile.fs.remove(paths.distDir);
}; };
/** /**
@ -25,11 +24,11 @@ let removeTestDeclarations = function () {
* remove old pages * remove old pages
*/ */
let removePages = function () { let removePages = function () {
npmts_log_1.npmtsOra.text('cleaning pages folder'); plugins.beautylog.ora.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_log_1.npmtsOra.text('cleaning up from previous builds...'); plugins.beautylog.ora.text('cleaning up from previous builds...');
let done = q.defer(); let done = q.defer();
removeDist() removeDist()
.then(removeTestDeclarations) .then(removeTestDeclarations)

View File

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

View File

@ -1,12 +1,11 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const paths = require("../npmts.paths"); const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins"); const plugins = require("./mod00.plugins");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
npmts_log_1.npmtsOra.text('now compiling ' + 'TypeScript'.yellow); plugins.beautylog.ora.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!');

View File

@ -1,6 +1,5 @@
export * from '../npmts.plugins'; export * from '../npmts.plugins';
import * as tsn from 'tsn'; import * as tsn from 'tsn';
import * as shelljs from 'shelljs';
import * as smartchok from 'smartchok'; import * as smartchok from 'smartchok';
import * as smartstream from 'smartstream'; import * as smartstream from 'smartstream';
export { tsn, shelljs, smartchok, smartstream }; export { tsn, smartchok, smartstream };

View File

@ -5,8 +5,6 @@ function __export(m) {
__export(require("../npmts.plugins")); __export(require("../npmts.plugins"));
const tsn = require("tsn"); const tsn = require("tsn");
exports.tsn = tsn; exports.tsn = tsn;
const shelljs = require("shelljs");
exports.shelljs = shelljs;
const smartchok = require("smartchok"); const smartchok = require("smartchok");
exports.smartchok = smartchok; exports.smartchok = smartchok;
const smartstream = require("smartstream"); const smartstream = require("smartstream");

View File

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

48
dist/mod01/index.js vendored
View File

@ -2,53 +2,9 @@
/* ------------------------------------------ /* ------------------------------------------
* This module creates TypeScript documentation * This module creates TypeScript documentation
* -------------------------------------------- */ * -------------------------------------------- */
const q = require("q"); const q = require("smartq");
const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod01.plugins");
const mod00_check_1 = require("../mod00/mod00.check");
let genTypeDoc = function (configArg) {
let done = q.defer();
npmts_log_1.npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow);
plugins.beautylog.log('TypeDoc Output:');
let localSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts')),
plugins.gulpTypedoc({
// TypeScript options (see typescript docs)
module: 'commonjs',
target: 'es6',
includeDeclarations: true,
// Output options (see typedoc docs)
out: paths.pagesApiDir,
json: plugins.path.join(paths.pagesApiDir, 'file.json'),
// TypeDoc options (see typedoc docs)
name: mod00_check_1.projectInfo.name,
readme: plugins.path.join(paths.cwd, 'README.md'),
// theme: "default",
version: true
})
]);
localSmartstream.run().then(() => {
plugins.beautylog.ok('TypeDoc documentation generated!');
done.resolve(configArg);
}, (err) => {
plugins.beautylog.warn('TypeDoc documentation generation failed!');
console.log(err);
done.resolve(configArg);
});
return done.promise;
};
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
if (configArg.docs) { done.resolve(configArg);
genTypeDoc(configArg)
.then(() => {
done.resolve(configArg);
});
}
else {
done.resolve(configArg);
}
;
return done.promise; return done.promise;
}; };

View File

@ -1,4 +1 @@
export * from '../npmts.plugins'; export * from '../npmts.plugins';
import * as gulp from 'gulp';
declare let gulpTypedoc: any;
export { gulp, gulpTypedoc };

View File

@ -3,7 +3,3 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
} }
__export(require("../npmts.plugins")); __export(require("../npmts.plugins"));
const gulp = require("gulp");
exports.gulp = gulp;
let gulpTypedoc = require('gulp-typedoc');
exports.gulpTypedoc = gulpTypedoc;

View File

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

91
dist/mod02/index.js vendored
View File

@ -1,45 +1,66 @@
"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());
});
};
/* ------------------------------------------ /* ------------------------------------------
* This module tests the compiled TypeScript files * This module tests the compiled TypeScript files
* -------------------------------------------- */ * -------------------------------------------- */
const plugins = require("./mod02.plugins"); const plugins = require("./mod02.plugins");
const paths = require("../npmts.paths"); const paths = require("../npmts.paths");
const q = require("q"); const q = require("smartq");
const npmts_log_1 = require("../npmts.log");
/** /**
* runs mocha * runs mocha
* @returns INpmtsConfig * @returns INpmtsConfig
*/ */
let mocha = function (configArg) { let mocha = function (configArg) {
npmts_log_1.npmtsOra.text('Instrumentalizing and testing transpiled JS'); plugins.beautylog.ora.text('Instrumentalizing and testing transpiled JS');
npmts_log_1.npmtsOra.end(); // end npmtsOra for tests. plugins.beautylog.ora.end(); // end plugins.beautylog.ora for tests.
let done = q.defer(); let done = q.defer();
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')]) let coverageSmartstream = new plugins.smartstream.Smartstream([
.pipe(plugins.gulpSourcemaps.init()) plugins.gulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
.pipe(plugins.gulpBabel({ plugins.gulpSourcemaps.init(),
presets: [ plugins.gulpTypeScript({
require.resolve('babel-preset-es2015') target: 'ES5',
] emitDecoratorMetadata: true,
})) experimentalDecorators: true,
.pipe(plugins.gulpIstanbul({})) lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
.pipe(plugins.gulpSourcemaps.write()) }),
.pipe(plugins.gulpInjectModules()) plugins.gulpIstanbul({}),
.on('finish', function () { plugins.gulpSourcemaps.write(),
let localSmartstream = new plugins.smartstream.Smartstream([ plugins.gulpFunction.forEach((file) => __awaiter(this, void 0, void 0, function* () {
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]), file.path = file.path.replace(paths.tsDir, paths.distDir);
plugins.gulpBabel({ })),
presets: [ plugins.gulpInjectModules(),
require.resolve('babel-preset-es2015') plugins.through2.obj((file, enc, cb) => {
] cb();
}), }, (cb) => {
plugins.gulpInjectModules(), cb();
plugins.gulpMocha(), })
plugins.gulpIstanbul.writeReports({ ]);
dir: plugins.path.join(paths.cwd, './coverage'), let localSmartstream = new plugins.smartstream.Smartstream([
reporters: ['lcovonly', 'json', 'text', 'text-summary'] plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.ts')]),
}) plugins.gulpTypeScript({
]); target: 'ES5',
localSmartstream.run() emitDecoratorMetadata: true,
experimentalDecorators: true,
lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
}),
plugins.gulpInjectModules(),
plugins.gulpMocha(),
plugins.gulpIstanbul.writeReports({
dir: plugins.path.join(paths.cwd, './coverage'),
reporters: ['lcovonly', 'json', 'text', 'text-summary']
})
]);
coverageSmartstream.run()
.then(() => {
plugins.beautylog.info('code is now transpiled to ES5, instrumented with istanbul, and injected for mocha!');
return localSmartstream.run()
.then(() => { done.resolve(configArg); }, (err) => { .then(() => { done.resolve(configArg); }, (err) => {
plugins.beautylog.error('Tests failed!'); plugins.beautylog.error('Tests failed!');
console.log(err); console.log(err);
@ -50,6 +71,8 @@ let mocha = function (configArg) {
process.exit(1); process.exit(1);
} }
}); });
}, (err) => {
console.log(err);
}); });
return done.promise; return done.promise;
}; };
@ -79,18 +102,18 @@ exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; let config = configArg;
if (config.test === true) { if (config.test === true) {
npmts_log_1.npmtsOra.text('now starting tests'); plugins.beautylog.ora.text('now starting tests');
plugins.beautylog.log('-------------------------------------------------------\n' + plugins.beautylog.log('------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' + '*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------'); '--------------------------------------------------------------');
mocha(config) mocha(config)
.then(coverage) .then(coverage)
.then(() => { .then(() => {
done.resolve(config); done.resolve(config);
}); }).catch(err => { console.log(err); });
} }
else { else {
npmts_log_1.npmtsOra.end(); plugins.beautylog.ora.end();
done.resolve(config); done.resolve(config);
} }
return done.promise; return done.promise;

View File

@ -1,9 +1,9 @@
export * from '../npmts.plugins'; export * from '../npmts.plugins';
import * as gulp from 'gulp'; import * as gulp from 'gulp';
import * as gulpBabel from 'gulp-babel';
import * as gulpIstanbul from 'gulp-istanbul';
import * as gulpFunction from 'gulp-function'; import * as gulpFunction from 'gulp-function';
import * as gulpIstanbul from 'gulp-istanbul';
declare let gulpInjectModules: any; declare let gulpInjectModules: any;
import * as gulpMocha from 'gulp-mocha'; import * as gulpMocha from 'gulp-mocha';
import * as gulpSourcemaps from 'gulp-sourcemaps'; import * as gulpSourcemaps from 'gulp-sourcemaps';
export { gulp, gulpBabel, gulpIstanbul, gulpFunction, gulpInjectModules, gulpMocha, gulpSourcemaps }; import * as gulpTypeScript from 'gulp-typescript';
export { gulp, gulpFunction, gulpIstanbul, gulpInjectModules, gulpMocha, gulpSourcemaps, gulpTypeScript };

View File

@ -5,15 +5,15 @@ function __export(m) {
__export(require("../npmts.plugins")); __export(require("../npmts.plugins"));
const gulp = require("gulp"); const gulp = require("gulp");
exports.gulp = gulp; exports.gulp = gulp;
const gulpBabel = require("gulp-babel");
exports.gulpBabel = gulpBabel;
const gulpIstanbul = require("gulp-istanbul");
exports.gulpIstanbul = gulpIstanbul;
const gulpFunction = require("gulp-function"); const gulpFunction = require("gulp-function");
exports.gulpFunction = gulpFunction; exports.gulpFunction = gulpFunction;
const gulpIstanbul = require("gulp-istanbul");
exports.gulpIstanbul = gulpIstanbul;
let gulpInjectModules = require('gulp-inject-modules'); let gulpInjectModules = require('gulp-inject-modules');
exports.gulpInjectModules = gulpInjectModules; exports.gulpInjectModules = gulpInjectModules;
const gulpMocha = require("gulp-mocha"); const gulpMocha = require("gulp-mocha");
exports.gulpMocha = gulpMocha; exports.gulpMocha = gulpMocha;
const gulpSourcemaps = require("gulp-sourcemaps"); const gulpSourcemaps = require("gulp-sourcemaps");
exports.gulpSourcemaps = gulpSourcemaps; exports.gulpSourcemaps = gulpSourcemaps;
const gulpTypeScript = require("gulp-typescript");
exports.gulpTypeScript = gulpTypeScript;

4
dist/npmts.cli.d.ts vendored
View File

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

5
dist/npmts.cli.js vendored
View File

@ -1,12 +1,11 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths"); const paths = require("./npmts.paths");
const NpmtsConfig = require("./npmts.config"); const NpmtsConfig = require("./npmts.config");
const NpmtsMods = require("./npmts.mods"); const NpmtsMods = require("./npmts.mods");
const NpmtsWatch = require("./npmts.watch"); const NpmtsWatch = require("./npmts.watch");
const NpmtsShip = require("./npmts.ship"); const NpmtsShip = require("./npmts.ship");
const npmts_log_1 = require("./npmts.log");
exports.run = () => { exports.run = () => {
let done = q.defer(); let done = q.defer();
let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot); let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot);
@ -19,7 +18,7 @@ exports.run = () => {
}) })
.then((configArg) => { .then((configArg) => {
let done = q.defer(); let done = q.defer();
npmts_log_1.npmtsOra.start('loading additional modules...'); plugins.beautylog.ora.start('loading additional modules...');
NpmtsMods.mod00.load() NpmtsMods.mod00.load()
.then((mod00) => { .then((mod00) => {
return mod00.run(configArg); return mod00.run(configArg);

View File

@ -1,10 +1,7 @@
/// <reference types="q" />
import * as q from 'q';
export declare type npmtsMode = 'default' | 'custom'; export declare type npmtsMode = 'default' | 'custom';
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any; argv: any;
coverageTreshold: number; coverageTreshold: number;
docs: boolean;
mode: npmtsMode; mode: npmtsMode;
test: boolean; test: boolean;
testTs: any; testTs: any;
@ -12,4 +9,4 @@ export interface INpmtsConfig {
tsOptions: any; tsOptions: any;
watch: boolean; watch: boolean;
} }
export declare var run: (argvArg: any) => q.Promise<{}>; export declare let run: (argvArg: any) => Promise<{}>;

10
dist/npmts.config.js vendored
View File

@ -1,15 +1,13 @@
"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 q = require("smartq");
const npmts_log_1 = require("./npmts.log");
; ;
exports.run = function (argvArg) { exports.run = function (argvArg) {
let done = q.defer(); let done = q.defer();
let defaultConfig = { let defaultConfig = {
argv: undefined, argv: undefined,
coverageTreshold: 70, coverageTreshold: 70,
docs: true,
mode: 'default', mode: 'default',
test: true, test: true,
testTs: {}, testTs: {},
@ -18,7 +16,7 @@ exports.run = function (argvArg) {
watch: false watch: false
}; };
// mix with configfile // mix with configfile
npmts_log_1.npmtsOra.text('running npmextra'); plugins.beautylog.ora.text('running npmextra');
let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd); let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd);
let config = localNpmextra.dataFor('npmts', defaultConfig); let config = localNpmextra.dataFor('npmts', defaultConfig);
// add argv // add argv
@ -50,10 +48,6 @@ exports.run = function (argvArg) {
config.test = false; config.test = false;
} }
; ;
if (config.argv.nodocs) {
config.docs = false;
}
;
if (config.argv.watch) { if (config.argv.watch) {
config.watch = true; config.watch = true;
} }

2
dist/npmts.log.d.ts vendored
View File

@ -1,2 +0,0 @@
import { Ora } from 'beautylog';
export declare let npmtsOra: Ora;

3
dist/npmts.log.js vendored
View File

@ -1,3 +0,0 @@
"use strict";
const beautylog_1 = require("beautylog");
exports.npmtsOra = new beautylog_1.Ora('setting up TaskChain', 'cyan');

View File

@ -13,5 +13,6 @@ import * as smartpath from 'smartpath';
import * as smartstream from 'smartstream'; import * as smartstream from 'smartstream';
import * as smartstring from 'smartstring'; import * as smartstring from 'smartstring';
import * as smartsystem from 'smartsystem'; import * as smartsystem from 'smartsystem';
import * as through2 from 'through2';
export declare let sourceMapSupport: any; export declare let sourceMapSupport: any;
export { beautylog, depcheck, lodash, npmextra, projectinfo, path, smartcli, smartcov, smartenv, smartfile, smartpath, smartstream, smartstring, smartsystem }; export { beautylog, depcheck, lodash, npmextra, projectinfo, path, smartcli, smartcov, smartenv, smartfile, smartpath, smartstream, smartstring, smartsystem, through2 };

View File

@ -28,4 +28,6 @@ const smartstring = require("smartstring");
exports.smartstring = smartstring; exports.smartstring = smartstring;
const smartsystem = require("smartsystem"); const smartsystem = require("smartsystem");
exports.smartsystem = smartsystem; exports.smartsystem = smartsystem;
const through2 = require("through2");
exports.through2 = through2;
exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing exports.sourceMapSupport = require('source-map-support').install(); // display errors correctly during testing

2
dist/npmts.ship.js vendored
View File

@ -1,5 +1,5 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
exports.run = (configArg) => { exports.run = (configArg) => {
let done = q.defer(); let done = q.defer();

View File

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

2
dist/npmts.watch.js vendored
View File

@ -1,5 +1,5 @@
"use strict"; "use strict";
const q = require("q"); const q = require("smartq");
const smartchok = require("smartchok"); const smartchok = require("smartchok");
const plugins = require("./npmts.plugins"); const plugins = require("./npmts.plugins");
const cli = require("./npmts.cli"); const cli = require("./npmts.cli");

View File

@ -20,7 +20,6 @@ with default behaviour.
```json ```json
{ {
"mode":"custom", "mode":"custom",
"docs":false,
"test":true, "test":true,
"npmts":{ "npmts":{
"ts":{ "ts":{
@ -38,7 +37,6 @@ 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 |
| `"docs"` | `true` | create docs for your module |
| `"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 |
@ -63,11 +61,6 @@ This is in line with the latest TypeScript best practices.
You can then import plugins via the TypeScript `import` Syntax You can then import plugins via the TypeScript `import` Syntax
and tsc will pick up the declaration file automatically. and tsc will pick up the declaration file automatically.
### TypeDoc
By default TypeDoc will create docs for your module in `./pages/api/` directory.
> Note: Use [npmpage](https://www.npmjs.com/package/npmpage) to build a website for the module.
It also allows you to integrate api docs with a gitbook located in `./docs/`
## Some notes: ## Some notes:
#### Typings for third party modules that do not bundle declaration files #### Typings for third party modules that do not bundle declaration files
NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope. NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope.

View File

@ -4,5 +4,4 @@
1. **Clean:** Clean up from any previous builds (old js files) 1. **Clean:** Clean up from any previous builds (old js files)
1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies 1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies
1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target 1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target
1. **Documentation:** Create TypeDoc Documentation from TypeScript files
1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha. 1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha.

View File

@ -5,11 +5,13 @@ 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) [![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-git.svg)](https://gitlab.com/pushrocks/npmts)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.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) [![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/)
## Status for master ## Status for master
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/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) [![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmts.svg)](https://www.npmjs.com/package/npmts)
[![docker pulls](https://img.shields.io/docker/pulls/hosttoday/ht-docker-node.svg)](https://hub.docker.com/r/hosttoday/ht-docker-node/)
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts) [![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 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) [![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
@ -32,11 +34,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.md) 1. [Intro](https://pushrocks.gitlab.io/npmts/index.html)
* [2. Install](https://pushrocks.gitlab.io/npmts/gitbook/install.md) 2. [Install](https://pushrocks.gitlab.io/npmts/install.html)
* [3. Default Behaviour](https://pushrocks.gitlab.io/npmts/gitbook/default.md) 3. [Default Behaviour](https://pushrocks.gitlab.io/npmts/default.html)
* [4. Configuration](https://pushrocks.gitlab.io/npmts/gitbook/config.md) 4. [Configuration](https://pushrocks.gitlab.io/npmts/config.html)
* [5. Examples](https://pushrocks.gitlab.io/npmts/gitbook/examples.md) 5. [Examples](https://pushrocks.gitlab.io/npmts/examples.html)
* [6. Info](https://pushrocks.gitlab.io/npmts/gitbook/info.md) 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)

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "5.5.1", "version": "6.1.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": {
@ -10,7 +10,7 @@
"test": "(npm run compile && npm run prepareTest && npm run setupCheck && npm run check && npm run checkVersion && npm run checkNoTest && npm run checkNoDocs)", "test": "(npm run compile && npm run prepareTest && npm run setupCheck && npm run check && npm run checkVersion && npm run checkNoTest && npm run checkNoDocs)",
"testShort": "(npm run compile && npm run check)", "testShort": "(npm run compile && npm run check)",
"prepareTest": "(rm -rf test/)", "prepareTest": "(rm -rf test/)",
"compile": "(rm -r dist/ && tsc)", "compile": "(rm -rf dist/ && tsc)",
"setupCheck": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)", "setupCheck": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
"typedoc": "(typedoc --out ./pages/api --target ES6 ./ts/)", "typedoc": "(typedoc --out ./pages/api --target ES6 ./ts/)",
"npmpage": "(npmpage)", "npmpage": "(npmpage)",
@ -27,7 +27,7 @@
"TypeScript", "TypeScript",
"Declaration" "Declaration"
], ],
"author": "Lossless Digital UG (haftungsbeschraenkt)", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://gitlab.com/pushrocks/npmts/issues" "url": "https://gitlab.com/pushrocks/npmts/issues"
@ -35,47 +35,42 @@
"homepage": "https://gitlab.com/pushrocks/npmts#readme", "homepage": "https://gitlab.com/pushrocks/npmts#readme",
"dependencies": { "dependencies": {
"@types/gulp": "^3.8.32", "@types/gulp": "^3.8.32",
"@types/gulp-babel": "^6.1.29",
"@types/gulp-istanbul": "^0.9.30", "@types/gulp-istanbul": "^0.9.30",
"@types/gulp-mocha": "0.0.29", "@types/gulp-mocha": "0.0.29",
"@types/gulp-sourcemaps": "0.0.29", "@types/gulp-sourcemaps": "0.0.29",
"@types/minimatch": "^2.0.29", "@types/minimatch": "^2.0.29",
"@types/q": "^0.x.x", "@types/through2": "^2.0.32",
"@types/shelljs": "^0.3.32", "beautylog": "6.1.0",
"babel-preset-es2015": "^6.16.0", "depcheck": "^0.6.7",
"beautylog": "6.0.0",
"depcheck": "^0.6.4",
"early": "^2.0.35", "early": "^2.0.35",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-babel": "^6.1.2", "gulp-function": "^2.2.3",
"gulp-function": "^2.2.0",
"gulp-inject-modules": "^1.0.0", "gulp-inject-modules": "^1.0.0",
"gulp-istanbul": "^1.1.1", "gulp-istanbul": "^1.1.1",
"gulp-mocha": "^3.0.1", "gulp-mocha": "^3.0.1",
"gulp-sourcemaps": "^2.1.1", "gulp-sourcemaps": "^2.4.0",
"gulp-typedoc": "^2.0.0", "gulp-typescript": "^3.1.4",
"lodash": "^4.16.4", "lodash": "^4.17.4",
"npmextra": "^2.0.3", "npmextra": "^2.0.3",
"projectinfo": "1.0.3", "projectinfo": "3.0.1",
"q": "^1.4.1", "smartchok": "^1.0.4",
"shelljs": "^0.7.4", "smartcli": "2.0.1",
"smartchok": "^1.0.2",
"smartcli": "1.0.10",
"smartcov": "1.0.0", "smartcov": "1.0.0",
"smartenv": "1.2.5", "smartenv": "2.0.0",
"smartfile": "4.0.24", "smartfile": "4.1.4",
"smartpath": "3.2.5", "smartpath": "3.2.7",
"smartq": "^1.0.4",
"smartstream": "^1.0.5", "smartstream": "^1.0.5",
"smartstring": "^2.0.17", "smartstring": "^2.0.22",
"smartsystem": "^1.0.9", "smartsystem": "^1.0.12",
"source-map-support": "^0.4.5", "source-map-support": "^0.4.10",
"tsn": "^2.0.11", "through2": "^2.0.3",
"typedoc": "^0.5.0", "tsn": "^2.0.15",
"typescript": "next", "typescript": "next",
"typings-global": "^1.0.14" "typings-global": "^1.0.14"
}, },
"devDependencies": { "devDependencies": {
"@types/should": "^8.1.30", "@types/should": "^8.1.30",
"should": "^11.1.1" "should": "^11.1.2"
} }
} }

View File

@ -1,9 +1,8 @@
/* ------------------------------------------ /* ------------------------------------------
* This module compiles TypeScript files * This module compiles TypeScript files
* -------------------------------------------- */ * -------------------------------------------- */
import * as q from 'q' import * as q from 'smartq'
import { npmtsOra } from '../npmts.log'
import { INpmtsConfig } from '../npmts.config' import { INpmtsConfig } from '../npmts.config'
import * as plugins from './mod00.plugins' import * as plugins from './mod00.plugins'
@ -13,9 +12,9 @@ import * as NpmtsCheck from './mod00.check'
import * as NpmtsClean from './mod00.clean' import * as NpmtsClean from './mod00.clean'
import * as NpmtsCompile from './mod00.compile' import * as NpmtsCompile from './mod00.compile'
export let run = function(configArg: INpmtsConfig): q.Promise<INpmtsConfig> { export let run = function(configArg: INpmtsConfig): Promise<INpmtsConfig> {
let done = q.defer<INpmtsConfig>() let done = q.defer<INpmtsConfig>()
npmtsOra.text('starting TypeScript Compilation') plugins.beautylog.ora.text('starting TypeScript Compilation')
NpmtsClean.run(configArg) NpmtsClean.run(configArg)
.then(NpmtsCheck.run) .then(NpmtsCheck.run)
.then(NpmtsCompile.run) .then(NpmtsCompile.run)

View File

@ -1,15 +1,14 @@
import * as q from 'q' import * as q from 'smartq'
import paths = require('../npmts.paths') import paths = require('../npmts.paths')
import { npmtsOra } from '../npmts.log'
import plugins = require('./mod00.plugins') import plugins = require('./mod00.plugins')
import { projectInfo } from '../mod00/mod00.check' import { projectInfo } from '../mod00/mod00.check'
export var run = function(configArg){ export let run = function(configArg){
let done = q.defer() let done = q.defer()
let config = configArg let config = configArg
npmtsOra.text('now looking at ' + 'required assets'.yellow) plugins.beautylog.ora.text('now looking at ' + 'required assets'.yellow)
if (config.cli === true) { if (config.cli === true) {
let mainJsPath = projectInfo.packageJson.main let mainJsPath = projectInfo.packageJson.main
let cliJsString: string = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir,'cli.js')) let cliJsString: string = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir,'cli.js'))

View File

@ -1,8 +1,7 @@
import * as q from 'q' import * as q from 'smartq'
import { ProjectinfoNpm } from 'projectinfo' import { ProjectinfoNpm } from 'projectinfo'
import * as paths from '../npmts.paths' import * as paths from '../npmts.paths'
import { npmtsOra } from '../npmts.log'
import * as plugins from './mod00.plugins' import * as plugins from './mod00.plugins'
@ -10,8 +9,8 @@ export let projectInfo: ProjectinfoNpm
let checkProjectTypings = (configArg) => { let checkProjectTypings = (configArg) => {
let done = q.defer() let done = q.defer()
npmtsOra.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') {
plugins.beautylog.error(`please add typings field to package.json`) plugins.beautylog.error(`please add typings field to package.json`)
process.exit(1) process.exit(1)
@ -37,7 +36,7 @@ const depcheckOptions = {
let checkDependencies = (configArg) => { let checkDependencies = (configArg) => {
let done = q.defer() let done = q.defer()
npmtsOra.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
'test', 'test',
@ -54,7 +53,7 @@ let checkDependencies = (configArg) => {
plugins.beautylog.warn(`Watch out: unused dependency "${item}"`) plugins.beautylog.warn(`Watch out: unused dependency "${item}"`)
} }
for (let item in unused.missing) { for (let item in unused.missing) {
plugins.beautylog.error(`unused devDependency "${item}"`) plugins.beautylog.error(`missing dependency "${item}" in package.json`)
} }
if (unused.missing.length > 0) { if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json') plugins.beautylog.info('exiting due to missing dependencies in package.json')
@ -73,7 +72,7 @@ let checkDependencies = (configArg) => {
let checkDevDependencies = (configArg) => { let checkDevDependencies = (configArg) => {
let done = q.defer() let done = q.defer()
npmtsOra.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
'ts', 'ts',
@ -109,14 +108,14 @@ let checkDevDependencies = (configArg) => {
let checkNodeVersion = (configArg) => { let checkNodeVersion = (configArg) => {
let done = q.defer() let done = q.defer()
npmtsOra.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 = (configArg) => {
let done = q.defer() let done = q.defer()
npmtsOra.text('Check Module: ...') plugins.beautylog.ora.text('Check Module: ...')
checkProjectTypings(configArg) checkProjectTypings(configArg)
.then(checkDependencies) .then(checkDependencies)
.then(checkDevDependencies) .then(checkDevDependencies)

View File

@ -1,15 +1,13 @@
import * as q from 'q' import * as q from 'smartq'
import paths = require('../npmts.paths') import paths = require('../npmts.paths')
import { npmtsOra } from '../npmts.log'
import plugins = require('./mod00.plugins') import plugins = require('./mod00.plugins')
/** /**
* removes the dist directory which will be entirely rebuild * removes the dist directory which will be entirely rebuild
*/ */
let removeDist = function () { let removeDist = function () {
npmtsOra.text('cleaning dist folder') plugins.beautylog.ora.text('cleaning dist folder')
return plugins.smartfile.fs.remove(paths.distDir) return plugins.smartfile.fs.remove(paths.distDir)
} }
@ -29,12 +27,12 @@ let removeTestDeclarations = function () {
* remove old pages * remove old pages
*/ */
let removePages = function () { let removePages = function () {
npmtsOra.text('cleaning pages folder') plugins.beautylog.ora.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...') plugins.beautylog.ora.text('cleaning up from previous builds...')
let done = q.defer() let done = q.defer()
removeDist() removeDist()
.then(removeTestDeclarations) .then(removeTestDeclarations)

View File

@ -1,14 +1,13 @@
import * as q from 'q' import * as q from 'smartq'
import * as paths from '../npmts.paths' import * as paths from '../npmts.paths'
import { npmtsOra } from '../npmts.log'
import * as plugins from './mod00.plugins' import * as plugins from './mod00.plugins'
export let run = function (configArg) { export let run = function (configArg) {
let done = q.defer() let done = q.defer()
let config = configArg let config = configArg
npmtsOra.text('now compiling ' + 'TypeScript'.yellow) plugins.beautylog.ora.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!')

View File

@ -1,13 +1,11 @@
export * from '../npmts.plugins' export * from '../npmts.plugins'
import * as tsn from 'tsn' import * as tsn from 'tsn'
import * as shelljs from 'shelljs'
import * as smartchok from 'smartchok' import * as smartchok from 'smartchok'
import * as smartstream from 'smartstream' import * as smartstream from 'smartstream'
export { export {
tsn, tsn,
shelljs,
smartchok, smartchok,
smartstream smartstream
} }

View File

@ -1,63 +1,15 @@
/* ------------------------------------------ /* ------------------------------------------
* This module creates TypeScript documentation * This module creates TypeScript documentation
* -------------------------------------------- */ * -------------------------------------------- */
import * as q from 'q' import * as q from 'smartq'
import * as paths from '../npmts.paths' import * as paths from '../npmts.paths'
import { npmtsOra } from '../npmts.log'
import { INpmtsConfig } from '../npmts.config' import { INpmtsConfig } from '../npmts.config'
import * as plugins from './mod01.plugins' import * as plugins from './mod01.plugins'
import { projectInfo } from '../mod00/mod00.check'
let genTypeDoc = function (configArg: INpmtsConfig) {
let done = q.defer()
npmtsOra.text('now generating ' + 'TypeDoc documentation'.yellow)
plugins.beautylog.log('TypeDoc Output:')
let localSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src(plugins.path.join(paths.tsDir, '**/*.ts')),
plugins.gulpTypedoc({
// TypeScript options (see typescript docs)
module: 'commonjs',
target: 'es6',
includeDeclarations: true,
// Output options (see typedoc docs)
out: paths.pagesApiDir,
json: plugins.path.join(paths.pagesApiDir, 'file.json'),
// TypeDoc options (see typedoc docs)
name: projectInfo.name,
readme: plugins.path.join(paths.cwd, 'README.md'),
// theme: "default",
version: true
})
])
localSmartstream.run().then(
() => {
plugins.beautylog.ok('TypeDoc documentation generated!')
done.resolve(configArg)
},
(err) => {
plugins.beautylog.warn('TypeDoc documentation generation failed!')
console.log(err)
done.resolve(configArg)
}
)
return done.promise
}
export let run = function (configArg: INpmtsConfig) { export let run = function (configArg: INpmtsConfig) {
let done = q.defer<INpmtsConfig>() let done = q.defer<INpmtsConfig>()
if (configArg.docs) { done.resolve(configArg)
genTypeDoc(configArg)
.then(() => {
done.resolve(configArg)
})
} else {
done.resolve(configArg)
};
return done.promise return done.promise
} }

View File

@ -1,9 +1,2 @@
export * from '../npmts.plugins' export * from '../npmts.plugins'
import * as gulp from 'gulp'
let gulpTypedoc = require('gulp-typedoc')
export {
gulp,
gulpTypedoc
}

View File

@ -4,9 +4,8 @@
import plugins = require('./mod02.plugins') import plugins = require('./mod02.plugins')
import paths = require('../npmts.paths') import paths = require('../npmts.paths')
import * as q from 'q' import * as q from 'smartq'
import { npmtsOra } from '../npmts.log'
import { INpmtsConfig } from '../npmts.config' import { INpmtsConfig } from '../npmts.config'
/** /**
@ -14,36 +13,56 @@ import { INpmtsConfig } from '../npmts.config'
* @returns INpmtsConfig * @returns INpmtsConfig
*/ */
let mocha = function (configArg: INpmtsConfig) { let mocha = function (configArg: INpmtsConfig) {
npmtsOra.text('Instrumentalizing and testing transpiled JS') plugins.beautylog.ora.text('Instrumentalizing and testing transpiled JS')
npmtsOra.end() // end npmtsOra for tests. plugins.beautylog.ora.end() // end plugins.beautylog.ora for tests.
let done = q.defer() let done = q.defer()
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.gulpSourcemaps.init()) let coverageSmartstream = new plugins.smartstream.Smartstream([
.pipe(plugins.gulpBabel({ plugins.gulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
presets: [ plugins.gulpSourcemaps.init(),
require.resolve('babel-preset-es2015') plugins.gulpTypeScript({
] target: 'ES5',
})) emitDecoratorMetadata: true,
.pipe(plugins.gulpIstanbul({ experimentalDecorators: true,
})) lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
.pipe(plugins.gulpSourcemaps.write()) }),
.pipe(plugins.gulpInjectModules()) plugins.gulpIstanbul({
.on('finish', function () { }),
let localSmartstream = new plugins.smartstream.Smartstream([ plugins.gulpSourcemaps.write(),
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]), plugins.gulpFunction.forEach(async file => {
plugins.gulpBabel({ file.path = file.path.replace(paths.tsDir, paths.distDir)
presets: [ }),
require.resolve('babel-preset-es2015') plugins.gulpInjectModules(),
] plugins.through2.obj(
}), (file, enc, cb) => {
plugins.gulpInjectModules(), cb()
plugins.gulpMocha(), },
plugins.gulpIstanbul.writeReports({ (cb) => {
dir: plugins.path.join(paths.cwd, './coverage'), cb()
reporters: ['lcovonly', 'json', 'text', 'text-summary'] }
}) )
]) ])
localSmartstream.run()
let localSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.ts')]),
plugins.gulpTypeScript({
target: 'ES5',
emitDecoratorMetadata: true,
experimentalDecorators: true,
lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
}),
plugins.gulpInjectModules(),
plugins.gulpMocha(),
plugins.gulpIstanbul.writeReports({
dir: plugins.path.join(paths.cwd, './coverage'),
reporters: ['lcovonly', 'json', 'text', 'text-summary']
})
])
coverageSmartstream.run()
.then(
() => {
plugins.beautylog.info('code is now transpiled to ES5, instrumented with istanbul, and injected for mocha!')
return localSmartstream.run()
.then(() => { done.resolve(configArg) }, (err) => { .then(() => { done.resolve(configArg) }, (err) => {
plugins.beautylog.error('Tests failed!') plugins.beautylog.error('Tests failed!')
console.log(err) console.log(err)
@ -53,6 +72,9 @@ let mocha = function (configArg: INpmtsConfig) {
process.exit(1) process.exit(1)
} }
}) })
},
(err) => {
console.log(err)
}) })
return done.promise return done.promise
} }
@ -85,9 +107,9 @@ export let run = function (configArg: INpmtsConfig) {
let done = q.defer<INpmtsConfig>() let done = q.defer<INpmtsConfig>()
let config = configArg let config = configArg
if (config.test === true) { if (config.test === true) {
npmtsOra.text('now starting tests') plugins.beautylog.ora.text('now starting tests')
plugins.beautylog.log( plugins.beautylog.log(
'-------------------------------------------------------\n' + '------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' + '*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------' '--------------------------------------------------------------'
) )
@ -96,9 +118,9 @@ export let run = function (configArg: INpmtsConfig) {
.then(coverage) .then(coverage)
.then(() => { .then(() => {
done.resolve(config) done.resolve(config)
}) }).catch(err => { console.log(err) })
} else { } else {
npmtsOra.end() plugins.beautylog.ora.end()
done.resolve(config) done.resolve(config)
} }
return done.promise return done.promise

View File

@ -1,19 +1,19 @@
export * from '../npmts.plugins' export * from '../npmts.plugins'
import * as gulp from 'gulp' import * as gulp from 'gulp'
import * as gulpBabel from 'gulp-babel'
import * as gulpIstanbul from 'gulp-istanbul'
import * as gulpFunction from 'gulp-function' import * as gulpFunction from 'gulp-function'
import * as gulpIstanbul from 'gulp-istanbul'
let gulpInjectModules = require('gulp-inject-modules') let gulpInjectModules = require('gulp-inject-modules')
import * as gulpMocha from 'gulp-mocha' import * as gulpMocha from 'gulp-mocha'
import * as gulpSourcemaps from 'gulp-sourcemaps' import * as gulpSourcemaps from 'gulp-sourcemaps'
import * as gulpTypeScript from 'gulp-typescript'
export { export {
gulp, gulp,
gulpBabel,
gulpIstanbul,
gulpFunction, gulpFunction,
gulpIstanbul,
gulpInjectModules, gulpInjectModules,
gulpMocha, gulpMocha,
gulpSourcemaps gulpSourcemaps,
gulpTypeScript
} }

View File

@ -1,4 +1,4 @@
import * as q from 'q' import * as q from 'smartq'
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'
import * as paths from './npmts.paths' import * as paths from './npmts.paths'
@ -7,8 +7,6 @@ import * as NpmtsMods from './npmts.mods'
import * as NpmtsWatch from './npmts.watch' import * as NpmtsWatch from './npmts.watch'
import * as NpmtsShip from './npmts.ship' import * as NpmtsShip from './npmts.ship'
import { npmtsOra } from './npmts.log'
export let run = () => { export let run = () => {
let done = q.defer() let done = q.defer()
let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot) let npmtsProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.npmtsPackageRoot)
@ -21,7 +19,7 @@ export let run = () => {
}) })
.then((configArg: NpmtsConfig.INpmtsConfig) => { .then((configArg: NpmtsConfig.INpmtsConfig) => {
let done = q.defer() let done = q.defer()
npmtsOra.start('loading additional modules...') plugins.beautylog.ora.start('loading additional modules...')
NpmtsMods.mod00.load() NpmtsMods.mod00.load()
.then((mod00) => { .then((mod00) => {
return mod00.run(configArg) return mod00.run(configArg)

View File

@ -1,16 +1,13 @@
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 * as q from 'smartq'
import { npmtsOra } from './npmts.log'
export type npmtsMode = 'default' | 'custom' export type npmtsMode = 'default' | 'custom'
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any, argv: any,
coverageTreshold: number, coverageTreshold: number,
docs: boolean,
mode: npmtsMode, mode: npmtsMode,
test: boolean, test: boolean,
testTs: any, testTs: any,
@ -20,12 +17,11 @@ export interface INpmtsConfig {
}; };
export var run = function (argvArg) { export let run = function (argvArg) {
let done = q.defer() let done = q.defer()
let defaultConfig: INpmtsConfig = { let defaultConfig: INpmtsConfig = {
argv: undefined, argv: undefined,
coverageTreshold: 70, coverageTreshold: 70,
docs: true,
mode: 'default', mode: 'default',
test: true, test: true,
testTs: {}, testTs: {},
@ -35,7 +31,7 @@ export var run = function (argvArg) {
} }
// mix with configfile // mix with configfile
npmtsOra.text('running npmextra') plugins.beautylog.ora.text('running npmextra')
let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd) let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd)
let config: INpmtsConfig = localNpmextra.dataFor<INpmtsConfig>( let config: INpmtsConfig = localNpmextra.dataFor<INpmtsConfig>(
@ -72,9 +68,6 @@ export var run = function (argvArg) {
if (config.argv.notest) { if (config.argv.notest) {
config.test = false config.test = false
}; };
if (config.argv.nodocs) {
config.docs = false
};
if (config.argv.watch) { if (config.argv.watch) {
config.watch = true config.watch = true
}; };

View File

@ -1,2 +0,0 @@
import {Ora} from 'beautylog'
export let npmtsOra = new Ora('setting up TaskChain','cyan')

View File

@ -14,6 +14,7 @@ import * as smartpath from 'smartpath'
import * as smartstream from 'smartstream' import * as smartstream from 'smartstream'
import * as smartstring from 'smartstring' import * as smartstring from 'smartstring'
import * as smartsystem from 'smartsystem' import * as smartsystem from 'smartsystem'
import * as through2 from 'through2'
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 { export {
@ -30,5 +31,6 @@ export {
smartpath, smartpath,
smartstream, smartstream,
smartstring, smartstring,
smartsystem smartsystem,
through2
} }

View File

@ -1,4 +1,4 @@
import * as q from 'q' import * as q from 'smartq'
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'

View File

@ -1,4 +1,4 @@
import * as q from 'q' import * as q from 'smartq'
import * as smartchok from 'smartchok' import * as smartchok from 'smartchok'
import * as plugins from './npmts.plugins' import * as plugins from './npmts.plugins'