@@ -11,13 +11,15 @@ const { values } = parseArgs({
1111 'performance-fn' : { type : 'string' , multiple : true } ,
1212 memory : { type : 'boolean' } ,
1313 'memory-realtime' : { type : 'boolean' } ,
14+ duration : { type : 'boolean' } ,
1415 } ,
1516} ) ;
1617
1718const timerifyOnlyFnName = values [ 'performance-fn' ] ;
1819const isMemoryRealtime = ! ! values [ 'memory-realtime' ] ;
1920const isTimerifyFunctions = ! ! values . performance || ! ! timerifyOnlyFnName ;
2021const isMemoryUsageEnabled = ! ! values . memory || isMemoryRealtime ;
22+ const isDurationEnabled = ! ! values . duration ;
2123
2224export const timerify = < T extends ( ...params : any [ ] ) => any > ( fn : T , name : string = fn . name ) : T => {
2325 if ( ! isTimerifyFunctions ) return fn ;
@@ -56,6 +58,7 @@ class Performance {
5658 isEnabled : boolean ;
5759 isTimerifyFunctions : boolean ;
5860 isMemoryUsageEnabled : boolean ;
61+ isDurationEnabled : boolean ;
5962 startTime = 0 ;
6063 endTime = 0 ;
6164 perfEntries : PerformanceEntry [ ] = [ ] ;
@@ -65,10 +68,11 @@ class Performance {
6568 fnObserver ?: PerformanceObserver ;
6669 memObserver ?: PerformanceObserver ;
6770
68- constructor ( { isTimerifyFunctions = false , isMemoryUsageEnabled = false } ) {
71+ constructor ( { isTimerifyFunctions = false , isMemoryUsageEnabled = false , isDurationEnabled = false } ) {
6972 this . isEnabled = isTimerifyFunctions || isMemoryUsageEnabled ;
7073 this . isTimerifyFunctions = isTimerifyFunctions ;
7174 this . isMemoryUsageEnabled = isMemoryUsageEnabled ;
75+ this . isDurationEnabled = isDurationEnabled ;
7276
7377 this . startTime = performance . now ( ) ;
7478 const instanceId = Math . floor ( performance . now ( ) * 100 ) ;
@@ -206,4 +210,4 @@ class Performance {
206210 }
207211}
208212
209- export const perfObserver = new Performance ( { isTimerifyFunctions, isMemoryUsageEnabled } ) ;
213+ export const perfObserver = new Performance ( { isTimerifyFunctions, isMemoryUsageEnabled, isDurationEnabled } ) ;
0 commit comments