summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2016-06-29 23:20:06 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2016-09-23 18:51:47 +0200
commit782620f03ffcaa5be9e84f8f15a638cb7c03e464 (patch)
treee1eef1626561518a5e8afd151281146a4706de9a /tools
parenta8d2c9d7750f05ae78b6b6b8de3c3161c7f6270e (diff)
downloadandroid-node-v8-782620f03ffcaa5be9e84f8f15a638cb7c03e464.tar.gz
android-node-v8-782620f03ffcaa5be9e84f8f15a638cb7c03e464.tar.bz2
android-node-v8-782620f03ffcaa5be9e84f8f15a638cb7c03e464.zip
src: add /json/protocol endpoint to inspector
Embed the compressed and minified protocol.json from the bundled v8_inspector and make it available through the /json/protocol endpoint. Refs: https://github.com/nodejs/diagnostics/issues/52 PR-URL: https://github.com/nodejs/node/pull/7491 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/compress_json.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/compress_json.py b/tools/compress_json.py
new file mode 100644
index 0000000000..34dbb878c4
--- /dev/null
+++ b/tools/compress_json.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+
+import json
+import struct
+import sys
+import zlib
+
+if __name__ == '__main__':
+ fp = open(sys.argv[1])
+ obj = json.load(fp)
+ text = json.dumps(obj, separators=(',', ':'))
+ data = zlib.compress(text, zlib.Z_BEST_COMPRESSION)
+
+ # To make decompression a little easier, we prepend the compressed data
+ # with the size of the uncompressed data as a 24 bits BE unsigned integer.
+ assert len(text) < 1 << 24, 'Uncompressed JSON must be < 16 MB.'
+ data = struct.pack('>I', len(text))[1:4] + data
+
+ step = 20
+ slices = (data[i:i+step] for i in xrange(0, len(data), step))
+ slices = map(lambda s: ','.join(str(ord(c)) for c in s), slices)
+ text = ',\n'.join(slices)
+
+ fp = open(sys.argv[2], 'w')
+ fp.write(text)