|
1 | 1 | import {assertValueIsDefined} from '../asserts'; |
2 | 2 | import {getKeys, setReadonlyProperty} from '../object'; |
3 | 3 |
|
4 | | -import type {ApiStatistics, RequestStatistics, StatisticsUnit} from '../../types/internal'; |
| 4 | +import {addRequestStatistics} from './addRequestStatistics'; |
| 5 | + |
| 6 | +import type {ApiStatistics, RequestStatistics} from '../../types/internal'; |
5 | 7 |
|
6 | 8 | /** |
7 | | - * Add additional requests to total API statistics requests. |
| 9 | + * Adds additional requests to total API statistics requests. |
8 | 10 | * @internal |
9 | 11 | */ |
10 | 12 | export const addRequests = ( |
@@ -32,23 +34,7 @@ export const addRequests = ( |
32 | 34 | setReadonlyProperty(targetByMethod, method, targetByStatusCode); |
33 | 35 | } |
34 | 36 |
|
35 | | - for (const statusCode of getKeys(sourceByStatusCode)) { |
36 | | - const sourceUnit: StatisticsUnit | undefined = sourceByStatusCode[statusCode]; |
37 | | - |
38 | | - assertValueIsDefined(sourceUnit, 'sourceUnit is defined', {method, statusCode, url}); |
39 | | - |
40 | | - let targetUnit = targetByStatusCode[statusCode]; |
41 | | - |
42 | | - // eslint-disable-next-line max-depth |
43 | | - if (targetUnit === undefined) { |
44 | | - targetUnit = {count: 0, duration: 0, size: 0}; |
45 | | - setReadonlyProperty(targetByStatusCode, statusCode, targetUnit); |
46 | | - } |
47 | | - |
48 | | - setReadonlyProperty(targetUnit, 'count', targetUnit.count + sourceUnit.count); |
49 | | - setReadonlyProperty(targetUnit, 'duration', targetUnit.duration + sourceUnit.duration); |
50 | | - setReadonlyProperty(targetUnit, 'size', targetUnit.size + sourceUnit.size); |
51 | | - } |
| 37 | + addRequestStatistics(targetByStatusCode, sourceByStatusCode); |
52 | 38 | } |
53 | 39 | } |
54 | 40 | }; |
0 commit comments