Ad

How Read Stream .pipe(myfunction())

- 1 answer

How read stream .pipe(myfunction())?

I try , but give errors. How read stream of gulp.src('./userdata.json') and .pipe()? I not know how is it make.

gulpfile.js

   var upmodul = require("modul-json");
      //......
        return gulp.src('./userdata.json')
            .pipe(upmodul());
      ......//

node_modules / modul-json / index.js

'use strict';
var Stream = require('stream');


var loger = function () {

    var readable = new Stream.Readable({
        read: function (n) {

            this.push("ll");
        }
    });


}

module.exports =  loger;

Error

    [00:19:39] TypeError: Cannot read property 'on' of undefined
        at DestroyableTransform.Readable.pipe (E:\Developers\WebDeveloper\OpenServer
    -WebProg\domains\progectapi2\node_modules\vinyl-fs\node_modules\readable-stream\
    lib\_stream_readable.js:516:7)
        at Gulp.<anonymous> (E:\Developers\WebDeveloper\OpenServer-WebProg\domains\p
    rogectapi2\gulpfile.js:159:9)
        at module.exports (E:\Developers\WebDeveloper\OpenServer-WebProg\domains\pro
    gectapi2\node_modules\orchestrator\lib\runTask.js:34:7)
        at Gulp.Orchestrator._runTask (E:\Developers\WebDeveloper\OpenServer-WebProg
    \domains\progectapi2\node_modules\orchestrator\index.js:273:3)
        at Gulp.Orchestrator._runStep (E:\Developers\WebDeveloper\OpenServer-WebProg
    \domains\progectapi2\node_modules\orchestrator\index.js:214:10)
        at Gulp.Orchestrator.start (E:\Developers\WebDeveloper\OpenServer-WebProg\do
    mains\progectapi2\node_modules\orchestrator\index.js:134:8)
        at C:\Users\Tiki
\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:20
        at nextTickCallbackWith0Args (node.js:433:9)
        at process._tickCallback (node.js:362:13)
        at Function.Module.runMain (module.js:432:11)
Ad

Answer

The gulp documentation has some information on building a plugin that might be useful to you. Just a sample from that page talks about transforming streams.

All gulp plugins essentially boil down to this:

var Transform = require('stream').Transform;

module.exports = function() {
  // Monkey patch Transform or create your own subclass, 
  // implementing `_transform()` and optionally `_flush()`
  var transformStream = new Transform({objectMode: true});
  /**
   * @param {Buffer|string} file
   * @param {string=} encoding - ignored if file contains a Buffer
   * @param {function(Error, object)} callback - Call this function (optionally with an 
   *          error argument and data) when you are done processing the supplied chunk.
   */
  transformStream._transform = function(file, encoding, callback) {
    var error = null, 
        output = doSomethingWithTheFile(file);
    callback(error, output);
  });

  return transformStream;
};
Ad
source: stackoverflow.com
Ad