Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
7a26721420 | |||
0dc307f082 | |||
4b2c0fe461 | |||
50fd5e83ad | |||
3e55a666b2 |
2
index.d.ts
vendored
2
index.d.ts
vendored
@ -9,6 +9,7 @@ declare module NpmtsPlugins {
|
||||
sequence: any;
|
||||
typescript: any;
|
||||
};
|
||||
mathjs: any;
|
||||
mergeStream: any;
|
||||
mocha: any;
|
||||
path: any;
|
||||
@ -46,6 +47,7 @@ declare var plugins: {
|
||||
sequence: any;
|
||||
typescript: any;
|
||||
};
|
||||
mathjs: any;
|
||||
mergeStream: any;
|
||||
mocha: any;
|
||||
path: any;
|
||||
|
59
index.js
59
index.js
@ -13,6 +13,7 @@ var NpmtsPlugins;
|
||||
sequence: require("gulp-sequence"),
|
||||
typescript: require("gulp-typescript")
|
||||
},
|
||||
mathjs: require("mathjs"),
|
||||
mergeStream: require("merge2"),
|
||||
mocha: require("mocha"),
|
||||
path: require("path"),
|
||||
@ -84,35 +85,73 @@ var NpmtsCustom;
|
||||
* ----------- first install typings ---------------
|
||||
* ----------------------------------------------- */
|
||||
var typingsDone = plugins.q.defer();
|
||||
var checkTypingsDone = function (indexArg, compareArray) {
|
||||
if ((indexArg + 1) == compareArray.length) {
|
||||
var typingsCounter = 0;
|
||||
var typingsCounterAdvance = function () {
|
||||
typingsCounter++;
|
||||
if (typeof config.typings[typingsCounter] != "undefined") {
|
||||
installTypings();
|
||||
}
|
||||
else {
|
||||
plugins.beautylog.success("custom typings installed successfully");
|
||||
typingsDone.resolve();
|
||||
}
|
||||
};
|
||||
for (var key in config.typings) {
|
||||
plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[key].blue);
|
||||
plugins.typings.install({ production: false, cwd: plugins.path.join(paths.cwd, config.typings[key]) })
|
||||
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 () {
|
||||
checkTypingsDone(key, config.typings);
|
||||
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"));
|
||||
console.log("outputNameSpecified");
|
||||
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 tsStream = plugins.gulp.src(plugins.path.join(paths.cwd, key))
|
||||
.pipe(plugins.g.typescript({
|
||||
out: plugins.path.basename(config.ts[key]),
|
||||
out: outputName,
|
||||
declaration: true
|
||||
}));
|
||||
var stream = plugins.mergeStream([
|
||||
tsStream.dts.pipe(plugins.gulp.dest(paths.cwd)),
|
||||
tsStream.dts.pipe(plugins.gulp.dest(outputDir)),
|
||||
tsStream.js
|
||||
.pipe(plugins.g.insert.prepend('#!/usr/bin/env node\n\n'))
|
||||
.pipe(plugins.gulp.dest(plugins.path.dirname(plugins.path.join(paths.cwd, config.ts[key]))))
|
||||
.pipe(plugins.gulp.dest(outputDir))
|
||||
]);
|
||||
moduleStream.add(stream);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "npmts",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.2",
|
||||
"description": "write npm modules with TypeScript",
|
||||
"main": "index.js",
|
||||
"typings": "./index.d.ts",
|
||||
@ -8,8 +8,7 @@
|
||||
"npmts": "./index.js"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "(cd compile && node compile.js)",
|
||||
"testm": "(npm test) && (cd test/assets && node ../../index.js)",
|
||||
"test": "(cd compile && node compile.js) && (cd test/assets && node ../../index.js)",
|
||||
"release": "(git add -A && git commit -m 'update' && git push origin master && npm version patch && npm publish)"
|
||||
},
|
||||
"repository": {
|
||||
@ -34,6 +33,7 @@
|
||||
"gulp-sequence": "^0.4.4",
|
||||
"gulp-typescript": "2.10.0",
|
||||
"gulp-typings": "0.0.0",
|
||||
"mathjs": "^2.7.0",
|
||||
"merge2": "1.0.1",
|
||||
"mocha": "^2.4.5",
|
||||
"q": "^1.4.1",
|
||||
|
2
test/assets/customdir/tsfile1.js
Normal file
2
test/assets/customdir/tsfile1.js
Normal file
@ -0,0 +1,2 @@
|
||||
var something = "something";
|
||||
//# sourceMappingURL=tsfile1.js.map
|
1
test/assets/customdir/tsfile1.js.map
Normal file
1
test/assets/customdir/tsfile1.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"tsfile1.js","sourceRoot":"","sources":["tsfile1.ts"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,WAAW,CAAC"}
|
1
test/assets/customdir/tsfile1.ts
Normal file
1
test/assets/customdir/tsfile1.ts
Normal file
@ -0,0 +1 @@
|
||||
var something = "something";
|
@ -1,9 +1,12 @@
|
||||
{
|
||||
"mode":"custom",
|
||||
"ts":{
|
||||
"./customdir/custom.ts":"./customcompiled.js"
|
||||
"./customdir/*.ts":"./"
|
||||
},
|
||||
"typings":[
|
||||
"./ts",
|
||||
"./subts1/",
|
||||
"./subts2/",
|
||||
"./customdir"
|
||||
]
|
||||
}
|
7
test/assets/subts1/typings.json
Normal file
7
test/assets/subts1/typings.json
Normal 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"
|
||||
}
|
||||
}
|
1
test/assets/tsfile1.d.ts
vendored
Normal file
1
test/assets/tsfile1.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
declare var something: string;
|
3
test/assets/tsfile1.js
Normal file
3
test/assets/tsfile1.js
Normal file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var something = "something";
|
@ -10,39 +10,75 @@ module NpmtsCustom {
|
||||
* ----------- first install typings ---------------
|
||||
* ----------------------------------------------- */
|
||||
var typingsDone = plugins.q.defer();
|
||||
var checkTypingsDone = function(indexArg:number,compareArray){
|
||||
if((indexArg + 1) == compareArray.length){
|
||||
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();
|
||||
}
|
||||
};
|
||||
for (var key in config.typings) {
|
||||
plugins.beautylog.log("now installing " + "typings.json".yellow + " from " + config.typings[key].blue);
|
||||
plugins.typings.install({production: false, cwd: plugins.path.join(paths.cwd,config.typings[key])})
|
||||
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(){
|
||||
checkTypingsDone(key,config.typings);
|
||||
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")
|
||||
);
|
||||
console.log("outputNameSpecified");
|
||||
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 tsStream = plugins.gulp.src(plugins.path.join(paths.cwd,key))
|
||||
.pipe(plugins.g.typescript({
|
||||
out: plugins.path.basename(config.ts[key]),
|
||||
out: outputName,
|
||||
declaration: true
|
||||
}));
|
||||
var stream = plugins.mergeStream([
|
||||
tsStream.dts.pipe(plugins.gulp.dest(paths.cwd)),
|
||||
tsStream.dts.pipe(plugins.gulp.dest(outputDir)),
|
||||
tsStream.js
|
||||
.pipe(plugins.g.insert.prepend('#!/usr/bin/env node\n\n'))
|
||||
.pipe(plugins.gulp.dest(
|
||||
plugins.path.dirname(
|
||||
plugins.path.join(paths.cwd,config.ts[key])
|
||||
)
|
||||
))
|
||||
.pipe(plugins.gulp.dest(outputDir))
|
||||
]);
|
||||
moduleStream.add(stream);
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module NpmtsPlugins {
|
||||
typescript: require("gulp-typescript")
|
||||
|
||||
},
|
||||
mathjs: require("mathjs"),
|
||||
mergeStream: require("merge2"),
|
||||
mocha: require("mocha"),
|
||||
path: require("path"),
|
||||
|
Reference in New Issue
Block a user