Save current BZZZ config-ui state before CHORUS branding update
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										149
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-fields-100mb-big.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-fields-100mb-big.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function createMultipartBuffers(boundary, sizes) { | ||||
|   const bufs = []; | ||||
|   for (let i = 0; i < sizes.length; ++i) { | ||||
|     const mb = sizes[i] * 1024 * 1024; | ||||
|     bufs.push(Buffer.from([ | ||||
|       `--${boundary}`, | ||||
|       `content-disposition: form-data; name="field${i + 1}"`, | ||||
|       '', | ||||
|       '0'.repeat(mb), | ||||
|       '', | ||||
|     ].join('\r\n'))); | ||||
|   } | ||||
|   bufs.push(Buffer.from([ | ||||
|     `--${boundary}--`, | ||||
|     '', | ||||
|   ].join('\r\n'))); | ||||
|   return bufs; | ||||
| } | ||||
|  | ||||
| const boundary = '-----------------------------168072824752491622650073'; | ||||
| const buffers = createMultipartBuffers(boundary, [ | ||||
|   10, | ||||
|   10, | ||||
|   10, | ||||
|   20, | ||||
|   50, | ||||
| ]); | ||||
| const calls = { | ||||
|   partBegin: 0, | ||||
|   headerField: 0, | ||||
|   headerValue: 0, | ||||
|   headerEnd: 0, | ||||
|   headersEnd: 0, | ||||
|   partData: 0, | ||||
|   partEnd: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     const parser = busboy({ | ||||
|       limits: { | ||||
|         fieldSizeLimit: Infinity, | ||||
|       }, | ||||
|       headers: { | ||||
|         'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|       }, | ||||
|     }); | ||||
|     parser.on('field', (name, val, info) => { | ||||
|       ++calls.partBegin; | ||||
|       ++calls.partData; | ||||
|       ++calls.partEnd; | ||||
|     }).on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const { MultipartParser } = require('formidable'); | ||||
|  | ||||
|     const parser = new MultipartParser(); | ||||
|     parser.initWithBoundary(boundary); | ||||
|     parser.on('data', ({ name }) => { | ||||
|       ++calls[name]; | ||||
|       if (name === 'end') | ||||
|         console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'multiparty': { | ||||
|     const { Readable } = require('stream'); | ||||
|  | ||||
|     const { Form } = require('multiparty'); | ||||
|  | ||||
|     const form = new Form({ | ||||
|       maxFieldsSize: Infinity, | ||||
|       maxFields: Infinity, | ||||
|       maxFilesSize: Infinity, | ||||
|       autoFields: false, | ||||
|       autoFiles: false, | ||||
|     }); | ||||
|  | ||||
|     const req = new Readable({ read: () => {} }); | ||||
|     req.headers = { | ||||
|       'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|     }; | ||||
|  | ||||
|     function hijack(name, fn) { | ||||
|       const oldFn = form[name]; | ||||
|       form[name] = function() { | ||||
|         fn(); | ||||
|         return oldFn.apply(this, arguments); | ||||
|       }; | ||||
|     } | ||||
|  | ||||
|     hijack('onParseHeaderField', () => { | ||||
|       ++calls.headerField; | ||||
|     }); | ||||
|     hijack('onParseHeaderValue', () => { | ||||
|       ++calls.headerValue; | ||||
|     }); | ||||
|     hijack('onParsePartBegin', () => { | ||||
|       ++calls.partBegin; | ||||
|     }); | ||||
|     hijack('onParsePartData', () => { | ||||
|       ++calls.partData; | ||||
|     }); | ||||
|     hijack('onParsePartEnd', () => { | ||||
|       ++calls.partEnd; | ||||
|     }); | ||||
|  | ||||
|     form.on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }).on('part', (p) => p.resume()); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     form.parse(req); | ||||
|     for (const buf of buffers) | ||||
|       req.push(buf); | ||||
|     req.push(null); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
							
								
								
									
										143
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-fields-100mb-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-fields-100mb-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,143 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function createMultipartBuffers(boundary, sizes) { | ||||
|   const bufs = []; | ||||
|   for (let i = 0; i < sizes.length; ++i) { | ||||
|     const mb = sizes[i] * 1024 * 1024; | ||||
|     bufs.push(Buffer.from([ | ||||
|       `--${boundary}`, | ||||
|       `content-disposition: form-data; name="field${i + 1}"`, | ||||
|       '', | ||||
|       '0'.repeat(mb), | ||||
|       '', | ||||
|     ].join('\r\n'))); | ||||
|   } | ||||
|   bufs.push(Buffer.from([ | ||||
|     `--${boundary}--`, | ||||
|     '', | ||||
|   ].join('\r\n'))); | ||||
|   return bufs; | ||||
| } | ||||
|  | ||||
| const boundary = '-----------------------------168072824752491622650073'; | ||||
| const buffers = createMultipartBuffers(boundary, (new Array(100)).fill(1)); | ||||
| const calls = { | ||||
|   partBegin: 0, | ||||
|   headerField: 0, | ||||
|   headerValue: 0, | ||||
|   headerEnd: 0, | ||||
|   headersEnd: 0, | ||||
|   partData: 0, | ||||
|   partEnd: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     const parser = busboy({ | ||||
|       limits: { | ||||
|         fieldSizeLimit: Infinity, | ||||
|       }, | ||||
|       headers: { | ||||
|         'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|       }, | ||||
|     }); | ||||
|     parser.on('field', (name, val, info) => { | ||||
|       ++calls.partBegin; | ||||
|       ++calls.partData; | ||||
|       ++calls.partEnd; | ||||
|     }).on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const { MultipartParser } = require('formidable'); | ||||
|  | ||||
|     const parser = new MultipartParser(); | ||||
|     parser.initWithBoundary(boundary); | ||||
|     parser.on('data', ({ name }) => { | ||||
|       ++calls[name]; | ||||
|       if (name === 'end') | ||||
|         console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'multiparty': { | ||||
|     const { Readable } = require('stream'); | ||||
|  | ||||
|     const { Form } = require('multiparty'); | ||||
|  | ||||
|     const form = new Form({ | ||||
|       maxFieldsSize: Infinity, | ||||
|       maxFields: Infinity, | ||||
|       maxFilesSize: Infinity, | ||||
|       autoFields: false, | ||||
|       autoFiles: false, | ||||
|     }); | ||||
|  | ||||
|     const req = new Readable({ read: () => {} }); | ||||
|     req.headers = { | ||||
|       'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|     }; | ||||
|  | ||||
|     function hijack(name, fn) { | ||||
|       const oldFn = form[name]; | ||||
|       form[name] = function() { | ||||
|         fn(); | ||||
|         return oldFn.apply(this, arguments); | ||||
|       }; | ||||
|     } | ||||
|  | ||||
|     hijack('onParseHeaderField', () => { | ||||
|       ++calls.headerField; | ||||
|     }); | ||||
|     hijack('onParseHeaderValue', () => { | ||||
|       ++calls.headerValue; | ||||
|     }); | ||||
|     hijack('onParsePartBegin', () => { | ||||
|       ++calls.partBegin; | ||||
|     }); | ||||
|     hijack('onParsePartData', () => { | ||||
|       ++calls.partData; | ||||
|     }); | ||||
|     hijack('onParsePartEnd', () => { | ||||
|       ++calls.partEnd; | ||||
|     }); | ||||
|  | ||||
|     form.on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }).on('part', (p) => p.resume()); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     form.parse(req); | ||||
|     for (const buf of buffers) | ||||
|       req.push(buf); | ||||
|     req.push(null); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
							
								
								
									
										154
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-files-100mb-big.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-files-100mb-big.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function createMultipartBuffers(boundary, sizes) { | ||||
|   const bufs = []; | ||||
|   for (let i = 0; i < sizes.length; ++i) { | ||||
|     const mb = sizes[i] * 1024 * 1024; | ||||
|     bufs.push(Buffer.from([ | ||||
|       `--${boundary}`, | ||||
|       `content-disposition: form-data; name="file${i + 1}"; ` | ||||
|         + `filename="random${i + 1}.bin"`, | ||||
|       'content-type: application/octet-stream', | ||||
|       '', | ||||
|       '0'.repeat(mb), | ||||
|       '', | ||||
|     ].join('\r\n'))); | ||||
|   } | ||||
|   bufs.push(Buffer.from([ | ||||
|     `--${boundary}--`, | ||||
|     '', | ||||
|   ].join('\r\n'))); | ||||
|   return bufs; | ||||
| } | ||||
|  | ||||
| const boundary = '-----------------------------168072824752491622650073'; | ||||
| const buffers = createMultipartBuffers(boundary, [ | ||||
|   10, | ||||
|   10, | ||||
|   10, | ||||
|   20, | ||||
|   50, | ||||
| ]); | ||||
| const calls = { | ||||
|   partBegin: 0, | ||||
|   headerField: 0, | ||||
|   headerValue: 0, | ||||
|   headerEnd: 0, | ||||
|   headersEnd: 0, | ||||
|   partData: 0, | ||||
|   partEnd: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     const parser = busboy({ | ||||
|       limits: { | ||||
|         fieldSizeLimit: Infinity, | ||||
|       }, | ||||
|       headers: { | ||||
|         'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|       }, | ||||
|     }); | ||||
|     parser.on('file', (name, stream, info) => { | ||||
|       ++calls.partBegin; | ||||
|       stream.on('data', (chunk) => { | ||||
|         ++calls.partData; | ||||
|       }).on('end', () => { | ||||
|         ++calls.partEnd; | ||||
|       }); | ||||
|     }).on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const { MultipartParser } = require('formidable'); | ||||
|  | ||||
|     const parser = new MultipartParser(); | ||||
|     parser.initWithBoundary(boundary); | ||||
|     parser.on('data', ({ name }) => { | ||||
|       ++calls[name]; | ||||
|       if (name === 'end') | ||||
|         console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'multiparty': { | ||||
|     const { Readable } = require('stream'); | ||||
|  | ||||
|     const { Form } = require('multiparty'); | ||||
|  | ||||
|     const form = new Form({ | ||||
|       maxFieldsSize: Infinity, | ||||
|       maxFields: Infinity, | ||||
|       maxFilesSize: Infinity, | ||||
|       autoFields: false, | ||||
|       autoFiles: false, | ||||
|     }); | ||||
|  | ||||
|     const req = new Readable({ read: () => {} }); | ||||
|     req.headers = { | ||||
|       'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|     }; | ||||
|  | ||||
|     function hijack(name, fn) { | ||||
|       const oldFn = form[name]; | ||||
|       form[name] = function() { | ||||
|         fn(); | ||||
|         return oldFn.apply(this, arguments); | ||||
|       }; | ||||
|     } | ||||
|  | ||||
|     hijack('onParseHeaderField', () => { | ||||
|       ++calls.headerField; | ||||
|     }); | ||||
|     hijack('onParseHeaderValue', () => { | ||||
|       ++calls.headerValue; | ||||
|     }); | ||||
|     hijack('onParsePartBegin', () => { | ||||
|       ++calls.partBegin; | ||||
|     }); | ||||
|     hijack('onParsePartData', () => { | ||||
|       ++calls.partData; | ||||
|     }); | ||||
|     hijack('onParsePartEnd', () => { | ||||
|       ++calls.partEnd; | ||||
|     }); | ||||
|  | ||||
|     form.on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }).on('part', (p) => p.resume()); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     form.parse(req); | ||||
|     for (const buf of buffers) | ||||
|       req.push(buf); | ||||
|     req.push(null); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
							
								
								
									
										148
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-files-100mb-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								install/config-ui/node_modules/busboy/bench/bench-multipart-files-100mb-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function createMultipartBuffers(boundary, sizes) { | ||||
|   const bufs = []; | ||||
|   for (let i = 0; i < sizes.length; ++i) { | ||||
|     const mb = sizes[i] * 1024 * 1024; | ||||
|     bufs.push(Buffer.from([ | ||||
|       `--${boundary}`, | ||||
|       `content-disposition: form-data; name="file${i + 1}"; ` | ||||
|         + `filename="random${i + 1}.bin"`, | ||||
|       'content-type: application/octet-stream', | ||||
|       '', | ||||
|       '0'.repeat(mb), | ||||
|       '', | ||||
|     ].join('\r\n'))); | ||||
|   } | ||||
|   bufs.push(Buffer.from([ | ||||
|     `--${boundary}--`, | ||||
|     '', | ||||
|   ].join('\r\n'))); | ||||
|   return bufs; | ||||
| } | ||||
|  | ||||
| const boundary = '-----------------------------168072824752491622650073'; | ||||
| const buffers = createMultipartBuffers(boundary, (new Array(100)).fill(1)); | ||||
| const calls = { | ||||
|   partBegin: 0, | ||||
|   headerField: 0, | ||||
|   headerValue: 0, | ||||
|   headerEnd: 0, | ||||
|   headersEnd: 0, | ||||
|   partData: 0, | ||||
|   partEnd: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     const parser = busboy({ | ||||
|       limits: { | ||||
|         fieldSizeLimit: Infinity, | ||||
|       }, | ||||
|       headers: { | ||||
|         'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|       }, | ||||
|     }); | ||||
|     parser.on('file', (name, stream, info) => { | ||||
|       ++calls.partBegin; | ||||
|       stream.on('data', (chunk) => { | ||||
|         ++calls.partData; | ||||
|       }).on('end', () => { | ||||
|         ++calls.partEnd; | ||||
|       }); | ||||
|     }).on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const { MultipartParser } = require('formidable'); | ||||
|  | ||||
|     const parser = new MultipartParser(); | ||||
|     parser.initWithBoundary(boundary); | ||||
|     parser.on('data', ({ name }) => { | ||||
|       ++calls[name]; | ||||
|       if (name === 'end') | ||||
|         console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'multiparty': { | ||||
|     const { Readable } = require('stream'); | ||||
|  | ||||
|     const { Form } = require('multiparty'); | ||||
|  | ||||
|     const form = new Form({ | ||||
|       maxFieldsSize: Infinity, | ||||
|       maxFields: Infinity, | ||||
|       maxFilesSize: Infinity, | ||||
|       autoFields: false, | ||||
|       autoFiles: false, | ||||
|     }); | ||||
|  | ||||
|     const req = new Readable({ read: () => {} }); | ||||
|     req.headers = { | ||||
|       'content-type': `multipart/form-data; boundary=${boundary}`, | ||||
|     }; | ||||
|  | ||||
|     function hijack(name, fn) { | ||||
|       const oldFn = form[name]; | ||||
|       form[name] = function() { | ||||
|         fn(); | ||||
|         return oldFn.apply(this, arguments); | ||||
|       }; | ||||
|     } | ||||
|  | ||||
|     hijack('onParseHeaderField', () => { | ||||
|       ++calls.headerField; | ||||
|     }); | ||||
|     hijack('onParseHeaderValue', () => { | ||||
|       ++calls.headerValue; | ||||
|     }); | ||||
|     hijack('onParsePartBegin', () => { | ||||
|       ++calls.partBegin; | ||||
|     }); | ||||
|     hijack('onParsePartData', () => { | ||||
|       ++calls.partData; | ||||
|     }); | ||||
|     hijack('onParsePartEnd', () => { | ||||
|       ++calls.partEnd; | ||||
|     }); | ||||
|  | ||||
|     form.on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }).on('part', (p) => p.resume()); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     form.parse(req); | ||||
|     for (const buf of buffers) | ||||
|       req.push(buf); | ||||
|     req.push(null); | ||||
|  | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
							
								
								
									
										101
									
								
								install/config-ui/node_modules/busboy/bench/bench-urlencoded-fields-100pairs-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								install/config-ui/node_modules/busboy/bench/bench-urlencoded-fields-100pairs-small.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| const buffers = [ | ||||
|   Buffer.from( | ||||
|     (new Array(100)).fill('').map((_, i) => `key${i}=value${i}`).join('&') | ||||
|   ), | ||||
| ]; | ||||
| const calls = { | ||||
|   field: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| let n = 3e3; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     (function next() { | ||||
|       const parser = busboy({ | ||||
|         limits: { | ||||
|           fieldSizeLimit: Infinity, | ||||
|         }, | ||||
|         headers: { | ||||
|           'content-type': 'application/x-www-form-urlencoded; charset=utf-8', | ||||
|         }, | ||||
|       }); | ||||
|       parser.on('field', (name, val, info) => { | ||||
|         ++calls.field; | ||||
|       }).on('close', () => { | ||||
|         ++calls.end; | ||||
|         if (--n === 0) | ||||
|           console.timeEnd(moduleName); | ||||
|         else | ||||
|           process.nextTick(next); | ||||
|       }); | ||||
|  | ||||
|       for (const buf of buffers) | ||||
|         parser.write(buf); | ||||
|       parser.end(); | ||||
|     })(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const QuerystringParser = | ||||
|       require('formidable/src/parsers/Querystring.js'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     (function next() { | ||||
|       const parser = new QuerystringParser(); | ||||
|       parser.on('data', (obj) => { | ||||
|         ++calls.field; | ||||
|       }).on('end', () => { | ||||
|         ++calls.end; | ||||
|         if (--n === 0) | ||||
|           console.timeEnd(moduleName); | ||||
|         else | ||||
|           process.nextTick(next); | ||||
|       }); | ||||
|  | ||||
|       for (const buf of buffers) | ||||
|         parser.write(buf); | ||||
|       parser.end(); | ||||
|     })(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable-streaming': { | ||||
|     const QuerystringParser = | ||||
|       require('formidable/src/parsers/StreamingQuerystring.js'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     (function next() { | ||||
|       const parser = new QuerystringParser(); | ||||
|       parser.on('data', (obj) => { | ||||
|         ++calls.field; | ||||
|       }).on('end', () => { | ||||
|         ++calls.end; | ||||
|         if (--n === 0) | ||||
|           console.timeEnd(moduleName); | ||||
|         else | ||||
|           process.nextTick(next); | ||||
|       }); | ||||
|  | ||||
|       for (const buf of buffers) | ||||
|         parser.write(buf); | ||||
|       parser.end(); | ||||
|     })(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
							
								
								
									
										84
									
								
								install/config-ui/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								install/config-ui/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| const buffers = [ | ||||
|   Buffer.from( | ||||
|     (new Array(900)).fill('').map((_, i) => `key${i}=value${i}`).join('&') | ||||
|   ), | ||||
| ]; | ||||
| const calls = { | ||||
|   field: 0, | ||||
|   end: 0, | ||||
| }; | ||||
|  | ||||
| const moduleName = process.argv[2]; | ||||
| switch (moduleName) { | ||||
|   case 'busboy': { | ||||
|     const busboy = require('busboy'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     const parser = busboy({ | ||||
|       limits: { | ||||
|         fieldSizeLimit: Infinity, | ||||
|       }, | ||||
|       headers: { | ||||
|         'content-type': 'application/x-www-form-urlencoded; charset=utf-8', | ||||
|       }, | ||||
|     }); | ||||
|     parser.on('field', (name, val, info) => { | ||||
|       ++calls.field; | ||||
|     }).on('close', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     parser.end(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable': { | ||||
|     const QuerystringParser = | ||||
|       require('formidable/src/parsers/Querystring.js'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     const parser = new QuerystringParser(); | ||||
|     parser.on('data', (obj) => { | ||||
|       ++calls.field; | ||||
|     }).on('end', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     parser.end(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   case 'formidable-streaming': { | ||||
|     const QuerystringParser = | ||||
|       require('formidable/src/parsers/StreamingQuerystring.js'); | ||||
|  | ||||
|     console.time(moduleName); | ||||
|     const parser = new QuerystringParser(); | ||||
|     parser.on('data', (obj) => { | ||||
|       ++calls.field; | ||||
|     }).on('end', () => { | ||||
|       ++calls.end; | ||||
|       console.timeEnd(moduleName); | ||||
|     }); | ||||
|  | ||||
|     for (const buf of buffers) | ||||
|       parser.write(buf); | ||||
|     parser.end(); | ||||
|     break; | ||||
|   } | ||||
|  | ||||
|   default: | ||||
|     if (moduleName === undefined) | ||||
|       console.error('Missing parser module name'); | ||||
|     else | ||||
|       console.error(`Invalid parser module name: ${moduleName}`); | ||||
|     process.exit(1); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins