Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
e1f80ee888 | |||
3f261a4fa6 | |||
e75de7590e | |||
94c0663980 | |||
995161dd54 | |||
29c941044f |
33
README.md
33
README.md
@ -10,6 +10,7 @@ Write npm modules with TypeScript without hassle.
|
||||
|
||||
## What is NPMTS?
|
||||
NPMTS is your friend when it comes to write, test, publish and document NPM modules written in TypeScript.
|
||||
By default NPMTS will **bundle declaration files**. As a result npm module **code completion in editors like Visual Studio Code** works.
|
||||
|
||||
There is a docker image available that includes npmts to make CI a breeze:
|
||||
[hosttoday/ht-docker-npmg on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-npmg/)
|
||||
@ -29,9 +30,7 @@ Then use it in package.json's script section to trigger a build:
|
||||
}
|
||||
```
|
||||
|
||||
### Default behaviour
|
||||
|
||||
**Execution order of tasks**
|
||||
### Default task execution order
|
||||
|
||||
1. Check config in ./npmts.json
|
||||
1. Clean up from any previous builds (old js files)
|
||||
@ -51,9 +50,14 @@ the npmts.json is the main config file. You can use it to customize the behaviou
|
||||
```json
|
||||
{
|
||||
"mode":"default",
|
||||
"codecov":true,
|
||||
"ts":{
|
||||
"./customdir/*.ts":"./"
|
||||
},
|
||||
"docs": {
|
||||
"publish":true,
|
||||
"destination":"github"
|
||||
},
|
||||
"tsOptions":{
|
||||
"declaration":false,
|
||||
"target":"ES6"
|
||||
@ -65,21 +69,18 @@ the npmts.json is the main config file. You can use it to customize the behaviou
|
||||
"./customdir/typings.json"
|
||||
],
|
||||
"typingsInclude":"auto",
|
||||
"codecov":true,
|
||||
"docs": {
|
||||
"publish":true
|
||||
},
|
||||
"cli":true
|
||||
}
|
||||
```
|
||||
|
||||
| key | description |
|
||||
| --- | --- |
|
||||
| codecov | if true, coverage data will be uploaded to codecov when running on travis |
|
||||
| docs | `{"publish":true, destination:"github"}` lets you control what happens with your module documentation |
|
||||
| mode | "default" will do some defualt stuff, "custom" only does what you specify |
|
||||
| tsOptions | specify options for tsc |
|
||||
| | |
|
||||
| key | default value | description |
|
||||
| --- | --- | --- |
|
||||
| `"codecov"` | `true` | if true, coverage data will be uploaded to codecov when running on travis |
|
||||
| `"docs"` | `{"publish":"false"}` | `{"publish":true, destination:"github"}` lets you control what happens with your module documentation |
|
||||
| `"mode"` | `"default"` | "default" will do some defualt stuff, "custom" only does what you specify |
|
||||
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
|
||||
| `"typings"` | `["./ts/typings.json"]` | allows you to specify multiple locations for typings.json to install. This is needed for modules that do not yet bundle typings |
|
||||
| `"cli"` | "false" | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. |
|
||||
|
||||
#### Typings
|
||||
**npmts** looks for `./ts/typings.json` by default and installs any defined typings to `.ts/typings/`.
|
||||
@ -121,8 +122,8 @@ Any errors will be shown with reference to their originating source in TypeScrip
|
||||
thanks to autogenerated source maps.
|
||||
|
||||
## Example Usage in modules:
|
||||
[gulp-typings](https://www.npmjs.com/package/gulp-typings)
|
||||
[gulp-browser](https://www.npmjs.com/package/gulp-typings)
|
||||
* [gulp-typings](https://www.npmjs.com/package/gulp-typings)
|
||||
* [gulp-browser](https://www.npmjs.com/package/gulp-typings)
|
||||
|
||||
> We will add more options over time.
|
||||
|
||||
|
5
dist/npmts.assets.js
vendored
5
dist/npmts.assets.js
vendored
@ -2,13 +2,14 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.run = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
var config = configArg;
|
||||
plugins.beautylog.log("now looking at required assets");
|
||||
npmts_promisechain_1.npmtsOra.text("now looking at required assets");
|
||||
if (config.cli == true) {
|
||||
plugins.smartfile.fsaction.copy(plugins.path.join(paths.npmtsAssetsDir, "cli.js"), paths.distDir);
|
||||
plugins.beautylog.ok("CLI asset has been installed!");
|
||||
plugins.beautylog.ok("installed CLI assets!");
|
||||
done.resolve(config);
|
||||
}
|
||||
else {
|
||||
|
5
dist/npmts.clean.js
vendored
5
dist/npmts.clean.js
vendored
@ -2,12 +2,13 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.run = function (configArg) {
|
||||
plugins.beautylog.log("now cleaning up from previous builds...");
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning up from previous builds...");
|
||||
var done = plugins.Q.defer();
|
||||
plugins.smartfile.fsaction.remove(paths.distDir)
|
||||
.then(function () {
|
||||
plugins.beautylog.ok("Cleaned up!");
|
||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||
done.resolve(configArg);
|
||||
});
|
||||
return done.promise;
|
||||
|
45
dist/npmts.compile.js
vendored
45
dist/npmts.compile.js
vendored
@ -3,10 +3,39 @@
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var helpers = require("./npmts.compile.helpers");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
/**
|
||||
* handles definition to make them fit for modular use
|
||||
*/
|
||||
var definitionHandler = function (configArg) {
|
||||
npmts_promisechain_1.npmtsOra.text("now making declaration files ready");
|
||||
var done = plugins.Q.defer();
|
||||
var configTsLenght = Object.keys(configArg.ts).length;
|
||||
if (configTsLenght == 0) {
|
||||
plugins.beautylog.warn("No declaration files found... Are you sure you don't want them?");
|
||||
done.resolve(configArg); //if there are no definition files, resolve...
|
||||
}
|
||||
var localCounter = 0;
|
||||
for (var key in configArg.ts) {
|
||||
var distPath = configArg.ts[key];
|
||||
var stream = plugins.gulp.src(plugins.path.join(distPath, "**/*.d.ts"))
|
||||
.pipe(plugins.g.replace(plugins.smartstring.typescript.regexReferencePath, ""))
|
||||
.pipe(plugins.gulp.dest(distPath))
|
||||
.pipe(plugins.g.gFunction(function () {
|
||||
localCounter++;
|
||||
if (localCounter == configTsLenght) {
|
||||
plugins.beautylog.ok("made declaration files ready!");
|
||||
done.resolve(configArg);
|
||||
}
|
||||
;
|
||||
}, "atEnd"));
|
||||
}
|
||||
return done.promise;
|
||||
};
|
||||
exports.run = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
var config = configArg;
|
||||
plugins.beautylog.log("now compiling " + "TypeScript".yellow);
|
||||
npmts_promisechain_1.npmtsOra.text("now compiling " + "TypeScript".yellow);
|
||||
var moduleStream = plugins.merge2({ end: false });
|
||||
/* -------------------------------------------------
|
||||
* ----------- compile TypeScript --------------------------
|
||||
@ -36,16 +65,12 @@ exports.run = function (configArg) {
|
||||
}
|
||||
}
|
||||
moduleStream.on("queueDrain", function () {
|
||||
plugins.beautylog.ok("TypeScript has been compiled!");
|
||||
moduleStream.on("finish", function () {
|
||||
try {
|
||||
if (config.mode = "default")
|
||||
plugins.fs.copySync(plugins.path.join(paths.cwd, "ts/typings"), plugins.path.join(paths.cwd, "dist/typings"));
|
||||
}
|
||||
catch (err) {
|
||||
plugins.beautylog.warn("failed to copy external typings for full module declaration support");
|
||||
}
|
||||
done.resolve(config);
|
||||
plugins.beautylog.ok("compiled TypeScript!");
|
||||
definitionHandler(config)
|
||||
.then(function () {
|
||||
done.resolve(config);
|
||||
});
|
||||
});
|
||||
moduleStream.end();
|
||||
});
|
||||
|
5
dist/npmts.install.js
vendored
5
dist/npmts.install.js
vendored
@ -2,18 +2,19 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.run = function (configArg) {
|
||||
var config = configArg;
|
||||
var done = plugins.Q.defer();
|
||||
/* -------------------------------------------------
|
||||
* ----------- install typings ---------------
|
||||
* ----------------------------------------------- */
|
||||
plugins.beautylog.log("now installing " + "typings".yellow);
|
||||
npmts_promisechain_1.npmtsOra.text("now installing typings");
|
||||
var absoluteTypingsArray = plugins.smartpath.transform.toAbsolute(config.typings, paths.cwd);
|
||||
plugins.gulp.src(absoluteTypingsArray)
|
||||
.pipe(plugins.g.typings())
|
||||
.pipe(plugins.g.gFunction(function () {
|
||||
plugins.beautylog.ok("typings have been installed!");
|
||||
plugins.beautylog.ok("typings installed!");
|
||||
done.resolve(config);
|
||||
}, "atEnd"));
|
||||
return done.promise;
|
||||
|
3
dist/npmts.jsdoc.js
vendored
3
dist/npmts.jsdoc.js
vendored
@ -2,9 +2,10 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
var genJsdoc = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
plugins.beautylog.log("now generating " + "JsDoc documentation".blue);
|
||||
npmts_promisechain_1.npmtsOra.text("now generating JsDoc documentation");
|
||||
plugins.gulp.src([
|
||||
plugins.path.join(paths.cwd, "README.md"),
|
||||
plugins.path.join(paths.distDir, "**/*.js")
|
||||
|
3
dist/npmts.options.js
vendored
3
dist/npmts.options.js
vendored
@ -1,6 +1,7 @@
|
||||
"use strict";
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.isCi = function () {
|
||||
return plugins.smartci.check.isCi();
|
||||
};
|
||||
@ -15,7 +16,7 @@ exports.doPublish = function () {
|
||||
exports.run = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
var config = configArg;
|
||||
plugins.beautylog.log("now determining build options...");
|
||||
npmts_promisechain_1.npmtsOra.text("now determining build options...");
|
||||
//handle default mode
|
||||
if (config.mode == "default") {
|
||||
config.typings = [
|
||||
|
2
dist/npmts.plugins.js
vendored
2
dist/npmts.plugins.js
vendored
@ -9,6 +9,7 @@ exports.g = {
|
||||
istanbul: require("gulp-istanbul"),
|
||||
jsdoc3: require("gulp-jsdoc3"),
|
||||
mocha: require("gulp-mocha"),
|
||||
replace: require("gulp-replace"),
|
||||
sourcemaps: require("gulp-sourcemaps"),
|
||||
typescript: require("gulp-typescript"),
|
||||
typings: require("gulp-typings")
|
||||
@ -25,4 +26,5 @@ exports.smartcov = require("smartcov");
|
||||
exports.smartenv = require("smartenv");
|
||||
exports.smartfile = require("smartfile");
|
||||
exports.smartpath = require("smartpath");
|
||||
exports.smartstring = require("smartstring");
|
||||
exports.sourceMapSupport = require("source-map-support").install(); // this is required to display errors correctly during testing
|
||||
|
3
dist/npmts.promisechain.js
vendored
3
dist/npmts.promisechain.js
vendored
@ -1,6 +1,8 @@
|
||||
"use strict";
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
exports.npmtsOra = new plugins.beautylog.Ora("setting up TaskChain", "cyan");
|
||||
exports.npmtsOra.start();
|
||||
var NpmtsAssets = require("./npmts.assets");
|
||||
var NpmtsClean = require("./npmts.clean");
|
||||
var NpmtsCompile = require("./npmts.compile");
|
||||
@ -41,6 +43,7 @@ exports.run = function () {
|
||||
plugins.beautylog.success("READY TO SHIP!");
|
||||
}
|
||||
else {
|
||||
exports.npmtsOra.endOk("Tasks finished!");
|
||||
plugins.beautylog.success("Done!");
|
||||
}
|
||||
});
|
||||
|
9
dist/npmts.tests.js
vendored
9
dist/npmts.tests.js
vendored
@ -2,6 +2,7 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.publishCoverage = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
plugins.beautylog.log("now uploading coverage data to codecov.io");
|
||||
@ -63,11 +64,9 @@ var coverage = function (configArg) {
|
||||
exports.run = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
var config = configArg;
|
||||
plugins.beautylog.log("now starting tests");
|
||||
console.log("--------------------------------------------------------------\n" +
|
||||
"***************************" +
|
||||
" TESTS: ".blue +
|
||||
"***************************\n" +
|
||||
npmts_promisechain_1.npmtsOra.text("now starting tests");
|
||||
plugins.beautylog.log("-------------------------------------------------------\n" +
|
||||
"*************************** TESTS: ***************************\n" +
|
||||
"--------------------------------------------------------------");
|
||||
istanbul(config)
|
||||
.then(mocha)
|
||||
|
25
package.json
25
package.json
@ -1,14 +1,15 @@
|
||||
{
|
||||
"name": "npmts",
|
||||
"version": "5.1.3",
|
||||
"version": "5.1.6",
|
||||
"description": "write npm modules with TypeScript",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
"npmts": "dist/cli.js"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "(cd compile && node compile.js) && (cd test/assets && node ../../dist/index.js)",
|
||||
"release": "(git add -A && git commit -m 'update' && git push origin master && npm version patch && npm publish)"
|
||||
"test": "(npm run compile && npm run check)",
|
||||
"check": "(cd ./test/assets && node ../../dist/index.js)",
|
||||
"compile": "(cd compile && node compile.js)"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -25,20 +26,21 @@
|
||||
},
|
||||
"homepage": "https://github.com/pushrocks/npmts#readme",
|
||||
"dependencies": {
|
||||
"beautylog": "4.1.2",
|
||||
"beautylog": "5.0.1",
|
||||
"fs-extra": "^0.30.0",
|
||||
"gulp": "3.9.1",
|
||||
"gulp-codecov": "^2.0.1",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-function": "^1.3.1",
|
||||
"gulp-if": "^2.0.0",
|
||||
"gulp-if": "^2.0.1",
|
||||
"gulp-istanbul": "^0.10.4",
|
||||
"gulp-jsdoc3": "^0.2.1",
|
||||
"gulp-mocha": "^2.2.0",
|
||||
"gulp-replace": "^0.5.4",
|
||||
"gulp-sourcemaps": "^2.0.0-alpha",
|
||||
"gulp-typescript": "2.13.0",
|
||||
"gulp-typings": "1.3.4",
|
||||
"lodash": "^4.11.1",
|
||||
"gulp-typescript": "2.13.4",
|
||||
"gulp-typings": "1.3.6",
|
||||
"lodash": "^4.12.0",
|
||||
"merge2": "1.0.2",
|
||||
"projectinfo": "1.0.1",
|
||||
"q": "^1.4.1",
|
||||
@ -46,9 +48,10 @@
|
||||
"smartci": "0.0.1",
|
||||
"smartcli": "0.0.11",
|
||||
"smartcov": "0.0.6",
|
||||
"smartenv": "1.2.2",
|
||||
"smartfile": "3.0.5",
|
||||
"smartpath": "3.1.5",
|
||||
"smartenv": "1.2.5",
|
||||
"smartfile": "3.0.6",
|
||||
"smartpath": "3.2.1",
|
||||
"smartstring": "^1.0.3",
|
||||
"source-map-support": "^0.4.0"
|
||||
},
|
||||
"devDependencies": {}
|
||||
|
1
test/assets/dist/index.d.ts
vendored
1
test/assets/dist/index.d.ts
vendored
@ -1,4 +1,3 @@
|
||||
/// <reference path="typings/main.d.ts" />
|
||||
declare let testplugin: {
|
||||
logSomething: () => void;
|
||||
};
|
||||
|
2
test/assets/dist/index.js
vendored
2
test/assets/dist/index.js
vendored
@ -6,4 +6,4 @@ var testplugin = {
|
||||
};
|
||||
module.exports = testplugin;
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0QztBQUM1QyxJQUFJLFVBQVUsR0FBRztJQUNiLFlBQVksRUFBRTtRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxubGV0IHRlc3RwbHVnaW4gPSB7XG4gICAgbG9nU29tZXRoaW5nOiBmdW5jdGlvbigpe1xuICAgICAgICBjb25zb2xlLmxvZyhcIm9ubHkgZnVuY3Rpb24gZXhlY3V0ZWRcIik7XG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gdGVzdHBsdWdpbjsiXX0=
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0QztBQUM1QyxJQUFJLFVBQVUsR0FBRztJQUNiLFlBQVksRUFBRTtRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxyXG5sZXQgdGVzdHBsdWdpbiA9IHtcclxuICAgIGxvZ1NvbWV0aGluZzogZnVuY3Rpb24oKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIm9ubHkgZnVuY3Rpb24gZXhlY3V0ZWRcIik7XHJcbiAgICB9XHJcbn07XHJcbm1vZHVsZS5leHBvcnRzID0gdGVzdHBsdWdpbjsiXX0=
|
||||
|
1
test/assets/test/test.d.ts
vendored
1
test/assets/test/test.d.ts
vendored
@ -1,2 +1 @@
|
||||
/// <reference path="../ts/typings/main.d.ts" />
|
||||
declare var testplugin: any;
|
||||
|
@ -8,4 +8,4 @@ describe("testplugins", function () {
|
||||
});
|
||||
});
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdDLFFBQVEsQ0FBQyxhQUFhLEVBQUM7SUFDbkIsUUFBUSxDQUFDLGVBQWUsRUFBQztRQUNyQixFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3RzL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbnZhciB0ZXN0cGx1Z2luID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXguanNcIik7XG5kZXNjcmliZShcInRlc3RwbHVnaW5zXCIsZnVuY3Rpb24oKXtcbiAgICBkZXNjcmliZShcIi5sb2dTb21ldGhpbmdcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcInNob3VsZCBsb2cgc29tZXRoaW5nXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RwbHVnaW4ubG9nU29tZXRoaW5nKClcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTsiXX0=
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdDLFFBQVEsQ0FBQyxhQUFhLEVBQUM7SUFDbkIsUUFBUSxDQUFDLGVBQWUsRUFBQztRQUNyQixFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3RzL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cclxudmFyIHRlc3RwbHVnaW4gPSByZXF1aXJlKFwiLi4vZGlzdC9pbmRleC5qc1wiKTtcclxuZGVzY3JpYmUoXCJ0ZXN0cGx1Z2luc1wiLGZ1bmN0aW9uKCl7XHJcbiAgICBkZXNjcmliZShcIi5sb2dTb21ldGhpbmdcIixmdW5jdGlvbigpe1xyXG4gICAgICAgIGl0KFwic2hvdWxkIGxvZyBzb21ldGhpbmdcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0cGx1Z2luLmxvZ1NvbWV0aGluZygpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufSk7Il19
|
||||
|
@ -1,14 +1,15 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
export var run = function(configArg){
|
||||
let done = plugins.Q.defer();
|
||||
let config = configArg;
|
||||
plugins.beautylog.log("now looking at required assets");
|
||||
npmtsOra.text("now looking at required assets");
|
||||
if(config.cli == true){
|
||||
plugins.smartfile.fsaction.copy(plugins.path.join(paths.npmtsAssetsDir,"cli.js"),paths.distDir);
|
||||
plugins.beautylog.ok("CLI asset has been installed!");
|
||||
plugins.beautylog.ok("installed CLI assets!");
|
||||
done.resolve(config);
|
||||
} else {
|
||||
done.resolve(config);
|
||||
|
@ -1,13 +1,14 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
export let run = function(configArg){
|
||||
plugins.beautylog.log("now cleaning up from previous builds...");
|
||||
npmtsOra.text("cleaning up from previous builds...");
|
||||
let done = plugins.Q.defer();
|
||||
plugins.smartfile.fsaction.remove(paths.distDir)
|
||||
.then(function(){
|
||||
plugins.beautylog.ok("Cleaned up!");
|
||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||
done.resolve(configArg);
|
||||
});
|
||||
return done.promise;
|
||||
|
@ -1,13 +1,43 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
|
||||
import helpers = require("./npmts.compile.helpers");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
/**
|
||||
* handles definition to make them fit for modular use
|
||||
*/
|
||||
let definitionHandler = function(configArg){
|
||||
npmtsOra.text("now making declaration files ready");
|
||||
let done = plugins.Q.defer();
|
||||
let configTsLenght = Object.keys(configArg.ts).length;
|
||||
if(configTsLenght == 0) {
|
||||
plugins.beautylog.warn("No declaration files found... Are you sure you don't want them?");
|
||||
done.resolve(configArg); //if there are no definition files, resolve...
|
||||
}
|
||||
let localCounter = 0;
|
||||
for (let key in configArg.ts){
|
||||
let distPath = configArg.ts[key];
|
||||
let stream = plugins.gulp.src(plugins.path.join(distPath,"**/*.d.ts"))
|
||||
.pipe(plugins.g.replace(plugins.smartstring.typescript.regexReferencePath,""))
|
||||
.pipe(plugins.gulp.dest(distPath))
|
||||
.pipe(plugins.g.gFunction(function(){
|
||||
localCounter++
|
||||
if(localCounter == configTsLenght){
|
||||
plugins.beautylog.ok("made declaration files ready!");
|
||||
done.resolve(configArg)
|
||||
};
|
||||
},"atEnd"));
|
||||
|
||||
}
|
||||
return done.promise;
|
||||
}
|
||||
|
||||
|
||||
export let run = function (configArg) {
|
||||
let done = plugins.Q.defer();
|
||||
let config = configArg;
|
||||
plugins.beautylog.log("now compiling " + "TypeScript".yellow);
|
||||
npmtsOra.text("now compiling " + "TypeScript".yellow);
|
||||
let moduleStream = plugins.merge2({ end: false });
|
||||
|
||||
/* -------------------------------------------------
|
||||
@ -43,18 +73,12 @@ export let run = function (configArg) {
|
||||
}
|
||||
|
||||
moduleStream.on("queueDrain", function () {
|
||||
plugins.beautylog.ok("TypeScript has been compiled!");
|
||||
moduleStream.on("finish", function () {
|
||||
try {
|
||||
if(config.mode = "default") plugins.fs.copySync(
|
||||
plugins.path.join(paths.cwd,"ts/typings"),
|
||||
plugins.path.join(paths.cwd,"dist/typings")
|
||||
);
|
||||
}
|
||||
catch (err){
|
||||
plugins.beautylog.warn("failed to copy external typings for full module declaration support");
|
||||
}
|
||||
done.resolve(config);
|
||||
plugins.beautylog.ok("compiled TypeScript!");
|
||||
definitionHandler(config)
|
||||
.then(function(){
|
||||
done.resolve(config);
|
||||
});
|
||||
});
|
||||
moduleStream.end();
|
||||
});
|
||||
|
@ -1,18 +1,20 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
export var run = function(configArg){
|
||||
var config = configArg;
|
||||
var done = plugins.Q.defer();
|
||||
/* -------------------------------------------------
|
||||
* ----------- install typings ---------------
|
||||
* ----------------------------------------------- */
|
||||
plugins.beautylog.log("now installing " + "typings".yellow);
|
||||
npmtsOra.text("now installing typings");
|
||||
var absoluteTypingsArray = plugins.smartpath.transform.toAbsolute(config.typings,paths.cwd);
|
||||
plugins.gulp.src(absoluteTypingsArray)
|
||||
.pipe(plugins.g.typings())
|
||||
.pipe(plugins.g.gFunction(function(){
|
||||
plugins.beautylog.ok("typings have been installed!");
|
||||
plugins.beautylog.ok("typings installed!");
|
||||
done.resolve(config);
|
||||
},"atEnd"));
|
||||
return done.promise;
|
||||
|
@ -1,10 +1,11 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
let genJsdoc = function(configArg){
|
||||
let done = plugins.Q.defer();
|
||||
plugins.beautylog.log("now generating " + "JsDoc documentation".blue);
|
||||
npmtsOra.text("now generating JsDoc documentation");
|
||||
plugins.gulp.src([
|
||||
plugins.path.join(paths.cwd,"README.md"),
|
||||
plugins.path.join(paths.distDir,"**/*.js")
|
||||
|
@ -1,5 +1,6 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
export let isCi = function(){
|
||||
return plugins.smartci.check.isCi();
|
||||
@ -19,7 +20,7 @@ export var run = function(configArg){
|
||||
var done = plugins.Q.defer();
|
||||
var config = configArg;
|
||||
|
||||
plugins.beautylog.log("now determining build options...");
|
||||
npmtsOra.text("now determining build options...");
|
||||
|
||||
//handle default mode
|
||||
if (config.mode == "default"){
|
||||
|
@ -1,5 +1,5 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
export let beautylog = require("beautylog");
|
||||
export import beautylog = require("beautylog");
|
||||
export let fs = require("fs-extra");
|
||||
export let gulp = require("gulp");
|
||||
export let g = {
|
||||
@ -8,6 +8,7 @@ export let g = {
|
||||
istanbul: require("gulp-istanbul"),
|
||||
jsdoc3: require("gulp-jsdoc3"),
|
||||
mocha: require("gulp-mocha"),
|
||||
replace: require("gulp-replace"),
|
||||
sourcemaps: require("gulp-sourcemaps"),
|
||||
typescript: require("gulp-typescript"),
|
||||
typings: require("gulp-typings")
|
||||
@ -24,5 +25,6 @@ export let smartcli = require("smartcli");
|
||||
export let smartcov = require("smartcov");
|
||||
export let smartenv = require("smartenv");
|
||||
export let smartfile = require("smartfile");
|
||||
export let smartpath = require("smartpath");
|
||||
export import smartpath = require("smartpath");
|
||||
export import smartstring = require("smartstring");
|
||||
export let sourceMapSupport = require("source-map-support").install(); // this is required to display errors correctly during testing
|
@ -1,6 +1,9 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
|
||||
export let npmtsOra = new plugins.beautylog.Ora("setting up TaskChain","cyan");
|
||||
npmtsOra.start();
|
||||
|
||||
import NpmtsAssets = require("./npmts.assets");
|
||||
import NpmtsClean = require("./npmts.clean");
|
||||
import NpmtsCompile = require("./npmts.compile");
|
||||
@ -41,6 +44,7 @@ export var run = function(){
|
||||
console.log(shipString);
|
||||
plugins.beautylog.success("READY TO SHIP!");
|
||||
} else {
|
||||
npmtsOra.endOk("Tasks finished!");
|
||||
plugins.beautylog.success("Done!")
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
export let publishCoverage = function(configArg){
|
||||
let done = plugins.Q.defer();
|
||||
@ -71,12 +72,10 @@ export let run = function(configArg) {
|
||||
let done = plugins.Q.defer();
|
||||
let config = configArg;
|
||||
|
||||
plugins.beautylog.log("now starting tests");
|
||||
console.log(
|
||||
"--------------------------------------------------------------\n" +
|
||||
"***************************" +
|
||||
" TESTS: ".blue +
|
||||
"***************************\n" +
|
||||
npmtsOra.text("now starting tests");
|
||||
plugins.beautylog.log(
|
||||
"-------------------------------------------------------\n" +
|
||||
"*************************** TESTS: ***************************\n" +
|
||||
"--------------------------------------------------------------"
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user