var utils = require('./utils'); var table = ` 1 :authority 2 :method GET 3 :method POST 4 :path / 5 :path /index.html 6 :scheme http 7 :scheme https 8 :status 200 9 :status 204 10 :status 206 11 :status 304 12 :status 400 13 :status 404 14 :status 500 15 accept-charset 16 accept-encoding gzip, deflate 17 accept-language 18 accept-ranges 19 accept 20 access-control-allow-origin 21 age 22 allow 23 authorization 24 cache-control 25 content-disposition 26 content-encoding 27 content-language 28 content-length 29 content-location 30 content-range 31 content-type 32 cookie 33 date 34 etag 35 expect 36 expires 37 from 38 host 39 if-match 40 if-modified-since 41 if-none-match 42 if-range 43 if-unmodified-since 44 last-modified 45 link 46 location 47 max-forwards 48 proxy-authenticate 49 proxy-authorization 50 range 51 referer 52 refresh 53 retry-after 54 server 55 set-cookie 56 strict-transport-security 57 transfer-encoding 58 user-agent 59 vary 60 via 61 www-authenticate `; var out = []; table.split('\n').filter(function(line) { return line; }).forEach(function(line) { var columns = line.split(/\t/g); var name = columns[1]; var value = columns[2]; var nameSize = Buffer.byteLength(name); var valueSize = Buffer.byteLength(value); out.push({ name: name, value: value, nameSize: nameSize, totalSize: nameSize + valueSize + 32 }); }); console.log('exports.table = ' + JSON.stringify(out, false, 2) + ';'); var map = {}; table.split('\n').filter(function(line) { return line; }).forEach(function(line) { var columns = line.split(/\t/g); var name = columns[1]; var value = columns[2]; var index = columns[0] | 0; if (!map[name]) { map[name] = { index: index, values: {} }; } map[name].values[value] = index; }); console.log('exports.map = ' + JSON.stringify(map, false, 2) + ';');