415gotit
This commit is contained in:
108
node_modules/msgpack-lite/lib/bufferish.js
generated
vendored
Normal file
108
node_modules/msgpack-lite/lib/bufferish.js
generated
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
// bufferish.js
|
||||
|
||||
var Buffer = exports.global = require("./buffer-global");
|
||||
var hasBuffer = exports.hasBuffer = Buffer && !!Buffer.isBuffer;
|
||||
var hasArrayBuffer = exports.hasArrayBuffer = ("undefined" !== typeof ArrayBuffer);
|
||||
|
||||
var isArray = exports.isArray = require("isarray");
|
||||
exports.isArrayBuffer = hasArrayBuffer ? isArrayBuffer : _false;
|
||||
var isBuffer = exports.isBuffer = hasBuffer ? Buffer.isBuffer : _false;
|
||||
var isView = exports.isView = hasArrayBuffer ? (ArrayBuffer.isView || _is("ArrayBuffer", "buffer")) : _false;
|
||||
|
||||
exports.alloc = alloc;
|
||||
exports.concat = concat;
|
||||
exports.from = from;
|
||||
|
||||
var BufferArray = exports.Array = require("./bufferish-array");
|
||||
var BufferBuffer = exports.Buffer = require("./bufferish-buffer");
|
||||
var BufferUint8Array = exports.Uint8Array = require("./bufferish-uint8array");
|
||||
var BufferProto = exports.prototype = require("./bufferish-proto");
|
||||
|
||||
/**
|
||||
* @param value {Array|ArrayBuffer|Buffer|String}
|
||||
* @returns {Buffer|Uint8Array|Array}
|
||||
*/
|
||||
|
||||
function from(value) {
|
||||
if (typeof value === "string") {
|
||||
return fromString.call(this, value);
|
||||
} else {
|
||||
return auto(this).from(value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param size {Number}
|
||||
* @returns {Buffer|Uint8Array|Array}
|
||||
*/
|
||||
|
||||
function alloc(size) {
|
||||
return auto(this).alloc(size);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list {Array} array of (Buffer|Uint8Array|Array)s
|
||||
* @param [length]
|
||||
* @returns {Buffer|Uint8Array|Array}
|
||||
*/
|
||||
|
||||
function concat(list, length) {
|
||||
if (!length) {
|
||||
length = 0;
|
||||
Array.prototype.forEach.call(list, dryrun);
|
||||
}
|
||||
var ref = (this !== exports) && this || list[0];
|
||||
var result = alloc.call(ref, length);
|
||||
var offset = 0;
|
||||
Array.prototype.forEach.call(list, append);
|
||||
return result;
|
||||
|
||||
function dryrun(buffer) {
|
||||
length += buffer.length;
|
||||
}
|
||||
|
||||
function append(buffer) {
|
||||
offset += BufferProto.copy.call(buffer, result, offset);
|
||||
}
|
||||
}
|
||||
|
||||
var _isArrayBuffer = _is("ArrayBuffer");
|
||||
|
||||
function isArrayBuffer(value) {
|
||||
return (value instanceof ArrayBuffer) || _isArrayBuffer(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
|
||||
function fromString(value) {
|
||||
var expected = value.length * 3;
|
||||
var that = alloc.call(this, expected);
|
||||
var actual = BufferProto.write.call(that, value);
|
||||
if (expected !== actual) {
|
||||
that = BufferProto.slice.call(that, 0, actual);
|
||||
}
|
||||
return that;
|
||||
}
|
||||
|
||||
function auto(that) {
|
||||
return isBuffer(that) ? BufferBuffer
|
||||
: isView(that) ? BufferUint8Array
|
||||
: isArray(that) ? BufferArray
|
||||
: hasBuffer ? BufferBuffer
|
||||
: hasArrayBuffer ? BufferUint8Array
|
||||
: BufferArray;
|
||||
}
|
||||
|
||||
function _false() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function _is(name, key) {
|
||||
/* jshint eqnull:true */
|
||||
name = "[object " + name + "]";
|
||||
return function(value) {
|
||||
return (value != null) && {}.toString.call(key ? value[key] : value) === name;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user