hckhanh
what-the-fetch
BlogDocsChangelog

Update `fast-url` dependency to version 6.0.2 to enhance performance

#42Merged
Comparing
optimize-deps
(
84398c0
) with
main
(
b5be69a
)
CodSpeed Performance Gauge
+12%
Improvements
2
Untouched
20
Skipped
157

Benchmarks

Skipped (157)

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 µs198.9 µs
Mixed: prefix with path params and query
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+10%
213.7 µs194.1 µs

Passed

POST request with body
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
123.2 µs120.1 µs
PUT request with @put prefix and params
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+3%
178.6 µs174.1 µs
GET request with shared init
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
145.6 µs142 µs
GET request without options
benchmark/createFetch.bench.ts::createFetch benchmarks
CodSpeed Performance Gauge
+3%
121.1 µs118 µs
GET request without prefix (default)
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+3%
119 µs116.1 µs
GET request with @get prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
126.6 µs123.5 µs
PATCH request with @patch prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
176.4 µs172.2 µs
DELETE request with @delete prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
164.8 µs160.9 µs
POST request with @post prefix
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+2%
145.4 µs142.2 µs
POST request without prefix (smart default with body)
benchmark/createFetch.bench.ts::HTTP method prefix benchmarks
CodSpeed Performance Gauge
+1%
136.2 µs134.6 µs
parse path without prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
15.7 µs15.7 µs
parse path without prefix with params
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
15.8 µs15.8 µs
parse @get without path
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.5 µs19.5 µs
parse @delete prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs19.6 µs
parse case-insensitive @GeT prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs19.7 µs
parse @patch prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
19.7 µs19.7 µs
parse @post prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
20.3 µs20.3 µs
parse @put prefix with params
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
20.3 µs20.3 µs
parse complex path with @post prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
25.5 µs25.4 µs
parse @get prefix
benchmark/parseMethodFromPath.bench.ts::parseMethodFromPath benchmarks
CodSpeed Performance Gauge
0%
31.7 µs31.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