From 4d0f988e3c906e7a66bbd79dc11443c533038cb5 Mon Sep 17 00:00:00 2001 From: Joe Skeen Date: Mon, 17 Aug 2015 13:27:17 -0600 Subject: [PATCH 1/2] Definitions for gulp-sort --- gulp-sort/gulp-sort-tests.ts | 49 ++++++++++++++++++++++++++++++++++++ gulp-sort/gulp-sort.d.ts | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 gulp-sort/gulp-sort-tests.ts create mode 100644 gulp-sort/gulp-sort.d.ts diff --git a/gulp-sort/gulp-sort-tests.ts b/gulp-sort/gulp-sort-tests.ts new file mode 100644 index 000000000..0dd260f66 --- /dev/null +++ b/gulp-sort/gulp-sort-tests.ts @@ -0,0 +1,49 @@ +/** Tests taken from https://github.com/pgilad/gulp-sort#usage */ +/// +/// +/// + +import gulp = require('gulp'); +import sort = require('gulp-sort'); + +// default sort +gulp.src('./src/js/**/*.js') + .pipe(sort()) + .pipe(gulp.dest('./build/js')); + +// pass in a custom comparator function +gulp.src('./src/js/**/*.js') + .pipe(sort(customComparator)) + .pipe(gulp.dest('./build/js')); + +// sort descending +gulp.src('./src/js/**/*.js') + .pipe(sort({ + asc: false + })) + .pipe(gulp.dest('./build/js')); + +// sort with a custom comparator +gulp.src('./src/js/**/*.js') + .pipe(sort({ + comparator: function(file1, file2) { + if (file1.path.indexOf('build') > -1) { + return 1; + } + if (file2.path.indexOf('build') > -1) { + return -1; + } + return 0; + } + })) + .pipe(gulp.dest('./build/js')); + +function customComparator(file1, file2) { + if (file1.path.indexOf('build') > -1) { + return 1; + } + if (file2.path.indexOf('build') > -1) { + return -1; + } + return 0; +} \ No newline at end of file diff --git a/gulp-sort/gulp-sort.d.ts b/gulp-sort/gulp-sort.d.ts new file mode 100644 index 000000000..7289c1f51 --- /dev/null +++ b/gulp-sort/gulp-sort.d.ts @@ -0,0 +1,44 @@ +// Type definitions for gulp-sort +// Project: https://github.com/pgilad/gulp-sort +// Definitions by: Joe Skeen +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +/** Sort files in stream by path or any custom sort comparator */ +declare module 'gulp-sort' { + + import gulpUtil = require('gulp-util'); + + interface IOptions { + /** + * A function to compare two files. + * Returns: + * -1 if file1 should be before file2, + * 0 if file1 is equivalent to file2, and + * 1 if file1 should be after file2 + */ + comparator?: IComparatorFunction; + /** Whether to sort in ascending order, default is true */ + asc?; + } + + interface IComparatorFunction { + /** + * A function to compare two files. + * Returns: + * -1 if file1 should be before file2, + * 0 if file1 is equivalent to file2, and + * 1 if file1 should be after file2 + */ + (file1: gulpUtil.File, file2: gulpUtil.File): number; + } + + /** Sort files in stream by path or any custom sort comparator */ + function gulpSort(): NodeJS.ReadWriteStream; + function gulpSort(comparator: IComparatorFunction): NodeJS.ReadWriteStream; + function gulpSort(options: IOptions): NodeJS.ReadWriteStream; + + export = gulpSort; +} From 64cfad5c09adff9a47d004d7b9c7aad23be86c83 Mon Sep 17 00:00:00 2001 From: Joe Skeen Date: Mon, 17 Aug 2015 13:31:19 -0600 Subject: [PATCH 2/2] Fix implicit any issues --- gulp-sort/gulp-sort-tests.ts | 3 ++- gulp-sort/gulp-sort.d.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gulp-sort/gulp-sort-tests.ts b/gulp-sort/gulp-sort-tests.ts index 0dd260f66..12685c085 100644 --- a/gulp-sort/gulp-sort-tests.ts +++ b/gulp-sort/gulp-sort-tests.ts @@ -5,6 +5,7 @@ import gulp = require('gulp'); import sort = require('gulp-sort'); +import gulpUtil = require('gulp-util'); // default sort gulp.src('./src/js/**/*.js') @@ -38,7 +39,7 @@ gulp.src('./src/js/**/*.js') })) .pipe(gulp.dest('./build/js')); -function customComparator(file1, file2) { +function customComparator(file1: gulpUtil.File, file2: gulpUtil.File) { if (file1.path.indexOf('build') > -1) { return 1; } diff --git a/gulp-sort/gulp-sort.d.ts b/gulp-sort/gulp-sort.d.ts index 7289c1f51..c06b9c3e0 100644 --- a/gulp-sort/gulp-sort.d.ts +++ b/gulp-sort/gulp-sort.d.ts @@ -21,7 +21,7 @@ declare module 'gulp-sort' { */ comparator?: IComparatorFunction; /** Whether to sort in ascending order, default is true */ - asc?; + asc?: boolean; } interface IComparatorFunction {