From d5407e33ddac38293a7be46008cc5d8dc502cf8b Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Sat, 20 Feb 2016 00:53:23 +0100 Subject: [PATCH] now using commonjs module system --- assets/node-shebang.js | 1 + compile/compile.js | 30 +++-- dist/cli.js | 3 + dist/index.js | 8 ++ dist/npmts.cli.js | 3 + dist/npmts.compile.js | 91 +++++++++++++ dist/npmts.configfile.js | 31 +++++ dist/npmts.options.js | 28 ++++ dist/npmts.paths.js | 11 ++ dist/npmts.plugins.js | 23 ++++ dist/npmts.promisechain.js | 15 +++ dist/npmts.tests.js | 40 ++++++ index.d.ts | 61 --------- index.js | 255 ------------------------------------- package.json | 9 +- ts/cli.ts | 1 + ts/index.ts | 14 +- ts/npmts.cli.ts | 2 +- ts/npmts.compile.ts | 180 +++++++++++++------------- ts/npmts.configfile.ts | 50 ++++---- ts/npmts.options.ts | 45 ++++--- ts/npmts.paths.ts | 21 ++- ts/npmts.plugins.ts | 46 +++---- ts/npmts.promisechain.ts | 24 ++-- ts/npmts.tests.ts | 80 ++++++------ 25 files changed, 501 insertions(+), 571 deletions(-) create mode 100644 assets/node-shebang.js create mode 100644 dist/cli.js create mode 100644 dist/index.js create mode 100644 dist/npmts.cli.js create mode 100644 dist/npmts.compile.js create mode 100644 dist/npmts.configfile.js create mode 100644 dist/npmts.options.js create mode 100644 dist/npmts.paths.js create mode 100644 dist/npmts.plugins.js create mode 100644 dist/npmts.promisechain.js create mode 100644 dist/npmts.tests.js delete mode 100644 index.d.ts delete mode 100644 index.js create mode 100644 ts/cli.ts 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