You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
1.9 KiB
103 lines
1.9 KiB
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) + ';');
|
|
|