through-gulp

A tiny wrapper around Node stream Transform, to simplify gulp plulgins development

Usage no npm install needed!

<script type="module">
  import throughGulp from 'https://cdn.skypack.dev/through-gulp';
</script>

README

through-gulp

Build Status Coverage Report Package Dependency Package DevDependency

A tiny wrapper around Node streams. To make gulp plugin write easier. Inspired by through2, (https://github.com/rvagg/through2/), but much simplify for gulp-plugin development for some reason.

Install

npm install through-gulp --save

API

Expose single API..

var through = require('through-gulp');
var stream = through(transformFunction, flushFunction);

Both argument has default value to pipe data next without processing.

Usage

A simple demonstrate about write gulp-plugin with through-gulp. If you know nothing about gulp plugin, check this first. (https://github.com/gulpjs/gulp/blob/master/docs/writing-a-plugin/guidelines.md)

// PLUGIN_NAME: sample
var through = require('through-gulp');

// exporting the plugin 
module.exports = sample;

function sample() {
  // creating a stream through which each file will pass
  var stream = through(function(file, encoding,callback) {
    // do whatever necessary to process the file
    if (file.isNull()) {

    }
    if (file.isBuffer()) {

    }
    if (file.isStream()) {

    }
    // just pipe data next, or just do nothing to process file later in flushFunction
    // never forget callback to indicate that the file has been processed.
      this.push(file);
      callback();
    }, function(callback) {
      // just pipe data next, just callback to indicate that the stream's over
      this.push(something);
      callback();
    });

  // returning the file stream
  return stream;
};

then use the plugin with gulp

var gulp = require('gulp');
var sample = require('sample');
gulp.task('sample', function() {
  gulp.src(['source file'])
    .pipe(sample())
    .pipe(gulp.dest('file destiny'))
});

Contact

Email: hjj491229492@hotmail.com.