diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2016-06-29 23:20:06 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2016-09-23 18:51:47 +0200 |
commit | 782620f03ffcaa5be9e84f8f15a638cb7c03e464 (patch) | |
tree | e1eef1626561518a5e8afd151281146a4706de9a /tools/compress_json.py | |
parent | a8d2c9d7750f05ae78b6b6b8de3c3161c7f6270e (diff) | |
download | node-new-782620f03ffcaa5be9e84f8f15a638cb7c03e464.tar.gz |
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/compress_json.py')
-rw-r--r-- | tools/compress_json.py | 25 |
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) |