gulp-function/README.md

51 lines
2.4 KiB
Markdown
Raw Normal View History

2016-02-01 02:33:33 +00:00
# gulp-function
2015-09-17 21:06:35 +00:00
accepts call to execute in gulp pipeline.
2016-02-12 04:36:23 +00:00
### Status
2016-02-01 02:33:33 +00:00
[![Build Status](https://travis-ci.org/pushrocks/gulp-function.svg?branch=v0.0.2)](https://travis-ci.org/pushrocks/gulp-function)
[![Dependency Status](https://david-dm.org/pushrocks/gulp-function.svg)](https://david-dm.org/pushrocks/gulp-function)
2016-02-14 18:01:24 +00:00
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/gulp-function/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/gulp-function/master/dependencies/npm)
2016-02-12 04:36:23 +00:00
[![bitHound Code](https://www.bithound.io/github/pushrocks/gulp-function/badges/code.svg)](https://www.bithound.io/github/pushrocks/gulp-function)
[![codecov.io](https://codecov.io/github/pushrocks/gulp-function/coverage.svg?branch=master)](https://codecov.io/github/pushrocks/gulp-function?branch=master)
2015-10-25 21:45:49 +00:00
2016-02-14 18:01:24 +00:00
### Version
2016-02-14 17:58:59 +00:00
[![GitHub version](https://badge.fury.io/gh/pushrocks%2Fgulp-function.svg)](https://badge.fury.io/gh/pushrocks%2Fgulp-function)
[![npm version](https://badge.fury.io/js/gulp-function.svg)](https://badge.fury.io/js/gulp-function)
2015-10-25 21:45:49 +00:00
### Usage
```javascript
var gulp = require("gulp");
2016-02-01 02:33:33 +00:00
var gulpFunction = require("gulp-function");
2016-02-14 17:40:37 +00:00
var Q = require("q");
2015-10-25 21:45:49 +00:00
var myFunction = function () {
2016-02-14 17:40:37 +00:00
var done = Q.defer();
2015-10-25 21:45:49 +00:00
console.log("Hello World!")
2016-02-14 17:40:37 +00:00
// NOTE:
// you can use done.resolve as callback function
// of any async tasks within this function
done.resolve();
return done.promise;
2015-10-25 21:45:49 +00:00
}
gulp.task('gulpTest',function() {
2016-02-14 17:42:45 +00:00
var stream = gulp.src('./mydir/*.something')
2016-02-12 04:36:23 +00:00
.pipe(gulpFunction(myFunction,'forEach')) //read the notes below
2016-02-14 17:42:45 +00:00
.pipe(gulp.dest("./build/"));
return stream; // by returning the stream gulp knows when our task has finished.
2015-10-25 21:45:49 +00:00
});
```
### Notes:
* The first argument of gulpFunction can also be an **array of multiple functionnames**.
2016-02-14 17:40:37 +00:00
Each function can return a promise. the pipe stop will finish when every promise is fullfilled.
* the second argument can be empty, it defaults to "forEach"
* the following options are available:
* "forFirst" - executes when first chunk/vinylfile of the stream reaches the pipestop.
file is pushed further down the line when function's returned promise is fullfilled.
2016-04-04 20:43:26 +00:00
* "forEach" - executes like "forFirst" but with every chunk/vinylfile in the stream;
* "atEnd" - executes after all chunks have passed and are processed in full.
That means the stream's "finish" event fires **before "atLast" is executed**!!!