diff --git a/gulp-if/gulp-if-tests.ts b/gulp-if/gulp-if-tests.ts index e1ba54c91..6edb3bc13 100644 --- a/gulp-if/gulp-if-tests.ts +++ b/gulp-if/gulp-if-tests.ts @@ -1,10 +1,22 @@ /// /// -import gulp = require("gulp"); -import _if = require("gulp-if"); +import gulp = require('gulp'); +import _if = require('gulp-if'); -gulp.src("test.css") - .pipe(_if(true, gulp.src("test.css"))); +gulp.src('test.css') + .pipe(_if(true, gulp.src('test.css'))); -gulp.src("test.css") - .pipe(_if(false, gulp.src("test.css"), gulp.src("test.css"))); \ No newline at end of file +gulp.src('test.css') + .pipe(_if(false, gulp.src('test.css'), gulp.src('test.css'))); + +gulp.src('test.css') + .pipe(_if({isDirectory: true}, gulp.src('test.css'))); + +gulp.src('test.css') + .pipe(_if({isFile: true}, gulp.src('test.css'))); + +gulp.src('test.css') + .pipe(_if(file => true, gulp.src('test.css'))); + +gulp.src('test.css') + .pipe(_if(/.*?\.css/, gulp.src('test.css'))); \ No newline at end of file diff --git a/gulp-if/gulp-if.d.ts b/gulp-if/gulp-if.d.ts index 474682b9d..9eab80f8b 100644 --- a/gulp-if/gulp-if.d.ts +++ b/gulp-if/gulp-if.d.ts @@ -1,14 +1,64 @@ // Type definitions for gulp-if // Project: https://github.com/robrich/gulp-if -// Definitions by: Asana +// Definitions by: Asana , Joe Skeen // Definitions: https://github.com/borisyankov/DefinitelyTyped /// +/// -declare module "gulp-if" { - function gulpIf( - condition: boolean, - stream: NodeJS.ReadWriteStream, - elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream; +declare module 'gulp-if' { + import fs = require('fs'); + import vinyl = require('vinyl'); + + interface GulpIf { + /** + * gulp-if will pipe data to stream whenever condition is truthy. + * If condition is falsey and elseStream is passed, data will pipe to elseStream + * After data is piped to stream or elseStream or neither, data is piped down-stream. + * + * @param condition whether input should be piped to stream + * @param stream the stream to pipe to if condition is true + * @param elseStream (optional) the stream to pipe to if condition is false + */ + (condition: boolean, stream: NodeJS.ReadWriteStream, elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream; + /** + * gulp-if will pipe data to stream whenever condition is truthy. + * If condition is falsey and elseStream is passed, data will pipe to elseStream + * After data is piped to stream or elseStream or neither, data is piped down-stream. + * + * @param condition a Node Stat filter condition to be executed on the vinyl file's Stats object + * @param stream the stream to pipe to if condition is true + * @param elseStream (optional) the stream to pipe to if condition is false + */ + (condition: StatFilterCondition, stream: NodeJS.ReadWriteStream, elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream; + /** + * gulp-if will pipe data to stream whenever condition is truthy. + * If condition is falsey and elseStream is passed, data will pipe to elseStream + * After data is piped to stream or elseStream or neither, data is piped down-stream. + * + * @param condition a function taking a vinyl file and returning a boolean + * @param stream the stream to pipe to if condition is true + * @param elseStream (optional) the stream to pipe to if condition is false + */ + (condition: (fs: vinyl) => boolean, stream: NodeJS.ReadWriteStream, elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream; + /** + * gulp-if will pipe data to stream whenever condition is truthy. + * If condition is falsey and elseStream is passed, data will pipe to elseStream + * After data is piped to stream or elseStream or neither, data is piped down-stream. + * + * @param condition a RegularExpression that works on the file.path + * @param stream the stream to pipe to if condition is true + * @param elseStream (optional) the stream to pipe to if condition is false + */ + (condition: RegExp, stream: NodeJS.ReadWriteStream, elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream; + } + + interface StatFilterCondition { + isDirectory?: boolean; + isFile?: boolean; + } + + var gulpIf: GulpIf; + export = gulpIf; } \ No newline at end of file