415gotit
This commit is contained in:
78
node_modules/msgpack-lite/lib/ext-packer.js
generated
vendored
Normal file
78
node_modules/msgpack-lite/lib/ext-packer.js
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
// ext-packer.js
|
||||
|
||||
exports.setExtPackers = setExtPackers;
|
||||
|
||||
var Bufferish = require("./bufferish");
|
||||
var Buffer = Bufferish.global;
|
||||
var packTypedArray = Bufferish.Uint8Array.from;
|
||||
var _encode;
|
||||
|
||||
var ERROR_COLUMNS = {name: 1, message: 1, stack: 1, columnNumber: 1, fileName: 1, lineNumber: 1};
|
||||
|
||||
function setExtPackers(codec) {
|
||||
codec.addExtPacker(0x0E, Error, [packError, encode]);
|
||||
codec.addExtPacker(0x01, EvalError, [packError, encode]);
|
||||
codec.addExtPacker(0x02, RangeError, [packError, encode]);
|
||||
codec.addExtPacker(0x03, ReferenceError, [packError, encode]);
|
||||
codec.addExtPacker(0x04, SyntaxError, [packError, encode]);
|
||||
codec.addExtPacker(0x05, TypeError, [packError, encode]);
|
||||
codec.addExtPacker(0x06, URIError, [packError, encode]);
|
||||
|
||||
codec.addExtPacker(0x0A, RegExp, [packRegExp, encode]);
|
||||
codec.addExtPacker(0x0B, Boolean, [packValueOf, encode]);
|
||||
codec.addExtPacker(0x0C, String, [packValueOf, encode]);
|
||||
codec.addExtPacker(0x0D, Date, [Number, encode]);
|
||||
codec.addExtPacker(0x0F, Number, [packValueOf, encode]);
|
||||
|
||||
if ("undefined" !== typeof Uint8Array) {
|
||||
codec.addExtPacker(0x11, Int8Array, packTypedArray);
|
||||
codec.addExtPacker(0x12, Uint8Array, packTypedArray);
|
||||
codec.addExtPacker(0x13, Int16Array, packTypedArray);
|
||||
codec.addExtPacker(0x14, Uint16Array, packTypedArray);
|
||||
codec.addExtPacker(0x15, Int32Array, packTypedArray);
|
||||
codec.addExtPacker(0x16, Uint32Array, packTypedArray);
|
||||
codec.addExtPacker(0x17, Float32Array, packTypedArray);
|
||||
|
||||
// PhantomJS/1.9.7 doesn't have Float64Array
|
||||
if ("undefined" !== typeof Float64Array) {
|
||||
codec.addExtPacker(0x18, Float64Array, packTypedArray);
|
||||
}
|
||||
|
||||
// IE10 doesn't have Uint8ClampedArray
|
||||
if ("undefined" !== typeof Uint8ClampedArray) {
|
||||
codec.addExtPacker(0x19, Uint8ClampedArray, packTypedArray);
|
||||
}
|
||||
|
||||
codec.addExtPacker(0x1A, ArrayBuffer, packTypedArray);
|
||||
codec.addExtPacker(0x1D, DataView, packTypedArray);
|
||||
}
|
||||
|
||||
if (Bufferish.hasBuffer) {
|
||||
codec.addExtPacker(0x1B, Buffer, Bufferish.from);
|
||||
}
|
||||
}
|
||||
|
||||
function encode(input) {
|
||||
if (!_encode) _encode = require("./encode").encode; // lazy load
|
||||
return _encode(input);
|
||||
}
|
||||
|
||||
function packValueOf(value) {
|
||||
return (value).valueOf();
|
||||
}
|
||||
|
||||
function packRegExp(value) {
|
||||
value = RegExp.prototype.toString.call(value).split("/");
|
||||
value.shift();
|
||||
var out = [value.pop()];
|
||||
out.unshift(value.join("/"));
|
||||
return out;
|
||||
}
|
||||
|
||||
function packError(value) {
|
||||
var out = {};
|
||||
for (var key in ERROR_COLUMNS) {
|
||||
out[key] = value[key];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
Reference in New Issue
Block a user