hckhanh
vn-number
BlogDocsChangelog

Modularize `readVnNumber` function instead of using classes

#43Merged
Comparing
optimized
(
c603fc2
) with
main
(
239c79a
)
CodSpeed Performance Gauge
-85%
Improvements
20
Regressions
1
Untouched
43

Benchmarks

Failed

read 50 product quantities (1-100)
src/read/index.bench.ts::readVnNumber - realistic batch operations
Regression
CodSpeed Performance Gauge
-85%
566.3 µs3,814.3 µs

Improved

formatVnNumber with different input types
src/format/number.bench.ts::input type variations - real-world scenarios
CodSpeed Performance Gauge
×9.5
429.2 µs45.4 µs
number input (typical price)
src/read/index.bench.ts::readVnNumber - input type variations
CodSpeed Performance Gauge
×4.3
169.5 µs39.5 µs
bigint input (large transaction)
src/read/index.bench.ts::readVnNumber - input type variations
CodSpeed Performance Gauge
×4
174 µs43.3 µs
read 50 e-commerce prices (10k-50M VND)
src/read/index.bench.ts::readVnNumber - realistic batch operations
CodSpeed Performance Gauge
×3.8
1,409.9 µs369 µs
display payment receipt (typical transaction)
src/read/index.bench.ts::readVnNumber - real-world application scenarios
CodSpeed Performance Gauge
×3.8
193 µs50.9 µs
string input (from API/form)
src/read/index.bench.ts::readVnNumber - input type variations
CodSpeed Performance Gauge
×3.5
172 µs49.3 µs
annual revenue (2,500,000,000 VND)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
×3.4
183 µs53.8 µs
large contract value (15,000,000,000 VND)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
×3.4
167.3 µs49.4 µs
transaction amount (19,990,000 VND)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
×3.4
177.9 µs53 µs
invoice total (5,450,000 VND)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
×3
171.5 µs57.8 µs
display invoice line items (10 items)
src/read/index.bench.ts::readVnNumber - real-world application scenarios
CodSpeed Performance Gauge
×2.8
519.1 µs183.7 µs
read 50 financial amounts (1M-10B VND)
src/read/index.bench.ts::readVnNumber - realistic batch operations
CodSpeed Performance Gauge
×2.5
1,182 µs465.4 µs
display shopping cart (5 items with quantities)
src/read/index.bench.ts::readVnNumber - real-world application scenarios
CodSpeed Performance Gauge
×2.5
299.9 µs120 µs
read 50 invoice totals (100k-100M VND)
src/read/index.bench.ts::readVnNumber - realistic batch operations
CodSpeed Performance Gauge
×2.5
903.6 µs362.6 µs
display product catalog (20 products)
src/read/index.bench.ts::readVnNumber - real-world application scenarios
CodSpeed Performance Gauge
×2.5
739.1 µs298.6 µs
mixed input types in data processing (30 values)
src/read/index.bench.ts::readVnNumber - input type variations
CodSpeed Performance Gauge
×2.4
659.2 µs272.4 µs
display financial dashboard (20 metrics)
src/read/index.bench.ts::readVnNumber - real-world application scenarios
CodSpeed Performance Gauge
×2.3
468 µs204 µs
typical product price (199,000 VND)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
×2.1
132.9 µs64.7 µs
product quantity (5 items)
src/read/index.bench.ts::readVnNumber - typical usage scenarios
CodSpeed Performance Gauge
+29%
86 µs66.7 µs
format order count (1,234)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
+11%
31.7 µs28.6 µs

Passed

format 50 growth rates (-50% to +150%)
src/format/number.bench.ts::formatVnPercent - realistic batch operations
CodSpeed Performance Gauge
+1%
142.4 µs141.5 µs
format 50 financial amounts (1M-10B VND)
src/format/number.bench.ts::formatVnCurrency - realistic batch operations
CodSpeed Performance Gauge
0%
166.1 µs165.7 µs
format 50 e-commerce prices (10k-50M VND)
src/format/number.bench.ts::formatVnCurrency - realistic batch operations
CodSpeed Performance Gauge
0%
155 µs155.2 µs
display invoice (10 line items)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
109.7 µs110 µs
display shopping cart (5 items)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
111.6 µs111.9 µs
format 50 completion rates (0-100%)
src/format/number.bench.ts::formatVnPercent - realistic batch operations
CodSpeed Performance Gauge
0%
142.6 µs143.1 µs
display sales report (monthly performance)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
217.2 µs218 µs
format 50 product quantities
src/format/number.bench.ts::formatVnNumber - realistic batch operations
CodSpeed Performance Gauge
0%
129.6 µs130.1 µs
formatVnCurrency with different input types
src/format/number.bench.ts::input type variations - real-world scenarios
CodSpeed Performance Gauge
0%
47.7 µs47.9 µs
display financial dashboard (weekly metrics)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
147.8 µs148.4 µs
format 50 conversion rates (0-10%)
src/format/number.bench.ts::formatVnPercent - realistic batch operations
CodSpeed Performance Gauge
0%
142.3 µs142.9 µs
display product catalog (20 products)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
305.4 µs306.7 µs
display payment summary
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
0%
42.2 µs42.4 µs
display e-commerce product card
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
-1%
38 µs38.2 µs
format typical product price (199,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
29.7 µs29.9 µs
format small price (15,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
29.5 µs29.8 µs
format monthly revenue (125,000,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
27.8 µs28 µs
format large contract (15,000,000,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
28 µs28.3 µs
format conversion rate (2.5%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.4 µs28.7 µs
format transaction amount (19,990,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
33.5 µs33.8 µs
format discount rate (15%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.5 µs28.8 µs
format total sales (125,678)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.4 µs28.7 µs
format negative change (-10%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.1 µs28.4 µs
format annual budget (2,500,000,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
27.9 µs28.2 µs
format 50 invoice totals (100k-100M VND)
src/format/number.bench.ts::formatVnCurrency - realistic batch operations
CodSpeed Performance Gauge
-1%
153 µs154.7 µs
format decimal amount (199,000.50 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
29.9 µs30.3 µs
display data table (50 rows × 6 columns)
src/format/number.bench.ts::real-world application scenarios
CodSpeed Performance Gauge
-1%
663.3 µs671 µs
format decimal value (12,345.67)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
-1%
29.4 µs29.7 µs
format user count (5,432,100)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.5 µs28.8 µs
format interest rate (5.5%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.4 µs28.7 µs
format invoice total (5,450,000 VND)
src/format/number.bench.ts::formatVnCurrency - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.9 µs29.2 µs
format negative value (-5,432)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
-1%
28.4 µs28.8 µs
format over target (125%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
27.9 µs28.3 µs
format growth rate (25%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-1%
27.9 µs28.3 µs
format small percentage (0.5%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-2%
28.4 µs28.8 µs
format completion rate (75%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-2%
27.9 µs28.3 µs
format full completion (100%)
src/format/number.bench.ts::formatVnPercent - typical usage scenarios
CodSpeed Performance Gauge
-2%
27.1 µs27.5 µs
format product quantity (15)
src/format/number.bench.ts::formatVnNumber - typical usage scenarios
CodSpeed Performance Gauge
-2%
36.3 µs36.9 µs
formatVnPercent with different input types
src/format/number.bench.ts::input type variations - real-world scenarios
CodSpeed Performance Gauge
-3%
42.2 µs43.7 µs
mixed input types in data processing (30 values)
src/format/number.bench.ts::input type variations - real-world scenarios
CodSpeed Performance Gauge
-4%
133.3 µs139 µs
format all three types together (typical dashboard row)
src/format/number.bench.ts::combined operations - real-world scenarios
CodSpeed Performance Gauge
-4%
34.4 µs35.9 µs
format 50 order counts
src/format/number.bench.ts::formatVnNumber - realistic batch operations
CodSpeed Performance Gauge
-5%
534.4 µs561.7 µs
format complete product listing (30 products)
src/format/number.bench.ts::combined operations - real-world scenarios
CodSpeed Performance Gauge
-7%
244.2 µs261.9 µs

Commits

Click on a commit to change the comparison range
Base
main
239c79a
-83.52%
Simplify `formatNumber` logic Refactored `formatNumber` to reduce redundancy and improve readability. Combined conditions to streamline the implementation and adjusted handling of null and string inputs. Updated fallback behavior to maintain correctness and consistency. test(config): refine Vitest exclusions Added specific exclusions for `src/index.ts` and `src/format/index.ts` in both test and coverage settings. Improves test accuracy by omitting irrelevant files from coverage metrics.
937cc3d
11 days ago
by hckhanh
0%
Add Changeset
5cf890a
11 days ago
by hckhanh
-1.59%
Split Vietnamese number reading logic Refactored number reading logic by introducing separate functions for first and subsequent groups, improving modularity and readability. Removed redundant logic and reorganized code for better maintainability.
418c0e9
11 days ago
by hckhanh
-0.03%
[autofix.ci] apply automated fixes
685592c
11 days ago
by autofix-ci[bot]
-0.01%
Add tests for more number formats Added support for BigInt values in number formatting tests, ensuring compatibility across formats. Introduced comprehensive test cases for Vietnamese number reading, covering edge cases, groups, and suffix handling for enhanced accuracy and reliability.
5064e34
11 days ago
by hckhanh
+0.01%
[autofix.ci] apply automated fixes
c603fc2
11 days ago
by autofix-ci[bot]
© 2025 CodSpeed Technology
Home Terms Privacy Docs