415gotit
This commit is contained in:
81
node_modules/msgpack-lite/lib/ext-unpacker.js
generated
vendored
Normal file
81
node_modules/msgpack-lite/lib/ext-unpacker.js
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
// ext-unpacker.js
|
||||
|
||||
exports.setExtUnpackers = setExtUnpackers;
|
||||
|
||||
var Bufferish = require("./bufferish");
|
||||
var Buffer = Bufferish.global;
|
||||
var _decode;
|
||||
|
||||
var ERROR_COLUMNS = {name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1};
|
||||
|
||||
function setExtUnpackers(codec) {
|
||||
codec.addExtUnpacker(0x0E, [decode, unpackError(Error)]);
|
||||
codec.addExtUnpacker(0x01, [decode, unpackError(EvalError)]);
|
||||
codec.addExtUnpacker(0x02, [decode, unpackError(RangeError)]);
|
||||
codec.addExtUnpacker(0x03, [decode, unpackError(ReferenceError)]);
|
||||
codec.addExtUnpacker(0x04, [decode, unpackError(SyntaxError)]);
|
||||
codec.addExtUnpacker(0x05, [decode, unpackError(TypeError)]);
|
||||
codec.addExtUnpacker(0x06, [decode, unpackError(URIError)]);
|
||||
|
||||
codec.addExtUnpacker(0x0A, [decode, unpackRegExp]);
|
||||
codec.addExtUnpacker(0x0B, [decode, unpackClass(Boolean)]);
|
||||
codec.addExtUnpacker(0x0C, [decode, unpackClass(String)]);
|
||||
codec.addExtUnpacker(0x0D, [decode, unpackClass(Date)]);
|
||||
codec.addExtUnpacker(0x0F, [decode, unpackClass(Number)]);
|
||||
|
||||
if ("undefined" !== typeof Uint8Array) {
|
||||
codec.addExtUnpacker(0x11, unpackClass(Int8Array));
|
||||
codec.addExtUnpacker(0x12, unpackClass(Uint8Array));
|
||||
codec.addExtUnpacker(0x13, [unpackArrayBuffer, unpackClass(Int16Array)]);
|
||||
codec.addExtUnpacker(0x14, [unpackArrayBuffer, unpackClass(Uint16Array)]);
|
||||
codec.addExtUnpacker(0x15, [unpackArrayBuffer, unpackClass(Int32Array)]);
|
||||
codec.addExtUnpacker(0x16, [unpackArrayBuffer, unpackClass(Uint32Array)]);
|
||||
codec.addExtUnpacker(0x17, [unpackArrayBuffer, unpackClass(Float32Array)]);
|
||||
|
||||
// PhantomJS/1.9.7 doesn't have Float64Array
|
||||
if ("undefined" !== typeof Float64Array) {
|
||||
codec.addExtUnpacker(0x18, [unpackArrayBuffer, unpackClass(Float64Array)]);
|
||||
}
|
||||
|
||||
// IE10 doesn't have Uint8ClampedArray
|
||||
if ("undefined" !== typeof Uint8ClampedArray) {
|
||||
codec.addExtUnpacker(0x19, unpackClass(Uint8ClampedArray));
|
||||
}
|
||||
|
||||
codec.addExtUnpacker(0x1A, unpackArrayBuffer);
|
||||
codec.addExtUnpacker(0x1D, [unpackArrayBuffer, unpackClass(DataView)]);
|
||||
}
|
||||
|
||||
if (Bufferish.hasBuffer) {
|
||||
codec.addExtUnpacker(0x1B, unpackClass(Buffer));
|
||||
}
|
||||
}
|
||||
|
||||
function decode(input) {
|
||||
if (!_decode) _decode = require("./decode").decode; // lazy load
|
||||
return _decode(input);
|
||||
}
|
||||
|
||||
function unpackRegExp(value) {
|
||||
return RegExp.apply(null, value);
|
||||
}
|
||||
|
||||
function unpackError(Class) {
|
||||
return function(value) {
|
||||
var out = new Class();
|
||||
for (var key in ERROR_COLUMNS) {
|
||||
out[key] = value[key];
|
||||
}
|
||||
return out;
|
||||
};
|
||||
}
|
||||
|
||||
function unpackClass(Class) {
|
||||
return function(value) {
|
||||
return new Class(value);
|
||||
};
|
||||
}
|
||||
|
||||
function unpackArrayBuffer(value) {
|
||||
return (new Uint8Array(value)).buffer;
|
||||
}
|
||||
Reference in New Issue
Block a user