Compare commits

...

19 Commits

Author SHA1 Message Date
822734e545 2.0.1 2016-02-01 00:24:17 +01:00
8dcbe98c60 now running mocha tests properly 2016-02-01 00:24:08 +01:00
2fbcb58078 2.0.0 2016-01-31 22:25:36 +01:00
362f8d5388 major update 2016-01-31 22:24:57 +01:00
8fb4a60fb3 now includes mocha 2016-01-30 05:29:54 +01:00
7c6b5afd5f restructure 2016-01-30 04:57:24 +01:00
f83eb035c2 1.0.12 2016-01-25 21:20:28 +01:00
359e844c69 update plugins 2016-01-25 21:20:17 +01:00
6b40cfd954 1.0.11 2016-01-25 20:52:42 +01:00
8f13dbef9f fix issue with CI detection 2016-01-25 20:52:29 +01:00
9ff2453d7b 1.0.10 2016-01-25 20:25:10 +01:00
e40a82e8c9 improve info 2016-01-25 20:24:59 +01:00
cac50f7099 1.0.9 2016-01-18 19:12:21 +01:00
ef64874411 improve logging 2016-01-18 19:11:42 +01:00
870d24701c 1.0.8 2016-01-18 19:00:02 +01:00
d12a09d3d8 add tsd handling 2016-01-18 18:59:44 +01:00
2a4811ccb0 1.0.7 2016-01-18 15:38:35 +01:00
146b9cf683 1.0.6 2016-01-18 15:35:59 +01:00
9110a6701d add travis 2016-01-18 15:35:44 +01:00
50 changed files with 2588 additions and 144 deletions

5
.gitignore vendored
View File

@ -1,4 +1,7 @@
.idea/ .idea/
.c9/ .c9/
node_modules/ node_modules/
test/node_modules test/**/node_modules/
test/**/typings/
ts/*.js
ts/*.js.map

View File

@ -1,6 +1,6 @@
.idea/ .idea/
support support
compile compile
test test/
examples examples
.gitignore .gitignore

11
.travis.yml Normal file
View File

@ -0,0 +1,11 @@
language: node_js
node_js:
- "4.2.4"
deploy:
provider: npm
email: npm@lossless.digital
api_key:
secure: k075QdAcmEdmAoVaP5vclLnZmhbZB39v85VIUMWAKXbIAU+liHrYZRlIEYfAaIUrf6sha+zAo/U/vjAN7c5ArB7J/HjCLJ3lsi2fWtaSRlYQrYX9/EhU0S+YZjRE8Jrn4hGTcce6I2mANBnEzvzlXrlKaqVvSqOqTO9nJ5aDBCGa5XT3EwlHKkRlAlL3ZOLrRg38R343E8ifZBsbn9G0e+RgDt0sic3WD8NME9lpsQ/99UZKH00duHbhF9nme5Sjdh86y01hvsaBf+CLR4gfS2IntnrCSrZbETFrsOBUyMnJZDQ3qlrjcEaiTkpJ4iSIqr+ftwGMMD6S1MxCTPqkp64UIeMz2Tg41HqoaeIg7z8cF0APv6M9ZAdWhsU43GqsMe70dK900JZpQAkQxMf/6NpPpGfZug6TwqLYSIRzvjvNrhYfuyoGfXdAxrM3SJMkIq6rwE+T/y36kZaC3CrQRyNZypNz0vW1M9HLjJUi2vO0U/CDn8tvi1p6ChrDXDfV3H2UIAMHFlAF+GrT7dMWwD+p+d8mc9gpAFEF9zMqAIJamPhwboJxoHjKQrqrq5czNm75ETL77AzfnU6CfQlG5dTIFnGId8y0ZxXvtpBruDoyC1+ZF23MYZmb+ipxQZM2oLCjNLeL3aEePc/JlSm6Gn8w3sIkZTG261F0XZxdApw=
on:
tags: true
repo: pushrocks/npmts

View File

@ -22,7 +22,8 @@ Then use it in package.json's script section to trigger a build:
by default npmts looks for `./ts/index.ts` and `./ts/test.ts` that will compile to by default npmts looks for `./ts/index.ts` and `./ts/test.ts` that will compile to
`./index.js` and `./test.js` `./index.js` and `./test.js`
npmts also creates a index.d.ts declaration file. #### Declaration files
**npmts** also creates an `index.d.ts` declaration file by default.
You can reference it in your package.json like this: You can reference it in your package.json like this:
```json ```json
@ -33,7 +34,7 @@ You can reference it in your package.json like this:
When requiring the module from other TypeScript files, When requiring the module from other TypeScript files,
the TypeScript Compiler will use the declaration file to resolve typings. the TypeScript Compiler will use the declaration file to resolve typings.
#### Declaration files
### Custom behaviour ### Custom behaviour
We are currently building support for custom behaviour with a super simple config file. We are currently building support for custom behaviour with a super simple config file.

View File

@ -11,7 +11,7 @@ var plugins = {
}; };
plugins.beautylog.log('now compiling the mojo.io gulp tasks'); plugins.beautylog.log('now compiling NPMTS');
plugins.gulp.task('indexTS', function() { plugins.gulp.task('indexTS', function() {
var tsResult = plugins.gulp.src('../ts/index.ts') var tsResult = plugins.gulp.src('../ts/index.ts')

31
index.d.ts vendored
View File

@ -1,32 +1,55 @@
/// <reference path="../ts/typings/tsd.d.ts" /> /// <reference path="../ts/typings/main.d.ts" />
declare module NpmtsPlugins { declare module NpmtsPlugins {
var init: () => { var init: () => {
beautylog: any; beautylog: any;
fs: any;
gulp: any; gulp: any;
g: { g: {
typescript: any;
insert: any; insert: any;
sequence: any;
typescript: any;
}; };
mergeStream: any; mergeStream: any;
mocha: any;
path: any; path: any;
q: any;
smartcli: any; smartcli: any;
typings: any;
}; };
} }
declare module NpmtsPaths { declare module NpmtsPaths {
var init: () => any; var init: () => any;
} }
declare module NpmtsOptions {
var run: () => any;
}
declare module NpmtsTypings {
var run: () => any;
}
declare module NpmtsDefault { declare module NpmtsDefault {
var init: () => void; var run: () => any;
}
declare module NpmtsTests {
var run: () => any;
}
declare module NpmtsPromisechain {
var init: () => any;
} }
declare var plugins: { declare var plugins: {
beautylog: any; beautylog: any;
fs: any;
gulp: any; gulp: any;
g: { g: {
typescript: any;
insert: any; insert: any;
sequence: any;
typescript: any;
}; };
mergeStream: any; mergeStream: any;
mocha: any;
path: any; path: any;
q: any;
smartcli: any; smartcli: any;
typings: any;
}; };
declare var paths: any; declare var paths: any;
declare var promisechain: any;

View File

@ -6,14 +6,19 @@ var NpmtsPlugins;
NpmtsPlugins.init = function () { NpmtsPlugins.init = function () {
var plugins = { var plugins = {
beautylog: require("beautylog"), beautylog: require("beautylog"),
fs: require("fs-extra"),
gulp: require("gulp"), gulp: require("gulp"),
g: { g: {
typescript: require("gulp-typescript"), insert: require("gulp-insert"),
insert: require("gulp-insert") sequence: require("gulp-sequence"),
typescript: require("gulp-typescript")
}, },
mergeStream: require("merge2"), mergeStream: require("merge2"),
mocha: require("mocha"),
path: require("path"), path: require("path"),
smartcli: require("smartcli") q: require("q"),
smartcli: require("smartcli"),
typings: require("typings")
}; };
return plugins; return plugins;
}; };
@ -25,17 +30,43 @@ var NpmtsPaths;
NpmtsPaths.init = function () { NpmtsPaths.init = function () {
var paths = {}; var paths = {};
paths.cwd = plugins.smartcli.get.cwd().path; 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.indexTS = plugins.path.join(paths.cwd, "ts/index.ts");
paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts"); paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts");
paths.testDir = plugins.path.join(paths.cwd, "test/");
return paths; return paths;
}; };
})(NpmtsPaths || (NpmtsPaths = {})); })(NpmtsPaths || (NpmtsPaths = {}));
/// <reference path="./index.ts" />
var NpmtsOptions;
(function (NpmtsOptions) {
NpmtsOptions.run = function () {
var done = plugins.q.defer();
done.resolve(); //TODO: check for options
return done.promise;
};
})(NpmtsOptions || (NpmtsOptions = {}));
/// <reference path="./index.ts" />
var NpmtsTypings;
(function (NpmtsTypings) {
NpmtsTypings.run = function () {
var done = plugins.q.defer();
plugins.beautylog.log("now installing typings");
plugins.typings.install({ production: false, cwd: paths.tsDir })
.then(function () {
done.resolve();
});
return done.promise;
};
})(NpmtsTypings || (NpmtsTypings = {}));
/// <reference path="./index.ts" /> /// <reference path="./index.ts" />
/// <reference path="./index.ts" /> /// <reference path="./index.ts" />
var NpmtsDefault; var NpmtsDefault;
(function (NpmtsDefault) { (function (NpmtsDefault) {
NpmtsDefault.init = function () { NpmtsDefault.run = function () {
plugins.gulp.task("indexTS", function () { var done = plugins.q.defer();
plugins.gulp.task("defaultIndexTS", function () {
plugins.beautylog.log("now compiling" + " ts/index.ts".blue);
var tsResult = plugins.gulp.src(paths.indexTS) var tsResult = plugins.gulp.src(paths.indexTS)
.pipe(plugins.g.typescript({ .pipe(plugins.g.typescript({
out: "index.js", out: "index.js",
@ -48,25 +79,67 @@ var NpmtsDefault;
.pipe(plugins.gulp.dest(paths.cwd)) .pipe(plugins.gulp.dest(paths.cwd))
]); ]);
}); });
plugins.gulp.task("testTS", function () { plugins.gulp.task("defaultTestTS", function () {
plugins.beautylog.log("now compiling" + " ts/test.ts".blue);
plugins.gulp.src(paths.testTS) plugins.gulp.src(paths.testTS)
.pipe(plugins.g.typescript({ .pipe(plugins.g.typescript({
out: "test.js" out: "test.js"
})) }))
.pipe(plugins.gulp.dest(paths.cwd)); .pipe(plugins.gulp.dest(paths.testDir));
}); });
plugins.gulp.task("default", ["indexTS", "testTS"], function () { plugins.gulp.task("defaultCleanup", function (cb) {
plugins.beautylog.success("TypeScript for this module was compiled successfully."); plugins.beautylog.success("TypeScript for this module compiled successfully.");
done.resolve();
cb();
});
plugins.gulp.task("default", function (cb) {
plugins.g.sequence("defaultIndexTS", "defaultTestTS", "defaultCleanup", cb);
}); });
plugins.gulp.start.apply(plugins.gulp, ['default']); plugins.gulp.start.apply(plugins.gulp, ['default']);
return done.promise;
}; };
})(NpmtsDefault || (NpmtsDefault = {})); })(NpmtsDefault || (NpmtsDefault = {}));
/// <reference path="./typings/tsd.d.ts" /> /// <reference path="./index.ts" />
var NpmtsTests;
(function (NpmtsTests) {
NpmtsTests.run = function () {
var done = plugins.q.defer();
plugins.fs.ensureDirSync(paths.testDir); //make sure that mocha has a directory to look for tests
plugins.beautylog.info("Now running mocha tests");
var mocha = new plugins.mocha(); // Instantiate a Mocha instance.
mocha.addFile(plugins.path.join(paths.testDir, "test.js"));
// Run the tests.
mocha.run(function (failures) {
process.on('exit', function () {
process.exit(failures);
});
});
return done.promise;
};
})(NpmtsTests || (NpmtsTests = {}));
/// <reference path="./index.ts" />
var NpmtsPromisechain;
(function (NpmtsPromisechain) {
NpmtsPromisechain.init = function () {
var promisechain;
NpmtsOptions.run()
.then(NpmtsTypings.run)
.then(NpmtsDefault.run)
.then(NpmtsTests.run);
return promisechain;
};
})(NpmtsPromisechain || (NpmtsPromisechain = {}));
/// <reference path="./typings/main.d.ts" />
/// <reference path="./npmts.plugins.ts" /> /// <reference path="./npmts.plugins.ts" />
/// <reference path="./npmts.cli.ts" /> /// <reference path="./npmts.cli.ts" />
/// <reference path="./npmts.paths.ts" /> /// <reference path="./npmts.paths.ts" />
/// <reference path="./npmts.options.ts" />
/// <reference path="./npmts.typings.ts" />
/// <reference path="./npmts.custom.ts" /> /// <reference path="./npmts.custom.ts" />
/// <reference path="./npmts.default.ts" /> /// <reference path="./npmts.default.ts" />
/// <reference path="./npmts.tests.ts" />
/// <reference path="./npmts.promisechain.ts" />
console.log("**** starting NPMTS ****");
var plugins = NpmtsPlugins.init(); var plugins = NpmtsPlugins.init();
var paths = NpmtsPaths.init(); var paths = NpmtsPaths.init();
NpmtsDefault.init(); var promisechain = NpmtsPromisechain.init();

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "1.0.5", "version": "2.0.1",
"description": "write npm modules with TypeScript", "description": "write npm modules with TypeScript",
"main": "index.js", "main": "index.js",
"typings": "./index.d.ts", "typings": "./index.d.ts",
@ -9,8 +9,8 @@
}, },
"scripts": { "scripts": {
"test": "(cd compile && node compile.js)", "test": "(cd compile && node compile.js)",
"release": "(git add -A && git commit -m 'update' && git push origin master && npm version patch && npm publish)", "testm": "(npm test) && (cd test/assets && node ../../index.js)",
"testm": "(cd test/ && npm update && npm test)" "release": "(git add -A && git commit -m 'update' && git push origin master && npm version patch && npm publish)"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -28,10 +28,16 @@
"homepage": "https://github.com/pushrocks/npmts#readme", "homepage": "https://github.com/pushrocks/npmts#readme",
"dependencies": { "dependencies": {
"beautylog": "2.0.2", "beautylog": "2.0.2",
"fs-extra": "^0.26.5",
"gulp": "3.9.0", "gulp": "3.9.0",
"gulp-insert": "0.5.0", "gulp-insert": "0.5.0",
"gulp-sequence": "^0.4.4",
"gulp-typescript": "2.10.0", "gulp-typescript": "2.10.0",
"gulp-typings": "0.0.0",
"merge2": "0.3.6", "merge2": "0.3.6",
"smartcli": "0.0.11" "mocha": "^2.4.5",
"q": "^1.4.1",
"smartcli": "0.0.11",
"typings": "^0.6.3"
} }
} }

View File

@ -9,6 +9,5 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"npmts": "*"
} }
} }

1
test/assets/test/test.js Normal file
View File

@ -0,0 +1 @@
console.log("**** starting test ****");

2
test/assets/ts/test.js Normal file
View File

@ -0,0 +1,2 @@
console.log("**** starting test ****");
//# sourceMappingURL=test.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC"}

1
test/assets/ts/test.ts Normal file
View File

@ -0,0 +1 @@
console.log("**** starting test ****");

View File

@ -0,0 +1,7 @@
{
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#78d36dd49b6b55b9fdfe61776a12bf05c8b07777",
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts#09e37435ffb2c56a6f908081194a74756f24f99d",
"vinyl": "github:DefinitelyTyped/DefinitelyTyped/vinyl/vinyl.d.ts#78d36dd49b6b55b9fdfe61776a12bf05c8b07777"
}
}

View File

@ -1,10 +0,0 @@
/// <reference path="./typings/tsd.d.ts" />
/// <reference path="./npmts.plugins.ts" />
/// <reference path="./npmts.cli.ts" />
/// <reference path="./npmts.paths.ts" />
/// <reference path="./npmts.custom.ts" />
/// <reference path="./npmts.default.ts" />
var plugins = NpmtsPlugins.init();
var paths = NpmtsPaths.init();
NpmtsDefault.init();
//# sourceMappingURL=index.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,2CAA2C;AAC3C,uCAAuC;AACvC,yCAAyC;AACzC,0CAA0C;AAC1C,2CAA2C;AAE3C,IAAI,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;AAClC,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;AAC9B,YAAY,CAAC,IAAI,EAAE,CAAC"}

View File

@ -1,10 +1,14 @@
/// <reference path="./typings/tsd.d.ts" /> /// <reference path="./typings/main.d.ts" />
/// <reference path="./npmts.plugins.ts" /> /// <reference path="./npmts.plugins.ts" />
/// <reference path="./npmts.cli.ts" /> /// <reference path="./npmts.cli.ts" />
/// <reference path="./npmts.paths.ts" /> /// <reference path="./npmts.paths.ts" />
/// <reference path="./npmts.options.ts" />
/// <reference path="./npmts.typings.ts" />
/// <reference path="./npmts.custom.ts" /> /// <reference path="./npmts.custom.ts" />
/// <reference path="./npmts.default.ts" /> /// <reference path="./npmts.default.ts" />
/// <reference path="./npmts.tests.ts" />
/// <reference path="./npmts.promisechain.ts" />
console.log("**** starting NPMTS ****")
var plugins = NpmtsPlugins.init(); var plugins = NpmtsPlugins.init();
var paths = NpmtsPaths.init(); var paths = NpmtsPaths.init();
NpmtsDefault.init(); var promisechain = NpmtsPromisechain.init();

View File

@ -1,2 +0,0 @@
/// <reference path="./index.ts" />
//# sourceMappingURL=npmts.cli.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"npmts.cli.js","sourceRoot":"","sources":["npmts.cli.ts"],"names":[],"mappings":"AAAA,mCAAmC"}

View File

@ -1,2 +0,0 @@
/// <reference path="./index.ts" />
//# sourceMappingURL=npmts.custom.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"npmts.custom.js","sourceRoot":"","sources":["npmts.custom.ts"],"names":[],"mappings":"AAAA,mCAAmC"}

View File

@ -1,31 +0,0 @@
/// <reference path="./index.ts" />
var NpmtsDefault;
(function (NpmtsDefault) {
NpmtsDefault.init = function () {
plugins.gulp.task("indexTS", function () {
var tsResult = plugins.gulp.src(paths.indexTS)
.pipe(plugins.g.typescript({
out: "index.js",
declaration: true
}));
return plugins.mergeStream([
tsResult.dts.pipe(plugins.gulp.dest(paths.cwd)),
tsResult.js
.pipe(plugins.g.insert.prepend('#!/usr/bin/env node\n\n'))
.pipe(plugins.gulp.dest(paths.cwd))
]);
});
plugins.gulp.task("testTS", function () {
plugins.gulp.src(paths.testTS)
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
plugins.gulp.task("default", ["indexTS", "testTS"], function () {
plugins.beautylog.success("TypeScript for this module was compiled successfully.");
});
plugins.gulp.start.apply(plugins.gulp, ['default']);
};
})(NpmtsDefault || (NpmtsDefault = {}));
//# sourceMappingURL=npmts.default.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"npmts.default.js","sourceRoot":"","sources":["npmts.default.ts"],"names":["NpmtsDefault"],"mappings":"AAAA,mCAAmC;AAEnC,IAAO,YAAY,CA+BlB;AA/BD,WAAO,YAAY,EAAC,CAAC;IACNA,iBAAIA,GAAGA;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACzB,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;iBACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;gBACvB,GAAG,EAAC,UAAU;gBACd,WAAW,EAAC,IAAI;aACnB,CAAC,CAAC,CAAC;YAER,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;gBACvB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/C,QAAQ,CAAC,EAAE;qBACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;qBACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;iBACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;gBACvB,GAAG,EAAE,SAAS;aACjB,CAAC,CAAC;iBACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC,CAAC,SAAS,EAAC,QAAQ,CAAC,EAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC,CAAAA;AACLA,CAACA,EA/BM,YAAY,KAAZ,YAAY,QA+BlB"}

View File

@ -1,8 +1,12 @@
/// <reference path="./index.ts" /> /// <reference path="./index.ts" />
module NpmtsDefault { module NpmtsDefault {
export var init = function() { export var run = function() {
plugins.gulp.task("indexTS", function(){ var done = plugins.q.defer();
plugins.gulp.task("defaultIndexTS", function(){
plugins.beautylog.log("now compiling" + " ts/index.ts".blue);
var tsResult = plugins.gulp.src(paths.indexTS) var tsResult = plugins.gulp.src(paths.indexTS)
.pipe(plugins.g.typescript({ .pipe(plugins.g.typescript({
out:"index.js", out:"index.js",
@ -17,18 +21,26 @@ module NpmtsDefault {
]); ]);
}); });
plugins.gulp.task("testTS", function(){ plugins.gulp.task("defaultTestTS", function(){
plugins.beautylog.log("now compiling" + " ts/test.ts".blue);
plugins.gulp.src(paths.testTS) plugins.gulp.src(paths.testTS)
.pipe(plugins.g.typescript({ .pipe(plugins.g.typescript({
out: "test.js" out: "test.js"
})) }))
.pipe(plugins.gulp.dest(paths.cwd)) .pipe(plugins.gulp.dest(paths.testDir))
}); });
plugins.gulp.task("default",["indexTS","testTS"],function(){ plugins.gulp.task("defaultCleanup",function(cb){
plugins.beautylog.success("TypeScript for this module was compiled successfully."); plugins.beautylog.success("TypeScript for this module compiled successfully.");
done.resolve();
cb();
});
plugins.gulp.task("default",function(cb){
plugins.g.sequence("defaultIndexTS","defaultTestTS","defaultCleanup",cb);
}); });
plugins.gulp.start.apply(plugins.gulp, ['default']); plugins.gulp.start.apply(plugins.gulp, ['default']);
return done.promise;
} }
} }

8
ts/npmts.options.ts Normal file
View File

@ -0,0 +1,8 @@
/// <reference path="./index.ts" />
module NpmtsOptions {
export var run = function(){
var done = plugins.q.defer();
done.resolve(); //TODO: check for options
return done.promise;
}
}

View File

@ -1,12 +0,0 @@
/// <reference path="./index.ts" />
var NpmtsPaths;
(function (NpmtsPaths) {
NpmtsPaths.init = function () {
var paths = {};
paths.cwd = plugins.smartcli.get.cwd().path;
paths.indexTS = plugins.path.join(paths.cwd, "ts/index.ts");
paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts");
return paths;
};
})(NpmtsPaths || (NpmtsPaths = {}));
//# sourceMappingURL=npmts.paths.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"npmts.paths.js","sourceRoot":"","sources":["npmts.paths.ts"],"names":["NpmtsPaths"],"mappings":"AAAA,mCAAmC;AACnC,IAAO,UAAU,CAQhB;AARD,WAAO,UAAU,EAAC,CAAC;IACJA,eAAIA,GAAGA;QACd,IAAI,KAAK,GAAO,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC5C,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC,aAAa,CAAC,CAAC;QAC3D,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC,YAAY,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC,CAAAA;AACLA,CAACA,EARM,UAAU,KAAV,UAAU,QAQhB"}

View File

@ -3,8 +3,10 @@ module NpmtsPaths {
export var init = function() { export var init = function() {
var paths:any = {}; var paths:any = {};
paths.cwd = plugins.smartcli.get.cwd().path; 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.indexTS = plugins.path.join(paths.cwd,"ts/index.ts");
paths.testTS = plugins.path.join(paths.cwd,"ts/test.ts"); paths.testTS = plugins.path.join(paths.cwd,"ts/test.ts");
paths.testDir = plugins.path.join(paths.cwd,"test/");
return paths; return paths;
} }
} }

View File

@ -1,19 +0,0 @@
/// <reference path="./index.ts" />
var NpmtsPlugins;
(function (NpmtsPlugins) {
NpmtsPlugins.init = function () {
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
g: {
typescript: require("gulp-typescript"),
insert: require("gulp-insert")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};
return plugins;
};
})(NpmtsPlugins || (NpmtsPlugins = {}));
//# sourceMappingURL=npmts.plugins.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"npmts.plugins.js","sourceRoot":"","sources":["npmts.plugins.ts"],"names":["NpmtsPlugins"],"mappings":"AAAA,mCAAmC;AACnC,IAAO,YAAY,CAelB;AAfD,WAAO,YAAY,EAAC,CAAC;IACNA,iBAAIA,GAAGA;QACd,IAAI,OAAO,GAAG;YACV,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;YAC/B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,CAAC,EAAE;gBACC,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC;gBACtC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC;aACjC;YACD,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;SAChC,CAAC;QACF,MAAM,CAAC,OAAO,CAAC;IACnB,CAAC,CAAAA;AACLA,CAACA,EAfM,YAAY,KAAZ,YAAY,QAelB"}

View File

@ -3,14 +3,20 @@ module NpmtsPlugins {
export var init = function() { export var init = function() {
var plugins = { var plugins = {
beautylog: require("beautylog"), beautylog: require("beautylog"),
fs: require("fs-extra"),
gulp: require("gulp"), gulp: require("gulp"),
g: { g: {
typescript: require("gulp-typescript"), insert: require("gulp-insert"),
insert: require("gulp-insert") sequence: require("gulp-sequence"),
typescript: require("gulp-typescript")
}, },
mergeStream: require("merge2"), mergeStream: require("merge2"),
mocha: require("mocha"),
path: require("path"), path: require("path"),
smartcli: require("smartcli") q:require("q"),
smartcli: require("smartcli"),
typings: require("typings")
}; };
return plugins; return plugins;
} }

11
ts/npmts.promisechain.ts Normal file
View File

@ -0,0 +1,11 @@
/// <reference path="./index.ts" />
module NpmtsPromisechain {
export var init = function(){
var promisechain;
NpmtsOptions.run()
.then(NpmtsTypings.run)
.then(NpmtsDefault.run)
.then(NpmtsTests.run);
return promisechain;
}
}

19
ts/npmts.tests.ts Normal file
View File

@ -0,0 +1,19 @@
/// <reference path="./index.ts" />
module NpmtsTests {
export var run = function() {
var done = plugins.q.defer();
plugins.fs.ensureDirSync(paths.testDir); //make sure that mocha has a directory to look for tests
plugins.beautylog.info("Now running mocha tests");
var mocha = new plugins.mocha(); // Instantiate a Mocha instance.
mocha.addFile(
plugins.path.join(paths.testDir, "test.js")
);
mocha.run(function(failures){
process.on('exit', function () {
process.exit(failures);
});
});
return done.promise;
}
}

12
ts/npmts.typings.ts Normal file
View File

@ -0,0 +1,12 @@
/// <reference path="./index.ts" />
module NpmtsTypings {
export var run = function(){
var done = plugins.q.defer();
plugins.beautylog.log("now installing typings");
plugins.typings.install({production: false, cwd: paths.tsDir})
.then(function(){
done.resolve();
});
return done.promise;
}
}

View File

@ -1,18 +0,0 @@
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node.d.ts": {
"commit": "78d36dd49b6b55b9fdfe61776a12bf05c8b07777"
},
"colors/colors.d.ts": {
"commit": "09e37435ffb2c56a6f908081194a74756f24f99d"
},
"vinyl/vinyl.d.ts": {
"commit": "78d36dd49b6b55b9fdfe61776a12bf05c8b07777"
}
}
}

7
ts/typings.json Normal file
View File

@ -0,0 +1,7 @@
{
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#78d36dd49b6b55b9fdfe61776a12bf05c8b07777",
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts#09e37435ffb2c56a6f908081194a74756f24f99d",
"vinyl": "github:DefinitelyTyped/DefinitelyTyped/vinyl/vinyl.d.ts#78d36dd49b6b55b9fdfe61776a12bf05c8b07777"
}
}

3
ts/typings/browser.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
/// <reference path="browser/ambient/colors/colors.d.ts" />
/// <reference path="browser/ambient/node/node.d.ts" />
/// <reference path="browser/ambient/vinyl/vinyl.d.ts" />

View File

@ -1,3 +1,5 @@
// Compiled using typings@0.6.3
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/09e37435ffb2c56a6f908081194a74756f24f99d/colors/colors.d.ts
// Type definitions for Colors.js 0.6.0-1 // Type definitions for Colors.js 0.6.0-1
// Project: https://github.com/Marak/colors.js // Project: https://github.com/Marak/colors.js
// Definitions by: Bart van der Schoor <https://github.com/Bartvds> // Definitions by: Bart van der Schoor <https://github.com/Bartvds>
@ -120,4 +122,4 @@ interface String {
america: string; america: string;
trap: string; trap: string;
random: string; random: string;
} }

View File

@ -1,3 +1,5 @@
// Compiled using typings@0.6.3
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/78d36dd49b6b55b9fdfe61776a12bf05c8b07777/node/node.d.ts
// Type definitions for Node.js v4.x // Type definitions for Node.js v4.x
// Project: http://nodejs.org/ // Project: http://nodejs.org/
// Definitions by: Microsoft TypeScript <http://typescriptlang.org>, DefinitelyTyped <https://github.com/borisyankov/DefinitelyTyped> // Definitions by: Microsoft TypeScript <http://typescriptlang.org>, DefinitelyTyped <https://github.com/borisyankov/DefinitelyTyped>
@ -2087,4 +2089,4 @@ declare module "constants" {
export var W_OK: number; export var W_OK: number;
export var X_OK: number; export var X_OK: number;
export var UV_UDP_REUSEADDR: number; export var UV_UDP_REUSEADDR: number;
} }

View File

@ -1,9 +1,10 @@
// Compiled using typings@0.6.3
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/78d36dd49b6b55b9fdfe61776a12bf05c8b07777/vinyl/vinyl.d.ts
// Type definitions for vinyl 0.4.3 // Type definitions for vinyl 0.4.3
// Project: https://github.com/wearefractal/vinyl // Project: https://github.com/wearefractal/vinyl
// Definitions by: vvakame <https://github.com/vvakame/>, jedmao <https://github.com/jedmao> // Definitions by: vvakame <https://github.com/vvakame/>, jedmao <https://github.com/jedmao>
// Definitions: https://github.com/borisyankov/DefinitelyTyped // Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../node/node.d.ts" />
declare module 'vinyl' { declare module 'vinyl' {
@ -106,4 +107,4 @@ declare module 'vinyl' {
export = File; export = File;
} }

3
ts/typings/main.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
/// <reference path="main/ambient/colors/colors.d.ts" />
/// <reference path="main/ambient/node/node.d.ts" />
/// <reference path="main/ambient/vinyl/vinyl.d.ts" />

View File

@ -0,0 +1,125 @@
// Compiled using typings@0.6.3
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/09e37435ffb2c56a6f908081194a74756f24f99d/colors/colors.d.ts
// Type definitions for Colors.js 0.6.0-1
// Project: https://github.com/Marak/colors.js
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module "colors" {
interface Color {
(text: string): string;
black: Color;
red: Color;
green: Color;
yellow: Color;
blue: Color;
magenta: Color;
cyan: Color;
white: Color;
gray: Color;
grey: Color;
bgBlack: Color;
bgRed: Color;
bgGreen: Color;
bgYellow: Color;
bgBlue: Color;
bgMagenta: Color;
bgCyan: Color;
bgWhite: Color;
reset: Color;
bold: Color;
dim: Color;
italic: Color;
underline: Color;
inverse: Color;
hidden: Color;
strikethrough: Color;
rainbow: Color;
zebra: Color;
america: Color;
trap: Color;
random: Color;
}
module e {
export function setTheme(theme:any): void;
export var black: Color;
export var red: Color;
export var green: Color;
export var yellow: Color;
export var blue: Color;
export var magenta: Color;
export var cyan: Color;
export var white: Color;
export var gray: Color;
export var grey: Color;
export var bgBlack: Color;
export var bgRed: Color;
export var bgGreen: Color;
export var bgYellow: Color;
export var bgBlue: Color;
export var bgMagenta: Color;
export var bgCyan: Color;
export var bgWhite: Color;
export var reset: Color;
export var bold: Color;
export var dim: Color;
export var italic: Color;
export var underline: Color;
export var inverse: Color;
export var hidden: Color;
export var strikethrough: Color;
export var rainbow: Color;
export var zebra: Color;
export var america: Color;
export var trap: Color;
export var random: Color;
}
export = e;
}
interface String {
black: string;
red: string;
green: string;
yellow: string;
blue: string;
magenta: string;
cyan: string;
white: string;
gray: string;
grey: string;
bgBlack: string;
bgRed: string;
bgGreen: string;
bgYellow: string;
bgBlue: string;
bgMagenta: string;
bgCyan: string;
bgWhite: string;
reset: string;
bold: string;
dim: string;
italic: string;
underline: string;
inverse: string;
hidden: string;
strikethrough: string;
rainbow: string;
zebra: string;
america: string;
trap: string;
random: string;
}

2092
ts/typings/main/ambient/node/node.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

110
ts/typings/main/ambient/vinyl/vinyl.d.ts vendored Normal file
View File

@ -0,0 +1,110 @@
// Compiled using typings@0.6.3
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/78d36dd49b6b55b9fdfe61776a12bf05c8b07777/vinyl/vinyl.d.ts
// Type definitions for vinyl 0.4.3
// Project: https://github.com/wearefractal/vinyl
// Definitions by: vvakame <https://github.com/vvakame/>, jedmao <https://github.com/jedmao>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module 'vinyl' {
import fs = require('fs');
/**
* A virtual file format.
*/
class File {
constructor(options?: {
/**
* Default: process.cwd()
*/
cwd?: string;
/**
* Used for relative pathing. Typically where a glob starts.
*/
base?: string;
/**
* Full path to the file.
*/
path?: string;
/**
* Path history. Has no effect if options.path is passed.
*/
history?: string[];
/**
* The result of an fs.stat call. See fs.Stats for more information.
*/
stat?: fs.Stats;
/**
* File contents.
* Type: Buffer, Stream, or null
*/
contents?: Buffer | NodeJS.ReadWriteStream;
});
/**
* Default: process.cwd()
*/
public cwd: string;
/**
* Used for relative pathing. Typically where a glob starts.
*/
public base: string;
/**
* Full path to the file.
*/
public path: string;
public stat: fs.Stats;
/**
* Type: Buffer|Stream|null (Default: null)
*/
public contents: Buffer | NodeJS.ReadableStream;
/**
* Returns path.relative for the file base and file path.
* Example:
* var file = new File({
* cwd: "/",
* base: "/test/",
* path: "/test/file.js"
* });
* console.log(file.relative); // file.js
*/
public relative: string;
public isBuffer(): boolean;
public isStream(): boolean;
public isNull(): boolean;
public isDirectory(): boolean;
/**
* Returns a new File object with all attributes cloned. Custom attributes are deep-cloned.
*/
public clone(opts?: { contents?: boolean }): File;
/**
* If file.contents is a Buffer, it will write it to the stream.
* If file.contents is a Stream, it will pipe it to the stream.
* If file.contents is null, it will do nothing.
*/
public pipe<T extends NodeJS.ReadWriteStream>(
stream: T,
opts?: {
/**
* If false, the destination stream will not be ended (same as node core).
*/
end?: boolean;
}
): T;
/**
* Returns a pretty String interpretation of the File. Useful for console.log.
*/
public inspect(): string;
}
export = File;
}

3
ts/typings/tsd.d.ts vendored
View File

@ -1,3 +0,0 @@
/// <reference path="node/node.d.ts" />
/// <reference path="colors/colors.d.ts" />
/// <reference path="vinyl/vinyl.d.ts" />