@@ -8,15 +8,15 @@ const queryparams = require('../lib/utils/queryparams')
88
99// Test cases that cover different scenarios
1010const testCases = [
11- '/path' , // No query string
12- '/path?' , // Empty query string
13- '/path?simple=value' , // Single parameter
14- '/path?a=1&b=2&c=3' , // Multiple parameters
15- '/path?arr=1&arr=2&arr=3' , // Array parameters
11+ '/path' , // No query string
12+ '/path?' , // Empty query string
13+ '/path?simple=value' , // Single parameter
14+ '/path?a=1&b=2&c=3' , // Multiple parameters
15+ '/path?arr=1&arr=2&arr=3' , // Array parameters
1616 '/path?complex=val1&simple=val2&arr=1&arr=2' , // Mixed parameters
17- '/path?encoded=%20%21%40%23' , // URL encoded values
18- '/path?empty=&another=value' , // Empty values
19- '/path?dangerous=safe&normal=value' , // Safe parameters with dangerous-sounding names
17+ '/path?encoded=%20%21%40%23' , // URL encoded values
18+ '/path?empty=&another=value' , // Empty values
19+ '/path?dangerous=safe&normal=value' // Safe parameters with dangerous-sounding names
2020]
2121
2222console . log ( 'Micro-benchmarking queryparams performance...\n' )
@@ -33,25 +33,25 @@ for (let i = 0; i < 1000; i++) {
3333testCases . forEach ( ( url , index ) => {
3434 const iterations = 100000
3535 const req = { }
36-
36+
3737 console . log ( `Test ${ index + 1 } : ${ url } ` )
38-
38+
3939 const start = process . hrtime . bigint ( )
40-
40+
4141 for ( let i = 0 ; i < iterations ; i ++ ) {
4242 // Create a fresh req object each time to avoid caching effects
4343 const testReq = { }
4444 queryparams ( testReq , url )
4545 }
46-
46+
4747 const end = process . hrtime . bigint ( )
4848 const totalTime = Number ( end - start )
4949 const avgTime = totalTime / iterations
50-
50+
5151 console . log ( ` ${ iterations . toLocaleString ( ) } iterations` )
5252 console . log ( ` Average: ${ ( avgTime / 1000 ) . toFixed ( 2 ) } µs per operation` )
5353 console . log ( ` Total: ${ ( totalTime / 1000000 ) . toFixed ( 2 ) } ms` )
54-
54+
5555 // Verify the result is correct
5656 queryparams ( req , url )
5757 console . log ( ` Result: path="${ req . path } ", query keys=[${ Object . keys ( req . query ) . join ( ', ' ) } ]` )
@@ -62,7 +62,7 @@ testCases.forEach((url, index) => {
6262console . log ( 'Security verification:' )
6363const securityTests = [
6464 '/test?__proto__=polluted' ,
65- '/test?constructor=dangerous' ,
65+ '/test?constructor=dangerous' ,
6666 '/test?prototype=unsafe' ,
6767 '/test?safe=value&__proto__=attack&normal=ok'
6868]
0 commit comments