29 lines
		
	
	
		
			760 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			760 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var ReadableStream = require('stream').Readable,
 | |
|     inherits = require('util').inherits,
 | |
|     Serializer = require('./index');
 | |
| 
 | |
| var SerializerStream = module.exports = function (node, options) {
 | |
|     ReadableStream.call(this);
 | |
| 
 | |
|     this.serializer = new Serializer(node, options);
 | |
| 
 | |
|     Object.defineProperty(this.serializer, 'html', {
 | |
|         //NOTE: To make `+=` concat operator work properly we define
 | |
|         //getter which always returns empty string
 | |
|         get: function () {
 | |
|             return '';
 | |
|         },
 | |
|         set: this.push.bind(this)
 | |
|     });
 | |
| };
 | |
| 
 | |
| inherits(SerializerStream, ReadableStream);
 | |
| 
 | |
| //Readable stream implementation
 | |
| SerializerStream.prototype._read = function () {
 | |
|     this.serializer.serialize();
 | |
|     this.push(null);
 | |
| };
 |