@@ -7,13 +7,16 @@ var pad = function pad(num) {
77 return ( '0' + num ) . slice ( - 2 ) ;
88} ;
99
10+ // Use the new performance api to get better precision if available
11+ var timer = typeof performance !== 'undefined' ? performance : Date ;
12+
1013/**
1114 * Creates logger with followed options
1215 *
1316 * @namespace
14- * @propety {object} options - options for logger
17+ * @property {object } options - options for logger
1518 * @property {string } level - console[level]
16- * @propety {boolean} collapsed - is group collapsed?
19+ * @property {boolean } collapsed - is group collapsed?
1720 * @property {bool } predicate - condition which resolves logger behavior
1821 */
1922
@@ -34,6 +37,8 @@ function createLogger() {
3437 } : _options$transformer ;
3538 var _options$timestamp = options . timestamp ;
3639 var timestamp = _options$timestamp === undefined ? true : _options$timestamp ;
40+ var _options$duration = options . duration ;
41+ var duration = _options$duration === undefined ? false : _options$duration ;
3742
3843 var console = logger || window . console ;
3944
@@ -48,15 +53,21 @@ function createLogger() {
4853 }
4954
5055 var prevState = transformer ( getState ( ) ) ;
56+ var started = timer . now ( ) ;
5157 var returnValue = next ( action ) ;
58+ var took = timer . now ( ) - started ;
5259 var nextState = transformer ( getState ( ) ) ;
5360 var formattedTime = '' ;
5461 if ( timestamp ) {
5562 var time = new Date ( ) ;
5663 formattedTime = ' @ ' + time . getHours ( ) + ':' + pad ( time . getMinutes ( ) ) + ':' + pad ( time . getSeconds ( ) ) ;
5764 }
65+ var formattedDuration = '' ;
66+ if ( duration ) {
67+ formattedDuration = ' in ' + took . toFixed ( 2 ) + ' ms' ;
68+ }
5869 var actionType = String ( action . type ) ;
59- var message = 'action ' + actionType + formattedTime ;
70+ var message = 'action ' + actionType + formattedTime + formattedDuration ;
6071
6172 if ( collapsed ) {
6273 try {
0 commit comments