JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 706
  • Score
    100M100P100Q100234F
  • License MIT

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

Package Exports

  • through-gulp

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (through-gulp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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 only.

Install

npm install through-gulp --save

API

One main API provided to use.

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

Both argument has default value to pipe data next without processing. if just for files map or files filter, two shortcut method provided as well.

// './test/fixtures/template.js'
define({});
// './test/fixtures/destiny.js'
define(function(){});
gulp.src(['./test/fixtures/template.js','./test/fixtures/destiny.js'])
    .pipe(through.map(function(file) {
        file.contents = Buffer.concat([new Buffer('love '), file.contents]);
        return file;
    }))
    .pipe(assert.first(function(file) {
        (file.contents.toString()).should.equal('love define({});');
    }))
    .on('end', done);
gulp.src(['./test/fixtures/template.js','./test/fixtures/destiny.js'])
    .pipe(through.filter(function(file) {
        return file.contents.toString().indexOf('function') !== -1;
    }))
    .pipe(assert.first(function(file) {
        (file.contents.toString()).should.equal('define(function(){});');
    }))
    .on('end', done);

Usage

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

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

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;
};

// exporting the plugin 
module.exports = sample;

then use the plugin with gulp

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

Contact

Email: hjj491229492@hotmail.com.