Skip to content

Commit 567af7b

Browse files
author
Eugene Rodionov
committed
feat: log duration of action
1 parent 72641c0 commit 567af7b

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

build/createLogger.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

example/dist/bundle.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "redux-logger",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"description": "Logger for redux",
55
"main": "build/index.js",
66
"scripts": {

src/createLogger.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const pad = num => ('0' + num).slice(-2);
22

33
// Use the new performance api to get better precision if available
4-
const timer = typeof performance !== "undefined" ? performance : Date;
4+
const timer = typeof performance !== `undefined` ? performance : Date;
55

66
/**
77
* Creates logger with followed options
@@ -15,7 +15,7 @@ const timer = typeof performance !== "undefined" ? performance : Date;
1515

1616
function createLogger(options = {}) {
1717
return ({ getState }) => (next) => (action) => {
18-
const { level, collapsed, predicate, logger, transformer = state => state, timestamp = true, duration = true} = options;
18+
const { level, collapsed, predicate, logger, transformer = state => state, timestamp = true, duration = false } = options;
1919
const console = logger || window.console;
2020

2121
// exit if console undefined

0 commit comments

Comments
 (0)