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-06-03 23:25:55 +00:00
|
|
|
[![build status](https://gitlab.com/pushrocks/gulp-function/badges/master/build.svg)](https://gitlab.com/pushrocks/gulp-function/commits/master)
|
2016-02-01 02:33:33 +00:00
|
|
|
[![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)
|
2016-04-04 20:39:18 +00:00
|
|
|
[![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
|
|
|
});
|
|
|
|
```
|
|
|
|
|
2016-04-04 20:32:30 +00:00
|
|
|
### Notes:
|
|
|
|
|
|
|
|
* The first argument of gulpFunction can also be an **array of multiple functionnames**.
|
2016-06-03 23:14:25 +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:
|
2016-04-04 20:32:30 +00:00
|
|
|
* "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**!!!
|