node/test/parallel/test-stream-transform-split-objectmode.js
James M Snell 85ab4a5f12 buffer: add .from(), .alloc() and .allocUnsafe()
Several changes:

* Soft-Deprecate Buffer() constructors
* Add `Buffer.from()`, `Buffer.alloc()`, and `Buffer.allocUnsafe()`
* Add `--zero-fill-buffers` command line option
* Add byteOffset and length to `new Buffer(arrayBuffer)` constructor
* buffer.fill('') previously had no effect, now zero-fills
* Update the docs

PR-URL: https://github.com/nodejs/node/pull/4682
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2016-03-16 08:34:02 -07:00

53 lines
1.2 KiB
JavaScript

'use strict';
require('../common');
var assert = require('assert');
var Transform = require('stream').Transform;
var parser = new Transform({ readableObjectMode : true });
assert(parser._readableState.objectMode);
assert(!parser._writableState.objectMode);
assert(parser._readableState.highWaterMark === 16);
assert(parser._writableState.highWaterMark === (16 * 1024));
parser._transform = function(chunk, enc, callback) {
callback(null, { val : chunk[0] });
};
var parsed;
parser.on('data', function(obj) {
parsed = obj;
});
parser.end(Buffer.from([42]));
process.on('exit', function() {
assert(parsed.val === 42);
});
var serializer = new Transform({ writableObjectMode : true });
assert(!serializer._readableState.objectMode);
assert(serializer._writableState.objectMode);
assert(serializer._readableState.highWaterMark === (16 * 1024));
assert(serializer._writableState.highWaterMark === 16);
serializer._transform = function(obj, _, callback) {
callback(null, Buffer.from([obj.val]));
};
var serialized;
serializer.on('data', function(chunk) {
serialized = chunk;
});
serializer.write({ val : 42 });
process.on('exit', function() {
assert(serialized[0] === 42);
});