diff --git a/gulp-task-listing/gulp-task-listing-tests.ts b/gulp-task-listing/gulp-task-listing-tests.ts new file mode 100644 index 0000000000..7d2c293d39 --- /dev/null +++ b/gulp-task-listing/gulp-task-listing-tests.ts @@ -0,0 +1,15 @@ +/// +/// + +import gulp = require('gulp'); +import gulpTaskListing = require('gulp-task-listing'); + +gulp.task('help-default', gulpTaskListing); +gulp.task('help-subTaskRegexFilter', gulpTaskListing.withFilters(/\d+/)); +gulp.task('help-subTaskFunctionFilter', gulpTaskListing.withFilters(task => task.length > 3)); +gulp.task('help-excludeRegexFilter', gulpTaskListing.withFilters(null, /\w+/)); +gulp.task('help-excludeFunctionFilter', gulpTaskListing.withFilters(null, task => task.length < 2)); +gulp.task('help-bothFilters1', gulpTaskListing.withFilters(/\d+/, /\w+/)); +gulp.task('help-bothFilters2', gulpTaskListing.withFilters(/\d+/, task => task.length > 3)); +gulp.task('help-bothFilters3', gulpTaskListing.withFilters(task => task.length < 2, /\w+/)); +gulp.task('help-bothFilters4', gulpTaskListing.withFilters(task => task.length < 2, task => task.length > 3)); \ No newline at end of file diff --git a/gulp-task-listing/gulp-task-listing.d.ts b/gulp-task-listing/gulp-task-listing.d.ts new file mode 100644 index 0000000000..022a0118b9 --- /dev/null +++ b/gulp-task-listing/gulp-task-listing.d.ts @@ -0,0 +1,40 @@ +// Type definitions for gulp-task-listing +// Project: https://github.com/OverZealous/gulp-task-listing +// Definitions by: Joe Skeen +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/** + * Provides an easy way to get a listing of your tasks from your gulpfile. By default, the + * output groups tasks based on whether or not they contain a hyphen (-), underscore (_), + * or colon (:) in their name. + * + * You can optionally override the Regexp used to determine whether a task is a primary or + * subtask, as well as filter out tasks you don't want to see in the output. + */ +declare module 'gulp-task-listing' { + + /** + * Provides an easy way to get a listing of your tasks from your gulpfile. By default, the + * output groups tasks based on whether or not they contain a hyphen (-), underscore (_), + * or colon (:) in their name. + * + * You can optionally override the Regexp used to determine whether a task is a primary or + * subtask, as well as filter out tasks you don't want to see in the output. + */ + interface GulpTaskListing { + (cb): void; + /** + * Allows for custom filtering of Gulp tasks in the listing + * + * @param subTaskFilter a RegExp or Function returning whether the given task is a subtask + * @param excludeFilter a RegExp or Function returning whether the given task should be excluded from the listing + */ + withFilters(subTaskFilter: RegExp | FilterFunction, excludeFilter?: RegExp | FilterFunction): (cb) => void; + } + + type FilterFunction = (task: string) => boolean; + + var gulpTaskListing: GulpTaskListing; + + export = gulpTaskListing; +}