Compare commits

...

7 Commits

Author SHA1 Message Date
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
3101af3726 1.0.5 2016-01-18 15:20:50 +01:00
20283c6cda improve readme 2016-01-18 15:20:23 +01:00
814542e9cd 1.0.4 2016-01-18 15:15:29 +01:00
bea8a50f0b now creating declaration files 2016-01-18 15:15:15 +01:00
14 changed files with 147 additions and 45 deletions

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

@ -19,13 +19,27 @@ Then use it in package.json's script section to trigger a build:
```
### Default behaviour
by default npmts looks for an `./ts/index.ts` and a `./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`
#### Declaration files
**npmts** also creates an `index.d.ts` declaration file by default.
You can reference it in your package.json like this:
```json
"main": "index.js",
"typings": "./index.d.ts",
```
When requiring the module from other TypeScript files,
the TypeScript Compiler will use the declaration file to resolve typings.
### Custom behaviour
We are currently building support for custom behaviour with a super simple config file.
Check back soon.
## Readme for Devs
There is a [README-dev.md](README-dev.md) in the repo.
This is only of interest for you if are looking to improve or build upon this package.
This is only of interest for you when looking to contribute to, improve or build upon this package.

View File

@ -1,25 +1,35 @@
// import gulp
var gulp = require("gulp");
var gulpTypescript = require("gulp-typescript");
var gulpInsert = require("gulp-insert");
var plugins = {
beautylog: require("beautylog")
beautylog: require("beautylog"),
gulp: require("gulp"),
g:{
typescript: require("gulp-typescript"),
insert: require("gulp-insert")
},
mergeStream: require("merge2")
};
plugins.beautylog.log('now compiling the mojo.io gulp tasks');
gulp.task('indexTS', function() {
var stream = gulp.src('../ts/index.ts')
.pipe(gulpTypescript({
out: "index.js"
}))
.pipe(gulpInsert.prepend('#!/usr/bin/env node\n\n'))
.pipe(gulp.dest("../"));
return stream;
plugins.gulp.task('indexTS', function() {
var tsResult = plugins.gulp.src('../ts/index.ts')
.pipe(plugins.g.typescript({
out:"index.js",
declaration:true
}));
return plugins.mergeStream([
tsResult.dts.pipe(plugins.gulp.dest('../')),
tsResult.js
.pipe(plugins.g.insert.prepend('#!/usr/bin/env node\n\n'))
.pipe(plugins.gulp.dest('../'))
]);
});
gulp.task('default',['indexTS'], function() {
plugins.gulp.task('default',['indexTS'], function() {
plugins.beautylog.success('Typescript compiled');
});
gulp.start.apply(gulp, ['default']);
plugins.gulp.start.apply(plugins.gulp, ['default']);

32
index.d.ts vendored Normal file
View File

@ -0,0 +1,32 @@
/// <reference path="../ts/typings/tsd.d.ts" />
declare module NpmtsPlugins {
var init: () => {
beautylog: any;
gulp: any;
g: {
typescript: any;
insert: any;
};
mergeStream: any;
path: any;
smartcli: any;
};
}
declare module NpmtsPaths {
var init: () => any;
}
declare module NpmtsDefault {
var init: () => void;
}
declare var plugins: {
beautylog: any;
gulp: any;
g: {
typescript: any;
insert: any;
};
mergeStream: any;
path: any;
smartcli: any;
};
declare var paths: any;

View File

@ -7,7 +7,11 @@ var NpmtsPlugins;
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
g: {
typescript: require("gulp-typescript"),
insert: require("gulp-insert")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};
@ -32,15 +36,21 @@ var NpmtsDefault;
(function (NpmtsDefault) {
NpmtsDefault.init = function () {
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
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.gulpTypeScript({
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));

View File

@ -1,10 +1,11 @@
{
"name": "npmts",
"version": "1.0.3",
"version": "1.0.7",
"description": "write npm modules with TypeScript",
"main": "index.js",
"typings": "./index.d.ts",
"bin": {
"npmts": "index.js"
"npmts": "./index.js"
},
"scripts": {
"test": "(cd compile && node compile.js)",
@ -26,10 +27,11 @@
},
"homepage": "https://github.com/pushrocks/npmts#readme",
"dependencies": {
"beautylog": "^2.0.2",
"gulp": "^3.9.0",
"gulp-insert": "^0.5.0",
"gulp-typescript": "^2.10.0",
"beautylog": "2.0.2",
"gulp": "3.9.0",
"gulp-insert": "0.5.0",
"gulp-typescript": "2.10.0",
"merge2": "0.3.6",
"smartcli": "0.0.11"
}
}

0
test/index.d.ts vendored Normal file
View File

View File

@ -1,3 +1,5 @@
#!/usr/bin/env node
(function () {
console.log("test");
}());

View File

@ -3,15 +3,21 @@ var NpmtsDefault;
(function (NpmtsDefault) {
NpmtsDefault.init = function () {
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
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.gulpTypeScript({
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));

View File

@ -1 +1 @@
{"version":3,"file":"npmts.default.js","sourceRoot":"","sources":["npmts.default.ts"],"names":["NpmtsDefault"],"mappings":"AAAA,mCAAmC;AAEnC,IAAO,YAAY,CAwBlB;AAxBD,WAAO,YAAY,EAAC,CAAC;IACNA,iBAAIA,GAAGA;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACzB,GAAG,EAAE,UAAU;aAClB,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,QAAQ,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;iBACzB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACzB,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,EAxBM,YAAY,KAAZ,YAAY,QAwBlB"}
{"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

@ -3,16 +3,23 @@
module NpmtsDefault {
export var init = function() {
plugins.gulp.task("indexTS", function(){
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd))
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.gulpTypeScript({
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd))

View File

@ -5,7 +5,11 @@ var NpmtsPlugins;
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
g: {
typescript: require("gulp-typescript"),
insert: require("gulp-insert")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};

View File

@ -1 +1 @@
{"version":3,"file":"npmts.plugins.js","sourceRoot":"","sources":["npmts.plugins.ts"],"names":["NpmtsPlugins"],"mappings":"AAAA,mCAAmC;AACnC,IAAO,YAAY,CAWlB;AAXD,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,OAAO,CAAC,iBAAiB,CAAC;YAC1C,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,EAXM,YAAY,KAAZ,YAAY,QAWlB"}
{"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

@ -4,7 +4,11 @@ module NpmtsPlugins {
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
g: {
typescript: require("gulp-typescript"),
insert: require("gulp-insert")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};