Buckets:
| /*global module, process*/ | |
| var Buffer = require('safe-buffer').Buffer; | |
| var Stream = require('stream'); | |
| var util = require('util'); | |
| function DataStream(data) { | |
| this.buffer = null; | |
| this.writable = true; | |
| this.readable = true; | |
| // No input | |
| if (!data) { | |
| this.buffer = Buffer.alloc(0); | |
| return this; | |
| } | |
| // Stream | |
| if (typeof data.pipe === 'function') { | |
| this.buffer = Buffer.alloc(0); | |
| data.pipe(this); | |
| return this; | |
| } | |
| // Buffer or String | |
| // or Object (assumedly a passworded key) | |
| if (data.length || typeof data === 'object') { | |
| this.buffer = data; | |
| this.writable = false; | |
| process.nextTick(function () { | |
| this.emit('end', data); | |
| this.readable = false; | |
| this.emit('close'); | |
| }.bind(this)); | |
| return this; | |
| } | |
| throw new TypeError('Unexpected data type ('+ typeof data + ')'); | |
| } | |
| util.inherits(DataStream, Stream); | |
| DataStream.prototype.write = function write(data) { | |
| this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]); | |
| this.emit('data', data); | |
| }; | |
| DataStream.prototype.end = function end(data) { | |
| if (data) | |
| this.write(data); | |
| this.emit('end', data); | |
| this.emit('close'); | |
| this.writable = false; | |
| this.readable = false; | |
| }; | |
| module.exports = DataStream; | |
Xet Storage Details
- Size:
- 1.24 kB
- Xet hash:
- b99402864430b643aced8883b6913c80f5c3cec62f0ad3759c48adfc897309ca
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.