1
+ /*!{id:msgpack.js,ver:1.01,license:"MIT",author:"uupaa.js@gmail .com"}*/
1
2
2
3
// === msgpack ===
3
4
// MessagePack -> http://msgpack.sourceforge.net/
4
5
5
6
this . msgpack || ( function ( globalScope ) {
6
7
7
8
globalScope . msgpack = {
8
- pack : msgpackpack , // msgpack.pack(data:Mix):ByteArray
9
+ pack : msgpackpack , // msgpack.pack(data:Mix, toString:Boolean = false):ByteArray/ByteString
10
+ // [1][mix to String] msgpack.pack({}, true) -> "..."
11
+ // [2][mix to ByteArray] msgpack.pack({}) -> [...]
9
12
unpack : msgpackunpack , // msgpack.unpack(data:BinaryString/ByteArray):Mix
13
+ // [1][String to mix] msgpack.unpack("...") -> {}
14
+ // [2][ByteArray to mix] msgpack.unpack([...]) -> {}
10
15
worker : "msgpack.js" , // msgpack.worker - WebWorkers script filename
11
16
upload : msgpackupload , // msgpack.upload(url:String, option:Hash, callback:Function)
12
17
download : msgpackdownload // msgpack.download(url:String, option:Hash, callback:Function)
@@ -31,14 +36,24 @@ self.importScripts && (onmessage = function(event) {
31
36
} ) ;
32
37
33
38
// msgpack.pack
34
- function msgpackpack ( data ) { // @param Mix:
35
- // @return ByteArray:
36
- return encode ( [ ] , data ) ;
39
+ function msgpackpack ( data , // @param Mix:
40
+ toString ) { // @param Boolean(= false):
41
+ // @return ByteArray/BinaryString:
42
+ // [1][mix to String] msgpack.pack({}, true) -> "..."
43
+ // [2][mix to ByteArray] msgpack.pack({}) -> [...]
44
+
45
+ var byteArray = encode ( [ ] , data ) ;
46
+
47
+ return toString ? String . fromCharCode . apply ( null , byteArray ) // toString
48
+ : byteArray ;
37
49
}
38
50
39
51
// msgpack.unpack
40
52
function msgpackunpack ( data ) { // @param BinaryString/ByteArray:
41
53
// @return Mix:
54
+ // [1][String to mix] msgpack.unpack("...") -> {}
55
+ // [2][ByteArray to mix] msgpack.unpack([...]) -> {}
56
+
42
57
return { data : typeof data === "string" ? toByteArray ( data )
43
58
: data ,
44
59
index : - 1 , decode : decode } . decode ( ) ;
0 commit comments