engine.io-parser
Advanced tools
Comparing version 1.0.0 to 1.0.1
1.0.1 / 2014-03-06 | ||
================== | ||
* implement `blob` module to simplify code | ||
* bump `arraybuffer.slice` | ||
* style fixes | ||
1.0.0 / 2014-02-18 | ||
@@ -3,0 +10,0 @@ ================== |
@@ -11,9 +11,2 @@ /** | ||
/** | ||
* A utility for doing slicing, even when ArrayBuffer.prototype.slice doesn't | ||
* exist | ||
* | ||
* @api private | ||
*/ | ||
/** | ||
* Current protocol version. | ||
@@ -47,32 +40,8 @@ */ | ||
/** | ||
* Create a blob builder even when vendor prefixes exist | ||
* Create a blob api even for blob builder when vendor prefixes exist | ||
*/ | ||
var BlobBuilder = global.BlobBuilder | ||
|| global.WebKitBlobBuilder | ||
|| global.MSBlobBuilder | ||
|| global.MozBlobBuilder; | ||
var Blob = require('blob'); | ||
/** | ||
* Check if Blob constructor is supported | ||
*/ | ||
var blobSupported = (function() { | ||
try { | ||
var b = new Blob(['hi']); | ||
return b.size == 2; | ||
} catch(e) { | ||
return false; | ||
} | ||
})(); | ||
/** | ||
* Check if BlobBuilder is supported | ||
*/ | ||
var blobBuilderSupported = !!BlobBuilder | ||
&& !!BlobBuilder.prototype.append | ||
&& !!BlobBuilder.prototype.getBlob; | ||
/** | ||
* Encodes a packet. | ||
@@ -101,7 +70,7 @@ * | ||
? undefined | ||
: packet.data.buffer || packet.data; | ||
: packet.data.buffer || packet.data; | ||
if (global.ArrayBuffer && data instanceof ArrayBuffer) { | ||
return encodeArrayBuffer(packet, supportsBinary, callback); | ||
} else if (blobSupported && data instanceof Blob) { | ||
} else if (Blob && data instanceof Blob) { | ||
return encodeBlob(packet, supportsBinary, callback); | ||
@@ -141,3 +110,3 @@ } | ||
return callback(resultBuffer.buffer); | ||
}; | ||
} | ||
@@ -155,3 +124,3 @@ function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) { | ||
return fr.readAsArrayBuffer(packet.data); | ||
}; | ||
} | ||
@@ -165,14 +134,6 @@ function encodeBlob(packet, supportsBinary, callback) { | ||
length[0] = packets[packet.type]; | ||
var blob; | ||
if (blobSupported) { | ||
blob = new Blob([length.buffer, packet.data]); | ||
} else { | ||
var bb = new BlobBuilder(); | ||
bb.append(length); | ||
bb.append(packet.data); | ||
blob = bb.getBlob(); | ||
} | ||
var blob = new Blob([length.buffer, packet.data]); | ||
return callback(blob); | ||
}; | ||
} | ||
@@ -188,3 +149,3 @@ /** | ||
var message = 'b' + exports.packets[packet.type]; | ||
if (blobSupported && packet.data instanceof Blob) { | ||
if (Blob && packet.data instanceof Blob) { | ||
var fr = new FileReader(); | ||
@@ -223,3 +184,3 @@ fr.onload = function() { | ||
// String data | ||
if (typeof data == 'string' || data === undefined) { | ||
if (typeof data == 'string' || data === undefined) { | ||
if (data.charAt(0) == 'b') { | ||
@@ -241,18 +202,14 @@ return exports.decodeBase64Packet(data.substr(1), binaryType); | ||
} | ||
var asArray = new Uint8Array(data); | ||
var type = asArray[0]; | ||
var rest = sliceBuffer(data, 1); | ||
if (blobSupported && binaryType === 'blob') { | ||
if (Blob && binaryType === 'blob') { | ||
rest = new Blob([rest]); | ||
} else if (blobBuilderSupported && binaryType === 'blob') { | ||
var bb = new BlobBuilder(); | ||
bb.append(rest); | ||
rest = bb.getBlob(); | ||
} | ||
return { type: packetslist[type], data: rest }; | ||
return { type: packetslist[type], data: rest }; | ||
}; | ||
/** | ||
* Decodes a packet encoded in a base64 string | ||
* Decodes a packet encoded in a base64 string | ||
* | ||
@@ -266,3 +223,3 @@ * @param {String} base64 encoded message | ||
if (!global.ArrayBuffer) { | ||
return { type: type, data: { base64: true, data: msg.substr(1) } }; | ||
return { type: type, data: { base64: true, data: msg.substr(1) } }; | ||
} | ||
@@ -272,8 +229,4 @@ | ||
if (binaryType === 'blob' && blobSupported) { | ||
if (binaryType === 'blob' && Blob) { | ||
data = new Blob([data]); | ||
} else if (binaryType === 'blob' && blobBuilderSupported) { | ||
var bb = new BlobBuilder(); | ||
bb.append(data); | ||
data = bb.getBlob(); | ||
} | ||
@@ -307,3 +260,3 @@ | ||
if (supportsBinary) { | ||
if (blobSupported || blobBuilderSupported) { | ||
if (Blob) { | ||
return exports.encodePayloadAsBlob(packets, callback); | ||
@@ -318,5 +271,5 @@ } | ||
function setLengthHeader(message) { | ||
function setLengthHeader(message) { | ||
return message.length + ':' + message; | ||
}; | ||
} | ||
@@ -327,3 +280,3 @@ function encodeOne(packet, doneCallback) { | ||
}); | ||
}; | ||
} | ||
@@ -352,4 +305,4 @@ map(packets, encodeOne, function(err, results) { | ||
eachWithIndex(i, ary[i], next); | ||
}; | ||
}; | ||
} | ||
} | ||
@@ -365,3 +318,3 @@ /* | ||
exports.decodePayload = function (data, binaryType, callback) { | ||
if (!(typeof data == 'string')) { | ||
if (typeof data != 'string') { | ||
return exports.decodePayloadAsBinary(data, binaryType, callback); | ||
@@ -386,3 +339,3 @@ } | ||
var chr = data.charAt(i); | ||
if (':' != chr) { | ||
@@ -451,3 +404,3 @@ length += chr; | ||
}); | ||
}; | ||
} | ||
@@ -462,3 +415,3 @@ map(packets, encodeOne, function(err, encodedPackets) { | ||
} | ||
return acc + (new String(len)).length + len + 2; // string/binary identifier + separator = 2 | ||
return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2 | ||
}, 0); | ||
@@ -486,3 +439,3 @@ | ||
var lenStr = new String(ab.byteLength); | ||
var lenStr = ab.byteLength.toString(); | ||
for (var i = 0; i < lenStr.length; i++) { | ||
@@ -525,3 +478,3 @@ resultArray[bufferIndex++] = parseInt(lenStr[i]); | ||
var lenStr = new String(len); | ||
var lenStr = len.toString(); | ||
var lengthAry = new Uint8Array(lenStr.length + 1); | ||
@@ -533,26 +486,11 @@ for (var i = 0; i < lenStr.length; i++) { | ||
if (blobSupported) { | ||
if (Blob) { | ||
var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]); | ||
doneCallback(null, blob); | ||
} else { | ||
var bb = new BlobBuilder(); | ||
bb.append(binaryIdentifier); | ||
bb.append(lengthAry.buffer); | ||
bb.append(encoded); | ||
var blob = bb.getBlob(); | ||
doneCallback(null, blob); | ||
} | ||
}); | ||
}; | ||
} | ||
map(packets, encodeOne, function(err, results) { | ||
if (blobSupported) { | ||
return callback(new Blob(results)); | ||
} | ||
var bb = new BlobBuilder(); | ||
results.forEach(function(encoding) { | ||
bb.append(encoding); | ||
}); | ||
return callback(bb.getBlob()); | ||
return callback(new Blob(results)); | ||
}); | ||
@@ -581,3 +519,3 @@ }; | ||
var tailArray = new Uint8Array(bufferTail); | ||
var isString = tailArray[0] == 0; | ||
var isString = tailArray[0] === 0; | ||
var msgLength = ''; | ||
@@ -584,0 +522,0 @@ for (var i = 1; ; i++) { |
@@ -59,3 +59,3 @@ /** | ||
? undefined | ||
: packet.data.buffer || packet.data; | ||
: packet.data.buffer || packet.data; | ||
@@ -97,3 +97,3 @@ if (Buffer.isBuffer(data)) { | ||
? undefined | ||
: packet.data.buffer || packet.data; | ||
: packet.data.buffer || packet.data; | ||
@@ -145,3 +145,3 @@ if (!supportsBinary) { | ||
// String data | ||
if (typeof data == 'string' || data === undefined) { | ||
if (typeof data == 'string' || data === undefined) { | ||
if (data.charAt(0) == 'b') { | ||
@@ -171,3 +171,3 @@ return exports.decodeBase64Packet(data.substr(1), binaryType); | ||
} | ||
return { type: packetslist[type], data: intArray.buffer }; | ||
return { type: packetslist[type], data: intArray.buffer }; | ||
} | ||
@@ -228,6 +228,6 @@ var type = data[0]; | ||
function setLengthHeader(message) { | ||
function setLengthHeader(message) { | ||
return message.length + ':' + message; | ||
} | ||
function encodeOne(packet, doneCallback) { | ||
@@ -293,3 +293,3 @@ exports.encodePacket(packet, supportsBinary, function(message) { | ||
var chr = data.charAt(i); | ||
if (':' != chr) { | ||
@@ -399,6 +399,6 @@ length += chr; | ||
var buffers = []; | ||
while (bufferTail.length > 0) { | ||
var strLen = ''; | ||
var isString = bufferTail[0] == 0; | ||
var isString = bufferTail[0] === 0; | ||
for (var i = 1; ; i++) { | ||
@@ -405,0 +405,0 @@ if (bufferTail[i] == 255) break; |
{ | ||
"name": "engine.io-parser", | ||
"description": "Parser for the client for the realtime Engine", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"homepage": "https://github.com/LearnBoost/engine.io-protocol", | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"mocha": "*", | ||
"expect.js": "*" | ||
"expect.js": "*", | ||
"zuul": "1.5.4" | ||
}, | ||
@@ -14,4 +14,8 @@ "dependencies": { | ||
"after": "0.8.1", | ||
"arraybuffer.slice": "0.0.5" | ||
"arraybuffer.slice": "0.0.6", | ||
"blob": "0.0.2" | ||
}, | ||
"scripts": { | ||
"test": "make test" | ||
}, | ||
"component": { | ||
@@ -25,5 +29,5 @@ "scripts": { | ||
"type": "git", | ||
"url": "git@github.com:LearnBoost/engine.io-protocol.git" | ||
"url": "git@github.com:LearnBoost/engine.io-parser.git" | ||
}, | ||
"browser": "./lib/browser.js" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
25862
4
3
798
11
+ Addedblob@0.0.2
+ Addedarraybuffer.slice@0.0.6(transitive)
+ Addedblob@0.0.2(transitive)
- Removedarraybuffer.slice@0.0.5(transitive)
Updatedarraybuffer.slice@0.0.6