diff --git a/assets/node-shebang.js b/assets/node-shebang.js
new file mode 100644
index 0000000..908ba84
--- /dev/null
+++ b/assets/node-shebang.js
@@ -0,0 +1 @@
+#!/usr/bin/env node
diff --git a/compile/compile.js b/compile/compile.js
index 7d4e7e7..28473c9 100644
--- a/compile/compile.js
+++ b/compile/compile.js
@@ -6,26 +6,30 @@ var plugins = {
typescript: require("gulp-typescript"),
header: require("gulp-header")
},
- mergeStream: require("merge2")
-
+ mergeStream: require("merge2"),
+ path: require("path")
};
+paths = {
+ packageBase: plugins.path.resolve(
+ plugins.path.join(__dirname,"../")
+ )
+};
plugins.beautylog.log('now compiling NPMTS');
plugins.gulp.task('indexTS', function() {
- var tsResult = plugins.gulp.src('../ts/index.ts')
+ var stream = plugins.gulp.src([
+ plugins.path.join(paths.packageBase,'ts/**/*.ts'),
+ "!" + plugins.path.join(paths.packageBase,'ts/typings/**/*.d.ts')
+ ])
.pipe(plugins.g.typescript({
- out:"index.js",
- declaration:true
- }));
-
- return plugins.mergeStream([
- tsResult.dts.pipe(plugins.gulp.dest('../')),
- tsResult.js
- .pipe(plugins.g.header('#!/usr/bin/env node\n\n'))
- .pipe(plugins.gulp.dest('../'))
- ]);
+ target:"ES5",
+ module:"commonjs"
+ }))
+ .pipe(plugins.g.header('#!/usr/bin/env node\n\n'))
+ .pipe(plugins.gulp.dest(plugins.path.join(paths.packageBase, 'dist/')));
+ return stream;
});
plugins.gulp.task('default',['indexTS'], function() {
diff --git a/dist/cli.js b/dist/cli.js
new file mode 100644
index 0000000..37b7ed1
--- /dev/null
+++ b/dist/cli.js
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+///
diff --git a/dist/index.js b/dist/index.js
new file mode 100644
index 0000000..e1ed86f
--- /dev/null
+++ b/dist/index.js
@@ -0,0 +1,8 @@
+#!/usr/bin/env node
+
+///
+console.log("**** starting NPMTS ****");
+var plugins = require("./npmts.plugins");
+var promisechain = require("./npmts.promisechain");
+plugins.beautylog.figletSync("NPMTS");
+promisechain.run();
diff --git a/dist/npmts.cli.js b/dist/npmts.cli.js
new file mode 100644
index 0000000..37b7ed1
--- /dev/null
+++ b/dist/npmts.cli.js
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+///
diff --git a/dist/npmts.compile.js b/dist/npmts.compile.js
new file mode 100644
index 0000000..c4ef9fc
--- /dev/null
+++ b/dist/npmts.compile.js
@@ -0,0 +1,91 @@
+#!/usr/bin/env node
+
+///
+var plugins = require("./npmts.plugins");
+var paths = require("./npmts.paths");
+exports.run = function (configArg) {
+ var done = plugins.q.defer();
+ var config = configArg;
+ plugins.beautylog.log("now running custom tasks");
+ var moduleStream = plugins.mergeStream({ end: false });
+ /* -------------------------------------------------
+ * ----------- first install typings ---------------
+ * ----------------------------------------------- */
+ var typingsDone = plugins.q.defer();
+ var typingsCounter = 0;
+ var typingsCounterAdvance = function () {
+ typingsCounter++;
+ if (typeof config.typings[typingsCounter] != "undefined") {
+ installTypings();
+ }
+ else {
+ plugins.beautylog.success("custom typings installed successfully");
+ typingsDone.resolve();
+ }
+ };
+ var installTypings = function () {
+ plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[typingsCounter].blue);
+ plugins.typings.install({ production: false, cwd: plugins.path.join(paths.cwd, config.typings[typingsCounter]) })
+ .then(function () {
+ typingsCounterAdvance();
+ }, function () {
+ plugins.beautylog.error("something went wrong: Check if path is correct: " + config.typings[typingsCounter].blue);
+ typingsCounterAdvance();
+ });
+ };
+ installTypings();
+ /* -------------------------------------------------
+ * ----------- second compile TS -------------------
+ * ----------------------------------------------- */
+ typingsDone.promise.then(function () {
+ for (var key in config.ts) {
+ plugins.beautylog.log("now compiling" + key.blue);
+ var outputPathIsDir;
+ try {
+ if (plugins.fs.statSync(plugins.path.join(paths.cwd, config.ts[key])).isDirectory()) {
+ outputPathIsDir = true;
+ }
+ }
+ catch (err) {
+ outputPathIsDir = false;
+ }
+ //do some evaluation of the environment
+ var outputNameSpecified = (!outputPathIsDir
+ && (plugins.path.extname(config.ts[key]) == ".js"));
+ var outputName = (function () {
+ if (outputNameSpecified) {
+ return plugins.path.basename(config.ts[key]);
+ }
+ else {
+ return undefined;
+ }
+ })();
+ var outputDir = (function () {
+ if (outputNameSpecified) {
+ return plugins.path.dirname(plugins.path.join(paths.cwd, config.ts[key]));
+ }
+ else {
+ return plugins.path.join(paths.cwd, config.ts[key]);
+ }
+ })();
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd, key), "!**/typings/**"])
+ .pipe(plugins.g.sourcemaps.init()) // This means sourcemaps will be generated
+ .pipe(plugins.g.typescript({
+ out: outputName,
+ target: "ES5",
+ module: "commonjs"
+ }))
+ .pipe(plugins.g.sourcemaps.write()) // Now the sourcemaps are added to the .js file
+ .pipe(plugins.gulp.dest(outputDir));
+ moduleStream.add(stream);
+ }
+ moduleStream.on("queueDrain", function () {
+ plugins.beautylog.success("custom TypeScript installed successfully");
+ moduleStream.on("finish", function () {
+ done.resolve(config);
+ });
+ moduleStream.end();
+ });
+ });
+ return done.promise;
+};
diff --git a/dist/npmts.configfile.js b/dist/npmts.configfile.js
new file mode 100644
index 0000000..18844f0
--- /dev/null
+++ b/dist/npmts.configfile.js
@@ -0,0 +1,31 @@
+#!/usr/bin/env node
+
+///
+var plugins = require("./npmts.plugins");
+var paths = require("./npmts.paths");
+exports.run = function () {
+ var done = plugins.q.defer();
+ var config = {};
+ var configPath = plugins.path.join(paths.cwd, "npmts.json");
+ if (plugins.smartfile.checks.fileExistsSync(configPath)) {
+ plugins.beautylog.info("npmts.json".blue + " config file found!");
+ config = plugins.smartfile.readFileToObject(configPath);
+ switch (config.mode) {
+ case "default":
+ case "custom":
+ plugins.beautylog.log("mode is " + config.mode.yellow);
+ done.resolve(config);
+ break;
+ default:
+ plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
+ }
+ ;
+ }
+ else {
+ plugins.beautylog.log("no config file found: so mode is " + "default".yellow);
+ config.mode = "default";
+ done.resolve(config);
+ }
+ ;
+ return done.promise;
+};
diff --git a/dist/npmts.options.js b/dist/npmts.options.js
new file mode 100644
index 0000000..cd0cc74
--- /dev/null
+++ b/dist/npmts.options.js
@@ -0,0 +1,28 @@
+#!/usr/bin/env node
+
+///
+var plugins = require("./npmts.plugins");
+exports.run = function (configArg) {
+ var done = plugins.q.defer();
+ var config = configArg;
+ if (typeof config.coveralls === "undefined") {
+ config.coveralls = false;
+ }
+ if (config.mode == "default") {
+ config.typings = [
+ "./ts/"
+ ];
+ config.ts = (_a = {},
+ _a["./ts/**/*.ts"] = "./dist/",
+ _a["./test/test.ts"] = "./test/",
+ _a
+ );
+ config.test = ["./index.js"];
+ done.resolve(config);
+ }
+ else {
+ done.resolve(config);
+ }
+ return done.promise;
+ var _a;
+};
diff --git a/dist/npmts.paths.js b/dist/npmts.paths.js
new file mode 100644
index 0000000..1c89cae
--- /dev/null
+++ b/dist/npmts.paths.js
@@ -0,0 +1,11 @@
+#!/usr/bin/env node
+
+///
+var plugins = require("./npmts.plugins");
+var paths = {};
+paths.cwd = plugins.smartcli.get.cwd().path;
+paths.tsDir = plugins.path.join(paths.cwd, "ts/");
+paths.indexTS = plugins.path.join(paths.cwd, "ts/index.ts");
+paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts");
+paths.testDir = plugins.path.join(paths.cwd, "test/");
+module.exports = paths;
diff --git a/dist/npmts.plugins.js b/dist/npmts.plugins.js
new file mode 100644
index 0000000..addc434
--- /dev/null
+++ b/dist/npmts.plugins.js
@@ -0,0 +1,23 @@
+#!/usr/bin/env node
+
+///
+var plugins = {
+ beautylog: require("beautylog"),
+ fs: require("fs-extra"),
+ gulp: require("gulp"),
+ g: {
+ coveralls: require("gulp-coveralls"),
+ istanbul: require("gulp-istanbul"),
+ mocha: require("gulp-mocha"),
+ sourcemaps: require("gulp-sourcemaps"),
+ typescript: require("gulp-typescript")
+ },
+ mergeStream: require("merge2"),
+ sourceMapSupport: require("source-map-support").install(),
+ path: require("path"),
+ q: require("q"),
+ smartcli: require("smartcli"),
+ smartfile: require("smartfile"),
+ typings: require("typings")
+};
+module.exports = plugins;
diff --git a/dist/npmts.promisechain.js b/dist/npmts.promisechain.js
new file mode 100644
index 0000000..2fd6e26
--- /dev/null
+++ b/dist/npmts.promisechain.js
@@ -0,0 +1,15 @@
+#!/usr/bin/env node
+
+///
+var NpmtsConfigFile = require("./npmts.configfile");
+var NpmtsOptions = require("./npmts.options");
+var NpmtsCompile = require("./npmts.compile");
+var NpmtsTests = require("./npmts.tests");
+exports.run = function () {
+ var promisechain;
+ NpmtsConfigFile.run()
+ .then(NpmtsOptions.run)
+ .then(NpmtsCompile.run)
+ .then(NpmtsTests.run);
+ return promisechain;
+};
diff --git a/dist/npmts.tests.js b/dist/npmts.tests.js
new file mode 100644
index 0000000..44d29dd
--- /dev/null
+++ b/dist/npmts.tests.js
@@ -0,0 +1,40 @@
+#!/usr/bin/env node
+
+///
+var plugins = require("./npmts.plugins");
+var paths = require("./npmts.paths");
+exports.run = function (configArg) {
+ var done = plugins.q.defer();
+ var config = configArg;
+ var istanbul = function () {
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd, "dist/*.js")])
+ .pipe(plugins.g.istanbul())
+ .pipe(plugins.g.istanbul.hookRequire());
+ return stream;
+ };
+ var mocha = function () {
+ var stream = plugins.gulp.src(["./test/test.js"])
+ .pipe(plugins.g.mocha())
+ .pipe(plugins.g.istanbul.writeReports())
+ .pipe(plugins.g.istanbul.enforceThresholds({ thresholds: { global: 30 } }));
+ return stream;
+ };
+ var coveralls = function () {
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd, "./coverage/lcov.info")])
+ .pipe(plugins.g.coveralls());
+ return stream;
+ };
+ istanbul().on("finish", function () {
+ mocha().on("finish", function () {
+ if (process.env.TRAVIS && config.coveralls) {
+ coveralls().on("finish", function () {
+ done.resolve(config);
+ });
+ }
+ else {
+ done.resolve(config);
+ }
+ });
+ });
+ return done.promise;
+};
diff --git a/index.d.ts b/index.d.ts
deleted file mode 100644
index a739639..0000000
--- a/index.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-///
-declare module NpmtsPlugins {
- var init: () => {
- beautylog: any;
- fs: any;
- gulp: any;
- g: {
- coveralls: any;
- istanbul: any;
- mocha: any;
- sourcemaps: any;
- typescript: any;
- };
- mergeStream: any;
- sourceMapSupport: any;
- path: any;
- q: any;
- smartcli: any;
- smartfile: any;
- typings: any;
- };
-}
-declare module NpmtsPaths {
- var init: () => any;
-}
-declare module NpmtsConfigFile {
- var run: () => any;
-}
-declare module NpmtsOptions {
- var run: (configArg: any) => any;
-}
-declare module NpmtsCompile {
- var run: (configArg: any) => any;
-}
-declare module NpmtsTests {
- var run: (configArg: any) => any;
-}
-declare module NpmtsPromisechain {
- var init: () => any;
-}
-declare var plugins: {
- beautylog: any;
- fs: any;
- gulp: any;
- g: {
- coveralls: any;
- istanbul: any;
- mocha: any;
- sourcemaps: any;
- typescript: any;
- };
- mergeStream: any;
- sourceMapSupport: any;
- path: any;
- q: any;
- smartcli: any;
- smartfile: any;
- typings: any;
-};
-declare var paths: any;
-declare var promisechain: any;
diff --git a/index.js b/index.js
deleted file mode 100644
index ccf82ce..0000000
--- a/index.js
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/usr/bin/env node
-
-///
-var NpmtsPlugins;
-(function (NpmtsPlugins) {
- NpmtsPlugins.init = function () {
- var plugins = {
- beautylog: require("beautylog"),
- fs: require("fs-extra"),
- gulp: require("gulp"),
- g: {
- coveralls: require("gulp-coveralls"),
- istanbul: require("gulp-istanbul"),
- mocha: require("gulp-mocha"),
- sourcemaps: require("gulp-sourcemaps"),
- typescript: require("gulp-typescript")
- },
- mergeStream: require("merge2"),
- sourceMapSupport: require("source-map-support").install(),
- path: require("path"),
- q: require("q"),
- smartcli: require("smartcli"),
- smartfile: require("smartfile"),
- typings: require("typings")
- };
- return plugins;
- };
-})(NpmtsPlugins || (NpmtsPlugins = {}));
-///
-///
-var NpmtsPaths;
-(function (NpmtsPaths) {
- NpmtsPaths.init = function () {
- var paths = {};
- paths.cwd = plugins.smartcli.get.cwd().path;
- paths.tsDir = plugins.path.join(paths.cwd, "ts/");
- paths.indexTS = plugins.path.join(paths.cwd, "ts/index.ts");
- paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts");
- paths.testDir = plugins.path.join(paths.cwd, "test/");
- return paths;
- };
-})(NpmtsPaths || (NpmtsPaths = {}));
-///
-var NpmtsConfigFile;
-(function (NpmtsConfigFile) {
- NpmtsConfigFile.run = function () {
- var done = plugins.q.defer();
- var config = {};
- var configPath = plugins.path.join(paths.cwd, "npmts.json");
- if (plugins.smartfile.checks.fileExistsSync(configPath)) {
- plugins.beautylog.info("npmts.json".blue + " config file found!");
- config = plugins.smartfile.readFileToObject(configPath);
- switch (config.mode) {
- case "default":
- case "custom":
- plugins.beautylog.log("mode is " + config.mode.yellow);
- done.resolve(config);
- break;
- default:
- plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
- }
- ;
- }
- else {
- plugins.beautylog.log("no config file found: so mode is " + "default".yellow);
- config.mode = "default";
- done.resolve(config);
- }
- ;
- return done.promise;
- };
-})(NpmtsConfigFile || (NpmtsConfigFile = {}));
-///
-var NpmtsOptions;
-(function (NpmtsOptions) {
- NpmtsOptions.run = function (configArg) {
- var done = plugins.q.defer();
- var config = configArg;
- if (typeof config.coveralls === "undefined") {
- config.coveralls = false;
- }
- if (config.mode == "default") {
- config.typings = [
- "./ts/"
- ];
- config.ts = (_a = {},
- _a["./ts/**/*.ts"] = "./dist/",
- _a["./test/test.ts"] = "./test/",
- _a
- );
- config.test = ["./index.js"];
- done.resolve(config);
- }
- else {
- done.resolve(config);
- }
- return done.promise;
- var _a;
- };
-})(NpmtsOptions || (NpmtsOptions = {}));
-///
-var NpmtsCompile;
-(function (NpmtsCompile) {
- NpmtsCompile.run = function (configArg) {
- var done = plugins.q.defer();
- var config = configArg;
- plugins.beautylog.log("now running custom tasks");
- var moduleStream = plugins.mergeStream({ end: false });
- /* -------------------------------------------------
- * ----------- first install typings ---------------
- * ----------------------------------------------- */
- var typingsDone = plugins.q.defer();
- var typingsCounter = 0;
- var typingsCounterAdvance = function () {
- typingsCounter++;
- if (typeof config.typings[typingsCounter] != "undefined") {
- installTypings();
- }
- else {
- plugins.beautylog.success("custom typings installed successfully");
- typingsDone.resolve();
- }
- };
- var installTypings = function () {
- plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[typingsCounter].blue);
- plugins.typings.install({ production: false, cwd: plugins.path.join(paths.cwd, config.typings[typingsCounter]) })
- .then(function () {
- typingsCounterAdvance();
- }, function () {
- plugins.beautylog.error("something went wrong: Check if path is correct: " + config.typings[typingsCounter].blue);
- typingsCounterAdvance();
- });
- };
- installTypings();
- /* -------------------------------------------------
- * ----------- second compile TS -------------------
- * ----------------------------------------------- */
- typingsDone.promise.then(function () {
- for (var key in config.ts) {
- plugins.beautylog.log("now compiling" + key.blue);
- var outputPathIsDir;
- try {
- if (plugins.fs.statSync(plugins.path.join(paths.cwd, config.ts[key])).isDirectory()) {
- outputPathIsDir = true;
- }
- }
- catch (err) {
- outputPathIsDir = false;
- }
- //do some evaluation of the environment
- var outputNameSpecified = (!outputPathIsDir
- && (plugins.path.extname(config.ts[key]) == ".js"));
- var outputName = (function () {
- if (outputNameSpecified) {
- return plugins.path.basename(config.ts[key]);
- }
- else {
- return undefined;
- }
- })();
- var outputDir = (function () {
- if (outputNameSpecified) {
- return plugins.path.dirname(plugins.path.join(paths.cwd, config.ts[key]));
- }
- else {
- return plugins.path.join(paths.cwd, config.ts[key]);
- }
- })();
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd, key), "!**/typings/**"])
- .pipe(plugins.g.sourcemaps.init()) // This means sourcemaps will be generated
- .pipe(plugins.g.typescript({
- out: outputName,
- target: "ES5",
- module: "commonjs"
- }))
- .pipe(plugins.g.sourcemaps.write()) // Now the sourcemaps are added to the .js file
- .pipe(plugins.gulp.dest(outputDir));
- moduleStream.add(stream);
- }
- moduleStream.on("queueDrain", function () {
- plugins.beautylog.success("custom TypeScript installed successfully");
- moduleStream.on("finish", function () {
- done.resolve(config);
- });
- moduleStream.end();
- });
- });
- return done.promise;
- };
-})(NpmtsCompile || (NpmtsCompile = {}));
-///
-var NpmtsTests;
-(function (NpmtsTests) {
- NpmtsTests.run = function (configArg) {
- var done = plugins.q.defer();
- var config = configArg;
- var istanbul = function () {
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd, "dist/*.js")])
- .pipe(plugins.g.istanbul())
- .pipe(plugins.g.istanbul.hookRequire());
- return stream;
- };
- var mocha = function () {
- var stream = plugins.gulp.src(["./test/test.js"])
- .pipe(plugins.g.mocha())
- .pipe(plugins.g.istanbul.writeReports())
- .pipe(plugins.g.istanbul.enforceThresholds({ thresholds: { global: 30 } }));
- return stream;
- };
- var coveralls = function () {
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd, "./coverage/lcov.info")])
- .pipe(plugins.g.coveralls());
- return stream;
- };
- istanbul().on("finish", function () {
- mocha().on("finish", function () {
- if (process.env.TRAVIS && config.coveralls) {
- coveralls().on("finish", function () {
- done.resolve(config);
- });
- }
- else {
- done.resolve(config);
- }
- });
- });
- return done.promise;
- };
-})(NpmtsTests || (NpmtsTests = {}));
-///
-var NpmtsPromisechain;
-(function (NpmtsPromisechain) {
- NpmtsPromisechain.init = function () {
- var promisechain;
- NpmtsConfigFile.run()
- .then(NpmtsOptions.run)
- .then(NpmtsCompile.run)
- .then(NpmtsTests.run);
- return promisechain;
- };
-})(NpmtsPromisechain || (NpmtsPromisechain = {}));
-///
-///
-///
-///
-///
-///
-///
-///
-///
-console.log("**** starting NPMTS ****");
-var plugins = NpmtsPlugins.init();
-plugins.beautylog.figletSync("NPMTS");
-var paths = NpmtsPaths.init();
-var promisechain = NpmtsPromisechain.init();
diff --git a/package.json b/package.json
index 764d0f0..6d521fa 100644
--- a/package.json
+++ b/package.json
@@ -2,13 +2,12 @@
"name": "npmts",
"version": "3.1.2",
"description": "write npm modules with TypeScript",
- "main": "index.js",
- "typings": "./index.d.ts",
+ "main": "dist/index.js",
"bin": {
- "npmts": "./index.js"
+ "npmts": "dist/cli.js"
},
"scripts": {
- "test": "(cd compile && node compile.js) && (cd test/assets && node ../../index.js)",
+ "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)"
},
"repository": {
@@ -29,7 +28,9 @@
"beautylog": "2.1.1",
"fs-extra": "^0.26.5",
"gulp": "3.9.1",
+ "gulp-concat": "^2.6.0",
"gulp-coveralls": "^0.1.4",
+ "gulp-if": "^2.0.0",
"gulp-istanbul": "^0.10.3",
"gulp-mocha": "^2.2.0",
"gulp-sourcemaps": "^1.6.0",
diff --git a/ts/cli.ts b/ts/cli.ts
new file mode 100644
index 0000000..17f6a8b
--- /dev/null
+++ b/ts/cli.ts
@@ -0,0 +1 @@
+///
\ No newline at end of file
diff --git a/ts/index.ts b/ts/index.ts
index 287f2b9..e3d24e3 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,14 +1,6 @@
///
-///
-///
-///
-///
-///
-///
-///
-///
console.log("**** starting NPMTS ****");
-var plugins = NpmtsPlugins.init();
+import plugins = require("./npmts.plugins");
+import promisechain = require("./npmts.promisechain");
plugins.beautylog.figletSync("NPMTS");
-var paths = NpmtsPaths.init();
-var promisechain = NpmtsPromisechain.init();
+promisechain.run();
diff --git a/ts/npmts.cli.ts b/ts/npmts.cli.ts
index 019254e..17f6a8b 100644
--- a/ts/npmts.cli.ts
+++ b/ts/npmts.cli.ts
@@ -1 +1 @@
-///
\ No newline at end of file
+///
\ No newline at end of file
diff --git a/ts/npmts.compile.ts b/ts/npmts.compile.ts
index 1b96996..67bdfd9 100644
--- a/ts/npmts.compile.ts
+++ b/ts/npmts.compile.ts
@@ -1,92 +1,92 @@
-///
-module NpmtsCompile {
- export var run = function(configArg){
- var done = plugins.q.defer();
- var config = configArg;
- plugins.beautylog.log("now running custom tasks");
- var moduleStream = plugins.mergeStream({end: false});
- /* -------------------------------------------------
- * ----------- first install typings ---------------
- * ----------------------------------------------- */
- var typingsDone = plugins.q.defer();
- var typingsCounter:number = 0;
- var typingsCounterAdvance = function(){
- typingsCounter++;
- if(typeof config.typings[typingsCounter] != "undefined"){
- installTypings();
- } else {
- plugins.beautylog.success("custom typings installed successfully");
- typingsDone.resolve();
- }
- };
- var installTypings = function() {
- plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[typingsCounter].blue);
- plugins.typings.install({production: false, cwd: plugins.path.join(paths.cwd,config.typings[typingsCounter])})
- .then(function(){
- typingsCounterAdvance();
- },function(){
- plugins.beautylog.error("something went wrong: Check if path is correct: " + config.typings[typingsCounter].blue);
- typingsCounterAdvance();
- });
- };
- installTypings();
- /* -------------------------------------------------
- * ----------- second compile TS -------------------
- * ----------------------------------------------- */
- typingsDone.promise.then(function(){
- for (var key in config.ts) {
- plugins.beautylog.log("now compiling" + key.blue);
- var outputPathIsDir:boolean;
- try {
- if(plugins.fs.statSync(plugins.path.join(paths.cwd,config.ts[key])).isDirectory()){
- outputPathIsDir = true;
- }
- }
- catch(err) {
- outputPathIsDir = false;
- }
- //do some evaluation of the environment
- var outputNameSpecified:boolean = (
- !outputPathIsDir
- && (plugins.path.extname(config.ts[key]) == ".js")
- );
- var outputName = (function(){
- if(outputNameSpecified){
- return plugins.path.basename(config.ts[key])
- } else {
- return undefined
- }
- })();
- var outputDir = (function(){
- if(outputNameSpecified){
- return plugins.path.dirname(
- plugins.path.join(paths.cwd,config.ts[key])
- )
- } else {
- return plugins.path.join(paths.cwd,config.ts[key])
- }
- })();
-
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd,key),"!**/typings/**"])
- .pipe(plugins.g.sourcemaps.init()) // This means sourcemaps will be generated
- .pipe(plugins.g.typescript({
- out: outputName,
- target: "ES5",
- module: "commonjs"
- }))
- .pipe(plugins.g.sourcemaps.write()) // Now the sourcemaps are added to the .js file
- //.pipe(plugins.g.header('#!/usr/bin/env node\n\n'))
- .pipe(plugins.gulp.dest(outputDir));
- moduleStream.add(stream);
- }
- moduleStream.on("queueDrain",function(){
- plugins.beautylog.success("custom TypeScript installed successfully");
- moduleStream.on("finish",function(){
- done.resolve(config);
- });
- moduleStream.end();
+///
+import plugins = require("./npmts.plugins");
+import paths = require("./npmts.paths");
+export var run = function(configArg){
+ var done = plugins.q.defer();
+ var config = configArg;
+ plugins.beautylog.log("now running custom tasks");
+ var moduleStream = plugins.mergeStream({end: false});
+ /* -------------------------------------------------
+ * ----------- first install typings ---------------
+ * ----------------------------------------------- */
+ var typingsDone = plugins.q.defer();
+ var typingsCounter:number = 0;
+ var typingsCounterAdvance = function(){
+ typingsCounter++;
+ if(typeof config.typings[typingsCounter] != "undefined"){
+ installTypings();
+ } else {
+ plugins.beautylog.success("custom typings installed successfully");
+ typingsDone.resolve();
+ }
+ };
+ var installTypings = function() {
+ plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[typingsCounter].blue);
+ plugins.typings.install({production: false, cwd: plugins.path.join(paths.cwd,config.typings[typingsCounter])})
+ .then(function(){
+ typingsCounterAdvance();
+ },function(){
+ plugins.beautylog.error("something went wrong: Check if path is correct: " + config.typings[typingsCounter].blue);
+ typingsCounterAdvance();
});
+ };
+ installTypings();
+ /* -------------------------------------------------
+ * ----------- second compile TS -------------------
+ * ----------------------------------------------- */
+ typingsDone.promise.then(function(){
+ for (var key in config.ts) {
+ plugins.beautylog.log("now compiling" + key.blue);
+ var outputPathIsDir:boolean;
+ try {
+ if(plugins.fs.statSync(plugins.path.join(paths.cwd,config.ts[key])).isDirectory()){
+ outputPathIsDir = true;
+ }
+ }
+ catch(err) {
+ outputPathIsDir = false;
+ }
+ //do some evaluation of the environment
+ var outputNameSpecified:boolean = (
+ !outputPathIsDir
+ && (plugins.path.extname(config.ts[key]) == ".js")
+ );
+ var outputName = (function(){
+ if(outputNameSpecified){
+ return plugins.path.basename(config.ts[key])
+ } else {
+ return undefined
+ }
+ })();
+ var outputDir = (function(){
+ if(outputNameSpecified){
+ return plugins.path.dirname(
+ plugins.path.join(paths.cwd,config.ts[key])
+ )
+ } else {
+ return plugins.path.join(paths.cwd,config.ts[key])
+ }
+ })();
+
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd,key),"!**/typings/**"])
+ .pipe(plugins.g.sourcemaps.init()) // This means sourcemaps will be generated
+ .pipe(plugins.g.typescript({
+ out: outputName,
+ target: "ES5",
+ module: "commonjs"
+ }))
+ .pipe(plugins.g.sourcemaps.write()) // Now the sourcemaps are added to the .js file
+ //.pipe(plugins.g.header('#!/usr/bin/env node\n\n'))
+ .pipe(plugins.gulp.dest(outputDir));
+ moduleStream.add(stream);
+ }
+ moduleStream.on("queueDrain",function(){
+ plugins.beautylog.success("custom TypeScript installed successfully");
+ moduleStream.on("finish",function(){
+ done.resolve(config);
+ });
+ moduleStream.end();
});
- return done.promise;
- }
-}
\ No newline at end of file
+ });
+ return done.promise;
+};
diff --git a/ts/npmts.configfile.ts b/ts/npmts.configfile.ts
index f97a6f0..c431b6d 100644
--- a/ts/npmts.configfile.ts
+++ b/ts/npmts.configfile.ts
@@ -1,26 +1,26 @@
-///
-module NpmtsConfigFile {
- export var run = function(){
- var done = plugins.q.defer();
- var config:any = {};
- var configPath = plugins.path.join(paths.cwd,"npmts.json");
- if(plugins.smartfile.checks.fileExistsSync(configPath)){
- plugins.beautylog.info("npmts.json".blue + " config file found!");
- config = plugins.smartfile.readFileToObject(configPath);
- switch (config.mode){
- case "default":
- case "custom":
- plugins.beautylog.log("mode is " + config.mode.yellow);
- done.resolve(config);
- break;
- default:
- plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
- };
- } else {
- plugins.beautylog.log("no config file found: so mode is " + "default".yellow);
- config.mode = "default";
- done.resolve(config);
+///
+import plugins = require("./npmts.plugins");
+import paths = require("./npmts.paths");
+export var run = function(){
+ var done = plugins.q.defer();
+ var config:any = {};
+ var configPath = plugins.path.join(paths.cwd,"npmts.json");
+ if(plugins.smartfile.checks.fileExistsSync(configPath)){
+ plugins.beautylog.info("npmts.json".blue + " config file found!");
+ config = plugins.smartfile.readFileToObject(configPath);
+ switch (config.mode){
+ case "default":
+ case "custom":
+ plugins.beautylog.log("mode is " + config.mode.yellow);
+ done.resolve(config);
+ break;
+ default:
+ plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
};
- return done.promise;
- }
-}
\ No newline at end of file
+ } else {
+ plugins.beautylog.log("no config file found: so mode is " + "default".yellow);
+ config.mode = "default";
+ done.resolve(config);
+ };
+ return done.promise;
+};
\ No newline at end of file
diff --git a/ts/npmts.options.ts b/ts/npmts.options.ts
index 72939ca..5d202b0 100644
--- a/ts/npmts.options.ts
+++ b/ts/npmts.options.ts
@@ -1,24 +1,23 @@
-///
-module NpmtsOptions {
- export var run = function(configArg){
- var done = plugins.q.defer();
- var config = configArg;
- if (typeof config.coveralls === "undefined"){
- config.coveralls = false;
- }
- if (config.mode == "default"){
- config.typings = [
- "./ts/"
- ];
- config.ts = {
- ["./ts/**/*.ts"]: "./dist/",
- ["./test/test.ts"]: "./test/"
- };
- config.test = ["./index.js"];
- done.resolve(config);
- } else {
- done.resolve(config);
- }
- return done.promise;
+///
+import plugins = require("./npmts.plugins");
+export var run = function(configArg){
+ var done = plugins.q.defer();
+ var config = configArg;
+ if (typeof config.coveralls === "undefined"){
+ config.coveralls = false;
}
-}
\ No newline at end of file
+ if (config.mode == "default"){
+ config.typings = [
+ "./ts/"
+ ];
+ config.ts = {
+ ["./ts/**/*.ts"]: "./dist/",
+ ["./test/test.ts"]: "./test/"
+ };
+ config.test = ["./index.js"];
+ done.resolve(config);
+ } else {
+ done.resolve(config);
+ }
+ return done.promise;
+};
\ No newline at end of file
diff --git a/ts/npmts.paths.ts b/ts/npmts.paths.ts
index 726c339..a71606d 100644
--- a/ts/npmts.paths.ts
+++ b/ts/npmts.paths.ts
@@ -1,12 +1,9 @@
-///
-module NpmtsPaths {
- export var init = function() {
- var paths:any = {};
- paths.cwd = plugins.smartcli.get.cwd().path;
- paths.tsDir = plugins.path.join(paths.cwd,"ts/");
- paths.indexTS = plugins.path.join(paths.cwd,"ts/index.ts");
- paths.testTS = plugins.path.join(paths.cwd,"ts/test.ts");
- paths.testDir = plugins.path.join(paths.cwd,"test/");
- return paths;
- }
-}
\ No newline at end of file
+///
+import plugins = require("./npmts.plugins");
+var paths:any = {};
+paths.cwd = plugins.smartcli.get.cwd().path;
+paths.tsDir = plugins.path.join(paths.cwd,"ts/");
+paths.indexTS = plugins.path.join(paths.cwd,"ts/index.ts");
+paths.testTS = plugins.path.join(paths.cwd,"ts/test.ts");
+paths.testDir = plugins.path.join(paths.cwd,"test/");
+export = paths;
\ No newline at end of file
diff --git a/ts/npmts.plugins.ts b/ts/npmts.plugins.ts
index 41ef81c..c482711 100644
--- a/ts/npmts.plugins.ts
+++ b/ts/npmts.plugins.ts
@@ -1,26 +1,22 @@
-///
-module NpmtsPlugins {
- export var init = function() {
- var plugins = {
- beautylog: require("beautylog"),
- fs: require("fs-extra"),
- gulp: require("gulp"),
- g: {
- coveralls: require("gulp-coveralls"),
- istanbul: require("gulp-istanbul"),
- mocha: require("gulp-mocha"),
- sourcemaps: require("gulp-sourcemaps"),
- typescript: require("gulp-typescript")
+///
+var plugins = {
+ beautylog: require("beautylog"),
+ fs: require("fs-extra"),
+ gulp: require("gulp"),
+ g: {
+ coveralls: require("gulp-coveralls"),
+ istanbul: require("gulp-istanbul"),
+ mocha: require("gulp-mocha"),
+ sourcemaps: require("gulp-sourcemaps"),
+ typescript: require("gulp-typescript")
- },
- mergeStream: require("merge2"),
- sourceMapSupport:require("source-map-support").install(),
- path: require("path"),
- q:require("q"),
- smartcli: require("smartcli"),
- smartfile: require("smartfile"),
- typings: require("typings")
- };
- return plugins;
- }
-}
\ No newline at end of file
+ },
+ mergeStream: require("merge2"),
+ sourceMapSupport:require("source-map-support").install(),
+ path: require("path"),
+ q:require("q"),
+ smartcli: require("smartcli"),
+ smartfile: require("smartfile"),
+ typings: require("typings")
+};
+export = plugins;
\ No newline at end of file
diff --git a/ts/npmts.promisechain.ts b/ts/npmts.promisechain.ts
index dd1ff03..398b6f1 100644
--- a/ts/npmts.promisechain.ts
+++ b/ts/npmts.promisechain.ts
@@ -1,11 +1,13 @@
-///
-module NpmtsPromisechain {
- export var init = function(){
- var promisechain;
- NpmtsConfigFile.run()
- .then(NpmtsOptions.run)
- .then(NpmtsCompile.run)
- .then(NpmtsTests.run);
- return promisechain;
- }
-}
\ No newline at end of file
+///
+import NpmtsConfigFile = require("./npmts.configfile");
+import NpmtsOptions = require("./npmts.options");
+import NpmtsCompile = require("./npmts.compile");
+import NpmtsTests = require("./npmts.tests");
+export var run = function(){
+ var promisechain;
+ NpmtsConfigFile.run()
+ .then(NpmtsOptions.run)
+ .then(NpmtsCompile.run)
+ .then(NpmtsTests.run);
+ return promisechain;
+};
\ No newline at end of file
diff --git a/ts/npmts.tests.ts b/ts/npmts.tests.ts
index 0f6dd87..a792561 100644
--- a/ts/npmts.tests.ts
+++ b/ts/npmts.tests.ts
@@ -1,44 +1,44 @@
-///
-module NpmtsTests {
- export var run = function(configArg) {
- var done = plugins.q.defer();
- var config = configArg;
- var istanbul = function () {
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd,"dist/*.js")])
- // Covering files
- .pipe(plugins.g.istanbul())
- // Force `require` to return covered files
- .pipe(plugins.g.istanbul.hookRequire());
- return stream;
- };
+///
+import plugins = require("./npmts.plugins");
+import paths = require("./npmts.paths");
+export var run = function(configArg) {
+ var done = plugins.q.defer();
+ var config = configArg;
+ var istanbul = function () {
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd,"dist/*.js")])
+ // Covering files
+ .pipe(plugins.g.istanbul())
+ // Force `require` to return covered files
+ .pipe(plugins.g.istanbul.hookRequire());
+ return stream;
+ };
- var mocha = function () {
- var stream = plugins.gulp.src(["./test/test.js"])
- .pipe(plugins.g.mocha())
- // Creating the reports after tests ran
- .pipe(plugins.g.istanbul.writeReports())
- // Enforce a coverage of at least 90%
- .pipe(plugins.g.istanbul.enforceThresholds({ thresholds: { global: 30 } }));
- return stream;
- };
+ var mocha = function () {
+ var stream = plugins.gulp.src(["./test/test.js"])
+ .pipe(plugins.g.mocha())
+ // Creating the reports after tests ran
+ .pipe(plugins.g.istanbul.writeReports())
+ // Enforce a coverage of at least 90%
+ .pipe(plugins.g.istanbul.enforceThresholds({ thresholds: { global: 30 } }));
+ return stream;
+ };
- var coveralls = function(){
- var stream = plugins.gulp.src([plugins.path.join(paths.cwd,"./coverage/lcov.info")])
- .pipe(plugins.g.coveralls());
- return stream;
- };
+ var coveralls = function(){
+ var stream = plugins.gulp.src([plugins.path.join(paths.cwd,"./coverage/lcov.info")])
+ .pipe(plugins.g.coveralls());
+ return stream;
+ };
- istanbul().on("finish",function(){
- mocha().on("finish",function(){
- if(process.env.TRAVIS && config.coveralls){
- coveralls().on("finish",function(){
- done.resolve(config);
- })
- } else {
+ istanbul().on("finish",function(){
+ mocha().on("finish",function(){
+ if(process.env.TRAVIS && config.coveralls){
+ coveralls().on("finish",function(){
done.resolve(config);
- }
- })
- });
- return done.promise;
- }
-}
\ No newline at end of file
+ })
+ } else {
+ done.resolve(config);
+ }
+ })
+ });
+ return done.promise;
+};
\ No newline at end of file