hckhanh
what-the-fetch
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Update `fast-url` dependency to version 6.0.2 to enhance performance
#42
Merged
Comparing
optimize-deps
(
84398c0
) with
main
(
b5be69a
)
CodSpeed Performance Gauge
+12%
Improvements
2
Untouched
20
Skipped
157
Benchmarks
Skipped (157)
Archive selected
These benchmarks were skipped, so their baseline results are used instead. If they were deleted in your codebase, archive them to remove them from the performance reports.
Learn more about archiving benchmarks
Join with separator at end of first part
benchmark/join.bench.ts::join benchmarks::Basic joins
Skipped
16.7 µs
*
Both parts have separator at boundary
benchmark/join.bench.ts::join benchmarks::Basic joins
Skipped
16.9 µs
*
Simple join without separators at boundaries
benchmark/join.bench.ts::join benchmarks::Basic joins
Skipped
25 µs
*
Join with separator at start of second part
benchmark/join.bench.ts::join benchmarks::Basic joins
Skipped
16.3 µs
*
Comma separator
benchmark/join.bench.ts::join benchmarks::Different separators
Skipped
13.6 µs
*
Ampersand separator
benchmark/join.bench.ts::join benchmarks::Different separators
Skipped
13.7 µs
*
Slash separator
benchmark/join.bench.ts::join benchmarks::Different separators
Skipped
13.7 µs
*
Pipe separator
benchmark/join.bench.ts::join benchmarks::Different separators
Skipped
13.6 µs
*
Both parts empty
benchmark/join.bench.ts::join benchmarks::Edge cases
Skipped
12.7 µs
*
First part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
Skipped
13.9 µs
*
Single parameter
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
69.2 µs
*
Medium ASCII string (50 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
Skipped
44.2 µs
*
Second part empty
benchmark/join.bench.ts::join benchmarks::Edge cases
Skipped
14.1 µs
*
Short ASCII string (10 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
Skipped
18 µs
*
4-byte UTF-8 characters (emojis)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
Skipped
22.1 µs
*
Very long ASCII string (1000 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
Skipped
49.5 µs
*
Question mark separator
benchmark/join.bench.ts::join benchmarks::Different separators
Skipped
13.7 µs
*
2-byte UTF-8 characters
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
Skipped
77.4 µs
*
Multiple separators in content
benchmark/join.bench.ts::join benchmarks::Edge cases
Skipped
14.5 µs
*
Join empty first part with query
benchmark/join.bench.ts::join benchmarks::Query string separators
Skipped
14 µs
*
Ten parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
94.7 µs
*
Deep nesting with IDs
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
Skipped
68.2 µs
*
Underscore parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
Skipped
67.5 µs
*
Two parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
70.1 µs
*
Mixed ASCII and Unicode
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
Skipped
25.6 µs
*
3-byte UTF-8 characters (CJK)
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
Skipped
23.5 µs
*
Array of mixed types
benchmark/querystring.bench.ts::stringify benchmarks::Array values
Skipped
50.5 µs
*
Short parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
Skipped
65.8 µs
*
Three parameters (original)
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
78.5 µs
*
Join URL parts both with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
Skipped
16.1 µs
*
Long parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
Skipped
68.2 µs
*
Join URL parts with slash
benchmark/join.bench.ts::join benchmarks::URL path separators
Skipped
15.9 µs
*
REST API resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
Skipped
64.4 µs
*
Join query parts with ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
Skipped
14.8 µs
*
Nested resource path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
Skipped
66.6 µs
*
Versioned API endpoint
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
Skipped
69.1 µs
*
Join URL path with query string
benchmark/join.bench.ts::join benchmarks::Query string separators
Skipped
13.4 µs
*
Large array (50 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
Skipped
1.9 ms
*
CamelCase parameter names
benchmark/subst.bench.ts::subst benchmarks::Parameter name patterns
Skipped
69.3 µs
*
Medium array (10 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
Skipped
79.4 µs
*
Values with special chars
benchmark/subst.bench.ts::subst benchmarks::Special characters
Skipped
66.9 µs
*
Values with spaces
benchmark/subst.bench.ts::subst benchmarks::Special characters
Skipped
63.2 µs
*
Date-based path
benchmark/subst.bench.ts::subst benchmarks::Real-world patterns
Skipped
76.4 µs
*
Multiple arrays
benchmark/querystring.bench.ts::stringify benchmarks::Array values
Skipped
54.4 µs
*
Small array (3 items)
benchmark/querystring.bench.ts::stringify benchmarks::Array values
Skipped
46.6 µs
*
Array values
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
66.6 µs
*
Medium complexity template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
Skipped
67.4 µs
*
Complex multi-level template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
Skipped
76.6 µs
*
Various language scripts
benchmark/querystring.bench.ts::encodeString benchmarks::Unicode and multi-byte characters
Skipped
36 µs
*
Join deep URL paths
benchmark/join.bench.ts::join benchmarks::URL path separators
Skipped
15.9 µs
*
Consecutive parameters
benchmark/subst.bench.ts::subst benchmarks::Template patterns
Skipped
68 µs
*
Simple single-segment template
benchmark/subst.bench.ts::subst benchmarks::Template complexity
Skipped
61.3 µs
*
Join URL with trailing slash
benchmark/join.bench.ts::join benchmarks::URL path separators
Skipped
16.3 µs
*
Unicode in values
benchmark/subst.bench.ts::subst benchmarks::Special characters
Skipped
62.7 µs
*
Null and undefined values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
Skipped
57.8 µs
*
Parameter at beginning
benchmark/subst.bench.ts::subst benchmarks::Template patterns
Skipped
63.2 µs
*
Long parameter values
benchmark/subst.bench.ts::subst benchmarks::Special characters
Skipped
63.9 µs
*
Very deep template (8 levels)
benchmark/subst.bench.ts::subst benchmarks::Template complexity
Skipped
83.2 µs
*
Medium object (10 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
Skipped
30.5 µs
*
BigInt values
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
68.8 µs
*
Parameter at end
benchmark/subst.bench.ts::subst benchmarks::Template patterns
Skipped
64.6 µs
*
Long template with many segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
Skipped
73.3 µs
*
Parameters with static segments
benchmark/subst.bench.ts::subst benchmarks::Template patterns
Skipped
67 µs
*
Deep path with 5 parameters
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
Skipped
118.3 µs
*
Boolean values only
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
61.3 µs
*
Special numeric values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
Skipped
94.7 µs
*
Small object (2 params)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
Skipped
23.9 µs
*
Five parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
68.3 µs
*
Empty string values
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
Skipped
50.8 µs
*
Boolean and number params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
Skipped
113.7 µs
*
Number values only
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
57.5 µs
*
Fifty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
196.1 µs
*
Mixed types
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
71.7 µs
*
Empty object
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
16.6 µs
*
Large object (16 params with arrays)
benchmark/querystring.bench.ts::stringify benchmarks::Comparison scenarios
Skipped
41.9 µs
*
Array in query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
Skipped
83.6 µs
*
String values only
benchmark/query.bench.ts::query benchmarks::Different value types
Skipped
60.5 µs
*
Empty object
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
22.6 µs
*
Path params with special characters
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
Skipped
112.9 µs
*
Long strings with separator
benchmark/join.bench.ts::join benchmarks::Edge cases
Skipped
14.5 µs
*
Complex URL with many params (original test)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
Skipped
182.1 µs
*
Single parameter
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
53.7 µs
*
Empty params object
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
Skipped
26.6 µs
*
Base template only (no path)
benchmark/urlcat.bench.ts::createUrl benchmarks::Edge cases
Skipped
98.6 µs
*
Multiple query params (5 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
Skipped
111 µs
*
Single parameter
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
58.6 µs
*
Twenty parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
99.6 µs
*
Large query string (15 params)
benchmark/urlcat.bench.ts::createUrl benchmarks::Complex cases
Skipped
150.9 µs
*
Search endpoint with filters
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
Skipped
96 µs
*
Ten parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
70.6 µs
*
URL with port number
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
Skipped
99.1 µs
*
Two parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
56 µs
*
REST API endpoint with pagination
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
Skipped
85.9 µs
*
Resource with ID and nested resource
benchmark/urlcat.bench.ts::createUrl benchmarks::Real-world patterns
Skipped
102 µs
*
Single path parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
Skipped
85.1 µs
*
Two path params + two query params
benchmark/urlcat.bench.ts::createUrl benchmarks::Medium complexity
Skipped
112.3 µs
*
Empty arrays
benchmark/querystring.bench.ts::stringify benchmarks::Edge cases
Skipped
46.4 µs
*
Ten parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
70.3 µs
*
Five parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
55.3 µs
*
API query with includes
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
56.9 µs
*
Base URL with trailing slash + path
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
Skipped
31.1 µs
*
Form submission data
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
68.6 µs
*
Concatenate base URL and path only
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
Skipped
77 µs
*
API query with includes
benchmark/query.bench.ts::query benchmarks::Real-world patterns
Skipped
62.6 µs
*
Analytics tracking params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
79 µs
*
Single query parameter
benchmark/urlcat.bench.ts::createUrl benchmarks::Simple cases
Skipped
92.6 µs
*
E-commerce cart params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
62.6 µs
*
Original complex test
benchmark/query.bench.ts::query benchmarks::Real-world patterns
Skipped
85.5 µs
*
Pagination params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
54.3 µs
*
Twenty parameters
benchmark/query.bench.ts::query benchmarks::Parameter count scaling
Skipped
98.7 µs
*
Pagination params
benchmark/query.bench.ts::query benchmarks::Real-world patterns
Skipped
55.6 µs
*
Multi-select filter params
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
57.5 µs
*
All spaces (maximum encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
Skipped
13.8 µs
*
Search with filters
benchmark/querystring.bench.ts::stringify benchmarks::Real-world use cases
Skipped
62.7 µs
*
Two parameters
benchmark/querystring.bench.ts::stringify benchmarks::Parameter count scaling
Skipped
50 µs
*
Keys with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
Skipped
51.6 µs
*
Unicode characters
benchmark/query.bench.ts::query benchmarks::Special characters
Skipped
62.8 µs
*
Values with spaces
benchmark/query.bench.ts::query benchmarks::Special characters
Skipped
53 µs
*
Medium values (20 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
Skipped
52.9 µs
*
Search with filters
benchmark/query.bench.ts::query benchmarks::Real-world patterns
Skipped
69.5 µs
*
Long values (50 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
Skipped
58 µs
*
Medium encoding (common special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
51.2 µs
*
Values with special characters
benchmark/query.bench.ts::query benchmarks::Special characters
Skipped
53.1 µs
*
Pure alphanumeric (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
Skipped
13.9 µs
*
Mixed safe and unsafe (50% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
Skipped
15.7 µs
*
Email address
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
19.9 µs
*
Safe special characters (no encoding needed)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
Skipped
13.6 µs
*
File path with spaces
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
15.2 µs
*
Short values (5 chars)
benchmark/query.bench.ts::query benchmarks::Value length scaling
Skipped
49.6 µs
*
Heavy special characters (75% encoding)
benchmark/querystring.bench.ts::encodeString benchmarks::Character type variations
Skipped
33.6 µs
*
Search query with special chars
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
14.7 µs
*
Heavy encoding (many special chars)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
56.4 µs
*
URL path
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
24.8 µs
*
JSON-like string
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
24 µs
*
Long ASCII string (200 chars)
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
Skipped
22.5 µs
*
SQL-like query
benchmark/querystring.bench.ts::encodeString benchmarks::Real-world patterns
Skipped
15.8 µs
*
Short values (5 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
Skipped
51.9 µs
*
Mixed encoding complexity
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
56.2 µs
*
Light encoding (spaces only)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
51 µs
*
Unicode characters
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
53.5 µs
*
BigInt values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
Skipped
70.3 µs
*
Long values (50 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
Skipped
56.3 µs
*
Medium values (20 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
Skipped
57.8 µs
*
Mixed value types
benchmark/subst.bench.ts::subst benchmarks::Different value types
Skipped
74.4 µs
*
String values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
Skipped
52.3 µs
*
No encoding needed (pure alphanumeric)
benchmark/querystring.bench.ts::stringify benchmarks::Special characters and encoding
Skipped
48.2 µs
*
String values
benchmark/subst.bench.ts::subst benchmarks::Different value types
Skipped
69.3 µs
*
Boolean values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
Skipped
52.1 µs
*
Empty string
benchmark/querystring.bench.ts::encodeString benchmarks::String length scaling
Skipped
22.6 µs
*
Number values
benchmark/subst.bench.ts::subst benchmarks::Different value types
Skipped
69.5 µs
*
Boolean values
benchmark/subst.bench.ts::subst benchmarks::Different value types
Skipped
62.6 µs
*
Very long values (200 chars each)
benchmark/querystring.bench.ts::stringify benchmarks::Value length scaling
Skipped
80.5 µs
*
Five parameters
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
76.1 µs
*
Number values only
benchmark/querystring.bench.ts::stringify benchmarks::Value types
Skipped
57.8 µs
*
Mixed primitive types
benchmark/querystring.bench.ts::stringify benchmarks::Value types
Skipped
77.2 µs
*
Empty template
benchmark/subst.bench.ts::subst benchmarks::Parameter count scaling
Skipped
62.2 µs
*
Join with leading ampersand
benchmark/join.bench.ts::join benchmarks::Query string separators
Skipped
20.7 µs
*
Improved
GET request with params and query
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+12%
223.3 µs
198.9 µs
Mixed: prefix with path params and query
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+10%
213.7 µs
194.1 µs
Passed
POST request with body
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
123.2 µs
120.1 µs
PUT request with @put prefix and params
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+3%
178.6 µs
174.1 µs
GET request with shared init
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
145.6 µs
142 µs
GET request without options
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
121.1 µs
118 µs
GET request without prefix (default)
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+3%
119 µs
116.1 µs
GET request with @get prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
126.6 µs
123.5 µs
PATCH request with @patch prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
176.4 µs
172.2 µs
DELETE request with @delete prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
164.8 µs
160.9 µs
POST request with @post prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
145.4 µs
142.2 µs
POST request without prefix (smart default with body)
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+1%
136.2 µs
134.6 µs
parse path without prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
15.7 µs
15.7 µs
parse path without prefix with params
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
15.8 µs
15.8 µs
parse @get without path
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.5 µs
19.5 µs
parse @delete prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs
19.6 µs
parse case-insensitive @GeT prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs
19.7 µs
parse @patch prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs
19.7 µs
parse @post prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
20.3 µs
20.3 µs
parse @put prefix with params
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
20.3 µs
20.3 µs
parse complex path with @post prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
25.5 µs
25.4 µs
parse @get prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
31.7 µs
31.7 µs
Commits
Click on a commit to change the comparison range
Base
main
b5be69a
+12.23%
Update `fast-url` dependency to version 6.0.2 across project files
b9526ff
2 days ago
by hckhanh
+0.04%
Fix test case to use trailing slash in `fetchMock` URL assertion.
84398c0
2 days ago
by hckhanh
© 2025 CodSpeed Technology
Home
Terms
Privacy
Docs