Show More
Commit Description:
fix wrong merge
Commit Description:
fix wrong merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/restructure/src/EncodeStream.js
| 151 lines
| 4.4 KiB
| application/javascript
| JavascriptLexer
|
r789 | // Generated by CoffeeScript 1.7.1 | |||
(function() { | ||||
var DecodeStream, EncodeStream, iconv, stream, | ||||
__hasProp = {}.hasOwnProperty, | ||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; | ||||
stream = require('stream'); | ||||
DecodeStream = require('./DecodeStream'); | ||||
try { | ||||
iconv = require('iconv-lite'); | ||||
} catch (_error) {} | ||||
EncodeStream = (function(_super) { | ||||
var key; | ||||
__extends(EncodeStream, _super); | ||||
function EncodeStream(bufferSize) { | ||||
if (bufferSize == null) { | ||||
bufferSize = 65536; | ||||
} | ||||
EncodeStream.__super__.constructor.apply(this, arguments); | ||||
this.buffer = new Buffer(bufferSize); | ||||
this.bufferOffset = 0; | ||||
this.pos = 0; | ||||
} | ||||
for (key in Buffer.prototype) { | ||||
if (key.slice(0, 5) === 'write') { | ||||
(function(key) { | ||||
var bytes; | ||||
bytes = +DecodeStream.TYPES[key.replace(/write|[BL]E/g, '')]; | ||||
return EncodeStream.prototype[key] = function(value) { | ||||
this.ensure(bytes); | ||||
this.buffer[key](value, this.bufferOffset); | ||||
this.bufferOffset += bytes; | ||||
return this.pos += bytes; | ||||
}; | ||||
})(key); | ||||
} | ||||
} | ||||
EncodeStream.prototype._read = function() {}; | ||||
EncodeStream.prototype.ensure = function(bytes) { | ||||
if (this.bufferOffset + bytes > this.buffer.length) { | ||||
return this.flush(); | ||||
} | ||||
}; | ||||
EncodeStream.prototype.flush = function() { | ||||
if (this.bufferOffset > 0) { | ||||
this.push(new Buffer(this.buffer.slice(0, this.bufferOffset))); | ||||
return this.bufferOffset = 0; | ||||
} | ||||
}; | ||||
EncodeStream.prototype.writeBuffer = function(buffer) { | ||||
this.flush(); | ||||
this.push(buffer); | ||||
return this.pos += buffer.length; | ||||
}; | ||||
EncodeStream.prototype.writeString = function(string, encoding) { | ||||
var buf, byte, i, _i, _ref; | ||||
if (encoding == null) { | ||||
encoding = 'ascii'; | ||||
} | ||||
switch (encoding) { | ||||
case 'utf16le': | ||||
case 'ucs2': | ||||
case 'utf8': | ||||
case 'ascii': | ||||
return this.writeBuffer(new Buffer(string, encoding)); | ||||
case 'utf16be': | ||||
buf = new Buffer(string, 'utf16le'); | ||||
for (i = _i = 0, _ref = buf.length - 1; _i < _ref; i = _i += 2) { | ||||
byte = buf[i]; | ||||
buf[i] = buf[i + 1]; | ||||
buf[i + 1] = byte; | ||||
} | ||||
return this.writeBuffer(buf); | ||||
default: | ||||
if (iconv) { | ||||
return this.writeBuffer(iconv.encode(string, encoding)); | ||||
} else { | ||||
throw new Error('Install iconv-lite to enable additional string encodings.'); | ||||
} | ||||
} | ||||
}; | ||||
EncodeStream.prototype.writeUInt24BE = function(val) { | ||||
this.ensure(3); | ||||
this.buffer[this.bufferOffset++] = val >>> 16 & 0xff; | ||||
this.buffer[this.bufferOffset++] = val >>> 8 & 0xff; | ||||
this.buffer[this.bufferOffset++] = val & 0xff; | ||||
return this.pos += 3; | ||||
}; | ||||
EncodeStream.prototype.writeUInt24LE = function(val) { | ||||
this.ensure(3); | ||||
this.buffer[this.bufferOffset++] = val & 0xff; | ||||
this.buffer[this.bufferOffset++] = val >>> 8 & 0xff; | ||||
this.buffer[this.bufferOffset++] = val >>> 16 & 0xff; | ||||
return this.pos += 3; | ||||
}; | ||||
EncodeStream.prototype.writeInt24BE = function(val) { | ||||
if (val >= 0) { | ||||
return this.writeUInt24BE(val); | ||||
} else { | ||||
return this.writeUInt24BE(val + 0xffffff + 1); | ||||
} | ||||
}; | ||||
EncodeStream.prototype.writeInt24LE = function(val) { | ||||
if (val >= 0) { | ||||
return this.writeUInt24LE(val); | ||||
} else { | ||||
return this.writeUInt24LE(val + 0xffffff + 1); | ||||
} | ||||
}; | ||||
EncodeStream.prototype.fill = function(val, length) { | ||||
var buf; | ||||
if (length < this.buffer.length) { | ||||
this.ensure(length); | ||||
this.buffer.fill(val, this.bufferOffset, this.bufferOffset + length); | ||||
this.bufferOffset += length; | ||||
return this.pos += length; | ||||
} else { | ||||
buf = new Buffer(length); | ||||
buf.fill(val); | ||||
return this.writeBuffer(buf); | ||||
} | ||||
}; | ||||
EncodeStream.prototype.end = function() { | ||||
this.flush(); | ||||
return this.push(null); | ||||
}; | ||||
return EncodeStream; | ||||
})(stream.Readable); | ||||
module.exports = EncodeStream; | ||||
}).call(this); | ||||