Compare commits

...

36 Commits

Author SHA1 Message Date
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
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
d18dc73522 1.0.3 2016-01-16 14:42:50 +01:00
6bf81fc665 improve readme 2016-01-16 14:42:30 +01:00
a9a23687e9 1.0.2 2016-01-16 14:34:14 +01:00
e50a86439b restructured code 2016-01-16 14:33:09 +01:00
ee69817038 create README-dev 2016-01-16 14:20:14 +01:00
ef314f5b2d omproved readme 2016-01-16 14:09:33 +01:00
24f9e5e982 1.0.1 2016-01-14 20:26:17 +01:00
660942e798 improve .gitignore 2016-01-14 20:26:02 +01:00
f5bc4578d7 1.0.0 2016-01-14 20:12:48 +01:00
2a87fc839d cleanup 2016-01-14 20:12:01 +01:00
149e0cbc9e 0.0.7 2016-01-14 20:10:37 +01:00
3b69350ce2 update 2016-01-14 20:10:34 +01:00
ea793f9556 0.0.6 2016-01-14 20:08:49 +01:00
5266fcd3df update 2016-01-14 20:08:46 +01:00
39b7fe99c7 0.0.5 2016-01-14 20:06:19 +01:00
e1419d85cc now working 2016-01-14 20:06:02 +01:00
71f8d14ee9 0.0.4 2016-01-14 19:59:36 +01:00
d539aef414 update 2016-01-14 19:57:42 +01:00
a1146e4c79 0.0.3 2016-01-14 19:32:31 +01:00
27 changed files with 2672 additions and 163 deletions

5
.gitignore vendored
View File

@ -1,3 +1,6 @@
.idea/
.c9/
node_modules/
node_modules/
test/node_modules
ts/*.js
ts/*.js.map

View File

@ -1,3 +1,4 @@
.idea/
support
compile
test

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

1
README-dev.md Normal file
View File

@ -0,0 +1 @@
# README-dev

45
README.md Normal file
View File

@ -0,0 +1,45 @@
# npmts
Write npm modules with TypeScript without hassle.
## How to use npmts
### Install
First install npmts as dev dependency:
```sh
npm install npmts --save-dev
```
Then use it in package.json's script section to trigger a build:
```json
"scripts": {
"test": "npmts"
}
```
### Default behaviour
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 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']);

36
index.d.ts vendored Normal file
View File

@ -0,0 +1,36 @@
/// <reference path="../ts/typings/tsd.d.ts" />
declare module NpmtsPlugins {
var init: () => {
beautylog: any;
gulp: any;
g: {
insert: any;
sequence: any;
tsd: any;
typescript: 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: {
insert: any;
sequence: any;
tsd: any;
typescript: any;
};
mergeStream: any;
path: any;
smartcli: any;
};
declare var paths: any;

117
index.js
View File

@ -1,28 +1,95 @@
#!/usr/bin/env node
/// <reference path="./index.ts" />
var NpmtsPlugins;
(function (NpmtsPlugins) {
NpmtsPlugins.init = function () {
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
g: {
insert: require("gulp-insert"),
sequence: require("gulp-sequence"),
tsd: require("gulp-tsd"),
typescript: require("gulp-typescript")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};
return plugins;
};
})(NpmtsPlugins || (NpmtsPlugins = {}));
/// <reference path="./index.ts" />
/// <reference path="./index.ts" />
var NpmtsPaths;
(function (NpmtsPaths) {
NpmtsPaths.init = function () {
var paths = {};
paths.cwd = plugins.smartcli.get.cwd().path;
paths.tsd = plugins.path.join(paths.cwd, "ts/tsd.json");
paths.indexTS = plugins.path.join(paths.cwd, "ts/index.ts");
paths.testTS = plugins.path.join(paths.cwd, "ts/test.ts");
return paths;
};
})(NpmtsPaths || (NpmtsPaths = {}));
/// <reference path="./index.ts" />
/// <reference path="./index.ts" />
var NpmtsDefault;
(function (NpmtsDefault) {
NpmtsDefault.init = function () {
plugins.gulp.task("defaultTsd", function (cb) {
if (!process.env.TRAVIS) {
plugins.g.tsd({
command: 'reinstall',
config: paths.tsd
}, cb);
plugins.beautylog.log("now installing typings from" + " ts/tsd.json".blue);
}
else {
plugins.beautylog.warn("We are on TRAVIS. Typings will not be installed due to GitHub API restrictions.");
plugins.beautylog.log("Make sure the repo tracks " + "typings".blue + " directories");
}
});
plugins.gulp.task("defaultIndexTS", function () {
plugins.beautylog.log("now compiling" + " ts/index.ts".blue);
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("defaultTestTS", function () {
plugins.beautylog.log("now compiling" + " ts/test.ts".blue);
plugins.gulp.src(paths.testTS)
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
plugins.gulp.task("defaultCleanup", function (cb) {
plugins.beautylog.success("TypeScript for this module compiled successfully.");
cb();
});
plugins.gulp.task("default", function (cb) {
plugins.g.sequence("defaultTsd", "defaultIndexTS", "defaultTestTS", "defaultCleanup", cb);
});
plugins.gulp.start.apply(plugins.gulp, ['default']);
};
})(NpmtsDefault || (NpmtsDefault = {}));
/// <reference path="./typings/tsd.d.ts" />
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
path: require("path"),
smartcli: require("smartcli")
};
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");
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
/// <reference path="./npmts.plugins.ts" />
/// <reference path="./npmts.cli.ts" />
/// <reference path="./npmts.paths.ts" />
/// <reference path="./npmts.options.ts" />
/// <reference path="./npmts.custom.ts" />
/// <reference path="./npmts.default.ts" />
var plugins = NpmtsPlugins.init();
var paths = NpmtsPaths.init();
NpmtsDefault.init();

View File

@ -1,14 +1,16 @@
{
"name": "npmts",
"version": "0.0.2",
"version": "1.0.12",
"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)",
"testm": "(cd test/ && npm update && npm test)"
"testm": "(npm test) && (cd test/ && node ../index.js)",
"release": "(git add -A && git commit -m 'update' && git push origin master && npm version patch && npm publish)"
},
"repository": {
"type": "git",
@ -25,10 +27,13 @@
},
"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-sequence": "^0.4.4",
"gulp-tsd": "^0.1.0",
"gulp-typescript": "2.10.0",
"merge2": "0.3.6",
"smartcli": "0.0.11"
}
}

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

5
test/index.js Normal file
View File

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

21
test/node_modules/npmts/LICENSE generated vendored
View File

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2016 Push.Rocks
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

40
test/node_modules/npmts/package.json generated vendored
View File

@ -1,40 +0,0 @@
{
"name": "npmts",
"version": "0.0.1",
"description": "write npm modules with TypeScript",
"main": "index.js",
"bin": {
"npmts": "index.js"
},
"scripts": {
"test": "(cd compile && node compile.js)"
},
"repository": {
"type": "git",
"url": "git+https://github.com/pushrocks/npmts.git"
},
"keywords": [
"TypeScript",
"Declaration"
],
"author": {
"name": "Lossless Digital UG",
"url": "haftungsbeschraenkt"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/pushrocks/npmts/issues"
},
"homepage": "https://github.com/pushrocks/npmts#readme",
"dependencies": {
"beautylog": "^2.0.2",
"gulp": "^3.9.0",
"gulp-typescript": "^2.10.0",
"smartcli": "0.0.11"
},
"gitHead": "7410d22fc4ed6f9756c2b5e1e883f1d06765258e",
"readme": "ERROR: No README data found!",
"_id": "npmts@0.0.1",
"_shasum": "e2b1edfcf5093f9f3ded25cd5430732e4a128221",
"_from": "npmts@0.0.1"
}

18
test/ts/tsd.json Normal file
View File

@ -0,0 +1,18 @@
{
"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"
}
}
}

123
test/ts/typings/colors/colors.d.ts vendored Normal file
View File

@ -0,0 +1,123 @@
// 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;
}

2090
test/ts/typings/node/node.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

3
test/ts/typings/tsd.d.ts vendored Normal file
View File

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

109
test/ts/typings/vinyl/vinyl.d.ts vendored Normal file
View File

@ -0,0 +1,109 @@
// 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
/// <reference path="../node/node.d.ts" />
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;
}

View File

@ -1,27 +0,0 @@
/// <reference path="./typings/tsd.d.ts" />
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
path: require("path"),
smartcli: require("smartcli")
};
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");
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
plugins.gulp.task("indexTS", function () {
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd));
});
//# sourceMappingURL=index.js.map

View File

@ -1 +0,0 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,IAAI,OAAO,GAAG;IACV,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAC1C,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,IAAI,KAAK,GAAO,EAAE,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC5C,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC,aAAa,CAAC,CAAC;AAC3D,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC,YAAY,CAAC,CAAC;AAEzD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;SAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACzB,GAAG,EAAE,UAAU;KAClB,CAAC,CAAC;SACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;SAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACzB,GAAG,EAAE,SAAS;KACjB,CAAC,CAAC;SACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAC"}

View File

@ -1,29 +1,11 @@
/// <reference path="./typings/tsd.d.ts" />
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
gulpTypeScript: require("gulp-typescript"),
path: require("path"),
smartcli: require("smartcli")
};
/// <reference path="./npmts.plugins.ts" />
/// <reference path="./npmts.cli.ts" />
/// <reference path="./npmts.paths.ts" />
/// <reference path="./npmts.options.ts" />
/// <reference path="./npmts.custom.ts" />
/// <reference path="./npmts.default.ts" />
var paths:any = {};
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");
plugins.gulp.task("indexTS", function(){
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "index.js"
}))
.pipe(plugins.gulp.dest(paths.cwd))
});
plugins.gulp.task("indexTS", function(){
plugins.gulp.src(paths.indexTS)
.pipe(plugins.gulpTypeScript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd))
});
var plugins = NpmtsPlugins.init();
var paths = NpmtsPaths.init();
NpmtsDefault.init();

1
ts/npmts.cli.ts Normal file
View File

@ -0,0 +1 @@
/// <reference path="./index.ts" />

1
ts/npmts.custom.ts Normal file
View File

@ -0,0 +1 @@
/// <reference path="./index.ts" />

56
ts/npmts.default.ts Normal file
View File

@ -0,0 +1,56 @@
/// <reference path="./index.ts" />
module NpmtsDefault {
export var init = function() {
plugins.gulp.task("defaultTsd",function(cb){
if(!process.env.TRAVIS) {
plugins.g.tsd({
command: 'reinstall',
config: paths.tsd
}, cb);
plugins.beautylog.log("now installing typings from" + " ts/tsd.json".blue);
} else {
plugins.beautylog.warn("We are on TRAVIS. Typings will not be installed due to GitHub API restrictions.");
plugins.beautylog.log("Make sure the repo tracks " + "typings".blue + " directories")
}
});
plugins.gulp.task("defaultIndexTS", function(){
plugins.beautylog.log("now compiling" + " ts/index.ts".blue);
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("defaultTestTS", function(){
plugins.beautylog.log("now compiling" + " ts/test.ts".blue);
plugins.gulp.src(paths.testTS)
.pipe(plugins.g.typescript({
out: "test.js"
}))
.pipe(plugins.gulp.dest(paths.cwd))
});
plugins.gulp.task("defaultCleanup",function(cb){
plugins.beautylog.success("TypeScript for this module compiled successfully.");
cb();
});
plugins.gulp.task("default",function(cb){
plugins.g.sequence("defaultTsd","defaultIndexTS","defaultTestTS","defaultCleanup",cb);
});
plugins.gulp.start.apply(plugins.gulp, ['default']);
}
}

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

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

@ -0,0 +1,11 @@
/// <reference path="./index.ts" />
module NpmtsPaths {
export var init = function() {
var paths:any = {};
paths.cwd = plugins.smartcli.get.cwd().path;
paths.tsd = plugins.path.join(paths.cwd,"ts/tsd.json");
paths.indexTS = plugins.path.join(paths.cwd,"ts/index.ts");
paths.testTS = plugins.path.join(paths.cwd,"ts/test.ts");
return paths;
}
}

20
ts/npmts.plugins.ts Normal file
View File

@ -0,0 +1,20 @@
/// <reference path="./index.ts" />
module NpmtsPlugins {
export var init = function() {
var plugins = {
beautylog: require("beautylog"),
gulp: require("gulp"),
g: {
insert: require("gulp-insert"),
sequence: require("gulp-sequence"),
tsd: require("gulp-tsd"),
typescript: require("gulp-typescript")
},
mergeStream: require("merge2"),
path: require("path"),
smartcli: require("smartcli")
};
return plugins;
}
}