An open API service indexing awesome lists of open source software.

https://github.com/pgilad/gulp-sort

Sort files in stream by path or any custom sort comparator
https://github.com/pgilad/gulp-sort

gulp gulp-plugin pipeline sort stream utiliy

Last synced: 11 months ago
JSON representation

Sort files in stream by path or any custom sort comparator

Awesome Lists containing this project

README

          

# [gulp](https://github.com/wearefractal/gulp)-sort
> Sort files in stream by path or any custom sort comparator

[![Build Status](http://img.shields.io/travis/pgilad/gulp-sort/master.svg?style=flat)](https://travis-ci.org/pgilad/gulp-sort)

## Install

`$ npm install gulp-sort --save-dev`

## Usage

```js
var 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'));

// sort with a custom sort function
var stable = require('stable');
gulp.src('./src/js/**/*.js')
.pipe(sort({
customSortFn: function(files, comparator) {
return stable(files, comparator);
}
}))
.pipe(gulp.dest('./build/js'));
```

## Options

`gulp-sort` takes in an optional [comparator](#comparator) function, or dictionary with following params:

### asc

Sort ascending. Defaults to true. Specify false to sort descending.

### comparator

Comparator function to use. `comparator(file1, file2)`. Defaults to `localeCompare` of file paths.

### customSortFn

Use `customSortFn` in order to control the sorting yourself (useful for stable sorts).

`customSortFn` signature is as follows:

`customSortFn(, )`

- `files` being the vinyl file objects that were passed in
- `comparator` is the default comparator used, or a custom one that was passed as param

This function is expected to return back the sorted list of files.

## License

MIT © [Gilad Peleg](https://www.giladpeleg.com)