104 lines
1.9 KiB
JavaScript
104 lines
1.9 KiB
JavaScript
|
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) + ';');
|