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) + ';');
 |