Compare commits

...

40 Commits

Author SHA1 Message Date
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
53 changed files with 202 additions and 302 deletions

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
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
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
[![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)
[![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)
[![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)

View File

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

2
dist/mod00/index.js vendored
View File

@ -2,7 +2,7 @@
/* ------------------------------------------
* This module compiles TypeScript files
* -------------------------------------------- */
const q = require("q");
const q = require("smartq");
const npmts_log_1 = require("../npmts.log");
const NpmtsAssets = require("./mod00.assets");
const NpmtsCheck = require("./mod00.check");

View File

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

View File

@ -1,5 +1,5 @@
"use strict";
const q = require("q");
const q = require("smartq");
const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins");

View File

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

View File

@ -1,5 +1,5 @@
"use strict";
const q = require("q");
const q = require("smartq");
const projectinfo_1 = require("projectinfo");
const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");

View File

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

View File

@ -1,5 +1,5 @@
"use strict";
const q = require("q");
const q = require("smartq");
const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins");

View File

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

View File

@ -1,5 +1,5 @@
"use strict";
const q = require("q");
const q = require("smartq");
const paths = require("../npmts.paths");
const npmts_log_1 = require("../npmts.log");
const plugins = require("./mod00.plugins");

View File

@ -1,6 +1,5 @@
export * from '../npmts.plugins';
import * as tsn from 'tsn';
import * as shelljs from 'shelljs';
import * as smartchok from 'smartchok';
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"));
const tsn = require("tsn");
exports.tsn = tsn;
const shelljs = require("shelljs");
exports.shelljs = shelljs;
const smartchok = require("smartchok");
exports.smartchok = smartchok;
const smartstream = require("smartstream");

View File

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

46
dist/mod01/index.js vendored
View File

@ -2,53 +2,9 @@
/* ------------------------------------------
* This module creates TypeScript documentation
* -------------------------------------------- */
const q = require("q");
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;
};
const q = require("smartq");
exports.run = function (configArg) {
let done = q.defer();
if (configArg.docs) {
genTypeDoc(configArg)
.then(() => {
done.resolve(configArg);
});
}
else {
done.resolve(configArg);
}
;
return done.promise;
};

View File

@ -1,4 +1 @@
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];
}
__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';
export declare let run: (configArg: INpmtsConfig) => q.Promise<INpmtsConfig>;
export declare let run: (configArg: INpmtsConfig) => Promise<INpmtsConfig>;

64
dist/mod02/index.js vendored
View File

@ -1,10 +1,18 @@
"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
* -------------------------------------------- */
const plugins = require("./mod02.plugins");
const paths = require("../npmts.paths");
const q = require("q");
const q = require("smartq");
const npmts_log_1 = require("../npmts.log");
/**
* runs mocha
@ -14,23 +22,34 @@ let mocha = function (configArg) {
npmts_log_1.npmtsOra.text('Instrumentalizing and testing transpiled JS');
npmts_log_1.npmtsOra.end(); // end npmtsOra for tests.
let done = q.defer();
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.gulpSourcemaps.init())
.pipe(plugins.gulpBabel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.gulpIstanbul({}))
.pipe(plugins.gulpSourcemaps.write())
.pipe(plugins.gulpInjectModules())
.on('finish', function () {
let coverageSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript({
target: 'ES5',
emitDecoratorMetadata: true,
experimentalDecorators: true,
lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
}),
plugins.gulpIstanbul({}),
plugins.gulpSourcemaps.write(),
plugins.gulpFunction.forEach((file) => __awaiter(this, void 0, void 0, function* () {
file.path = file.path.replace(paths.tsDir, paths.distDir);
})),
plugins.gulpInjectModules(),
plugins.through2.obj((file, enc, cb) => {
cb();
}, (cb) => {
cb();
})
]);
let localSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]),
plugins.gulpBabel({
presets: [
require.resolve('babel-preset-es2015')
]
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(),
@ -39,7 +58,10 @@ let mocha = function (configArg) {
reporters: ['lcovonly', 'json', 'text', 'text-summary']
})
]);
localSmartstream.run()
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) => {
plugins.beautylog.error('Tests failed!');
console.log(err);
@ -50,6 +72,8 @@ let mocha = function (configArg) {
process.exit(1);
}
});
}, (err) => {
console.log(err);
});
return done.promise;
};
@ -80,14 +104,14 @@ exports.run = function (configArg) {
let config = configArg;
if (config.test === true) {
npmts_log_1.npmtsOra.text('now starting tests');
plugins.beautylog.log('-------------------------------------------------------\n' +
plugins.beautylog.log('------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------');
mocha(config)
.then(coverage)
.then(() => {
done.resolve(config);
});
}).catch(err => { console.log(err); });
}
else {
npmts_log_1.npmtsOra.end();

View File

@ -1,9 +1,9 @@
export * from '../npmts.plugins';
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 gulpIstanbul from 'gulp-istanbul';
declare let gulpInjectModules: any;
import * as gulpMocha from 'gulp-mocha';
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"));
const gulp = require("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");
exports.gulpFunction = gulpFunction;
const gulpIstanbul = require("gulp-istanbul");
exports.gulpIstanbul = gulpIstanbul;
let gulpInjectModules = require('gulp-inject-modules');
exports.gulpInjectModules = gulpInjectModules;
const gulpMocha = require("gulp-mocha");
exports.gulpMocha = gulpMocha;
const gulpSourcemaps = require("gulp-sourcemaps");
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" />
import * as q from 'q';
export declare let run: () => q.Promise<{}>;
export declare let run: () => Promise<{}>;

2
dist/npmts.cli.js vendored
View File

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

View File

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

View File

@ -1,7 +1,7 @@
"use strict";
const plugins = require("./npmts.plugins");
const paths = require("./npmts.paths");
const q = require("q");
const q = require("smartq");
const npmts_log_1 = require("./npmts.log");
;
exports.run = function (argvArg) {
@ -9,7 +9,6 @@ exports.run = function (argvArg) {
let defaultConfig = {
argv: undefined,
coverageTreshold: 70,
docs: true,
mode: 'default',
test: true,
testTs: {},
@ -50,10 +49,6 @@ exports.run = function (argvArg) {
config.test = false;
}
;
if (config.argv.nodocs) {
config.docs = false;
}
;
if (config.argv.watch) {
config.watch = true;
}

View File

@ -13,5 +13,6 @@ import * as smartpath from 'smartpath';
import * as smartstream from 'smartstream';
import * as smartstring from 'smartstring';
import * as smartsystem from 'smartsystem';
import * as through2 from 'through2';
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;
const smartsystem = require("smartsystem");
exports.smartsystem = smartsystem;
const through2 = require("through2");
exports.through2 = through2;
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";
const q = require("q");
const q = require("smartq");
const plugins = require("./npmts.plugins");
exports.run = (configArg) => {
let done = q.defer();

View File

@ -1,4 +1,2 @@
/// <reference types="q" />
import * as q from 'q';
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";
const q = require("q");
const q = require("smartq");
const smartchok = require("smartchok");
const plugins = require("./npmts.plugins");
const cli = require("./npmts.cli");

View File

@ -20,7 +20,6 @@ with default behaviour.
```json
{
"mode":"custom",
"docs":false,
"test":true,
"npmts":{
"ts":{
@ -38,7 +37,6 @@ with default behaviour.
| key | default value | description |
| --- | --- | --- |
| `"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 |
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
| `"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
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:
#### 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.

View File

@ -4,5 +4,4 @@
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. **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.

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)
[![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)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/)
## 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)
[![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)
[![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)
@ -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/)
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)
1. [Intro](https://pushrocks.gitlab.io/npmts/index.html)
2. [Install](https://pushrocks.gitlab.io/npmts/install.html)
3. [Default Behaviour](https://pushrocks.gitlab.io/npmts/default.html)
4. [Configuration](https://pushrocks.gitlab.io/npmts/config.html)
5. [Examples](https://pushrocks.gitlab.io/npmts/examples.html)
6. [Info](https://pushrocks.gitlab.io/npmts/info.html)
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks)

View File

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

View File

@ -1,7 +1,7 @@
/* ------------------------------------------
* 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'
@ -13,7 +13,7 @@ import * as NpmtsCheck from './mod00.check'
import * as NpmtsClean from './mod00.clean'
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>()
npmtsOra.text('starting TypeScript Compilation')
NpmtsClean.run(configArg)

View File

@ -1,4 +1,4 @@
import * as q from 'q'
import * as q from 'smartq'
import paths = require('../npmts.paths')
import { npmtsOra } from '../npmts.log'
@ -6,7 +6,7 @@ import { npmtsOra } from '../npmts.log'
import plugins = require('./mod00.plugins')
import { projectInfo } from '../mod00/mod00.check'
export var run = function(configArg){
export let run = function(configArg){
let done = q.defer()
let config = configArg
npmtsOra.text('now looking at ' + 'required assets'.yellow)

View File

@ -1,4 +1,4 @@
import * as q from 'q'
import * as q from 'smartq'
import { ProjectinfoNpm } from 'projectinfo'
import * as paths from '../npmts.paths'

View File

@ -1,4 +1,4 @@
import * as q from 'q'
import * as q from 'smartq'
import paths = require('../npmts.paths')
import { npmtsOra } from '../npmts.log'

View File

@ -1,4 +1,4 @@
import * as q from 'q'
import * as q from 'smartq'
import * as paths from '../npmts.paths'
import { npmtsOra } from '../npmts.log'

View File

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

View File

@ -1,7 +1,7 @@
/* ------------------------------------------
* This module creates TypeScript documentation
* -------------------------------------------- */
import * as q from 'q'
import * as q from 'smartq'
import * as paths from '../npmts.paths'
import { npmtsOra } from '../npmts.log'
@ -9,55 +9,8 @@ import { INpmtsConfig } from '../npmts.config'
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) {
let done = q.defer<INpmtsConfig>()
if (configArg.docs) {
genTypeDoc(configArg)
.then(() => {
done.resolve(configArg)
})
} else {
done.resolve(configArg)
};
return done.promise
}

View File

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

View File

@ -4,7 +4,7 @@
import plugins = require('./mod02.plugins')
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'
@ -17,24 +17,40 @@ let mocha = function (configArg: INpmtsConfig) {
npmtsOra.text('Instrumentalizing and testing transpiled JS')
npmtsOra.end() // end npmtsOra for tests.
let done = q.defer()
plugins.gulp.src([plugins.path.join(paths.cwd, 'dist/*.js')])
.pipe(plugins.gulpSourcemaps.init())
.pipe(plugins.gulpBabel({
presets: [
require.resolve('babel-preset-es2015')
]
}))
.pipe(plugins.gulpIstanbul({
}))
.pipe(plugins.gulpSourcemaps.write())
.pipe(plugins.gulpInjectModules())
.on('finish', function () {
let coverageSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, './ts/**/*.ts')]),
plugins.gulpSourcemaps.init(),
plugins.gulpTypeScript({
target: 'ES5',
emitDecoratorMetadata: true,
experimentalDecorators: true,
lib: ['DOM', 'ES5', 'ES2015.Promise', 'ES2015.Generator', 'ES2015.Iterable']
}),
plugins.gulpIstanbul({
}),
plugins.gulpSourcemaps.write(),
plugins.gulpFunction.forEach(async file => {
file.path = file.path.replace(paths.tsDir, paths.distDir)
}),
plugins.gulpInjectModules(),
plugins.through2.obj(
(file, enc, cb) => {
cb()
},
(cb) => {
cb()
}
)
])
let localSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.js')]),
plugins.gulpBabel({
presets: [
require.resolve('babel-preset-es2015')
]
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(),
@ -43,7 +59,11 @@ let mocha = function (configArg: INpmtsConfig) {
reporters: ['lcovonly', 'json', 'text', 'text-summary']
})
])
localSmartstream.run()
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) => {
plugins.beautylog.error('Tests failed!')
console.log(err)
@ -53,6 +73,9 @@ let mocha = function (configArg: INpmtsConfig) {
process.exit(1)
}
})
},
(err) => {
console.log(err)
})
return done.promise
}
@ -87,7 +110,7 @@ export let run = function (configArg: INpmtsConfig) {
if (config.test === true) {
npmtsOra.text('now starting tests')
plugins.beautylog.log(
'-------------------------------------------------------\n' +
'------------------------------------------------------\n' +
'*************************** TESTS: ***************************\n' +
'--------------------------------------------------------------'
)
@ -96,7 +119,7 @@ export let run = function (configArg: INpmtsConfig) {
.then(coverage)
.then(() => {
done.resolve(config)
})
}).catch(err => { console.log(err) })
} else {
npmtsOra.end()
done.resolve(config)

View File

@ -1,19 +1,19 @@
export * from '../npmts.plugins'
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 gulpIstanbul from 'gulp-istanbul'
let gulpInjectModules = require('gulp-inject-modules')
import * as gulpMocha from 'gulp-mocha'
import * as gulpSourcemaps from 'gulp-sourcemaps'
import * as gulpTypeScript from 'gulp-typescript'
export {
gulp,
gulpBabel,
gulpIstanbul,
gulpFunction,
gulpIstanbul,
gulpInjectModules,
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 paths from './npmts.paths'

View File

@ -1,7 +1,7 @@
import plugins = require('./npmts.plugins')
import paths = require('./npmts.paths')
import * as q from 'q'
import * as q from 'smartq'
import { npmtsOra } from './npmts.log'
@ -10,7 +10,6 @@ export type npmtsMode = 'default' | 'custom'
export interface INpmtsConfig {
argv: any,
coverageTreshold: number,
docs: boolean,
mode: npmtsMode,
test: boolean,
testTs: any,
@ -20,12 +19,11 @@ export interface INpmtsConfig {
};
export var run = function (argvArg) {
export let run = function (argvArg) {
let done = q.defer()
let defaultConfig: INpmtsConfig = {
argv: undefined,
coverageTreshold: 70,
docs: true,
mode: 'default',
test: true,
testTs: {},
@ -72,9 +70,6 @@ export var run = function (argvArg) {
if (config.argv.notest) {
config.test = false
};
if (config.argv.nodocs) {
config.docs = false
};
if (config.argv.watch) {
config.watch = true
};

View File

@ -14,6 +14,7 @@ import * as smartpath from 'smartpath'
import * as smartstream from 'smartstream'
import * as smartstring from 'smartstring'
import * as smartsystem from 'smartsystem'
import * as through2 from 'through2'
export let sourceMapSupport = require('source-map-support').install() // display errors correctly during testing
export {
@ -30,5 +31,6 @@ export {
smartpath,
smartstream,
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'

View File

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