Skip to content

Commit 3dd7e12

Browse files
committed
Add to ability include/exclude components (by name) #1
1 parent 3182416 commit 3dd7e12

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

src/index.js

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,37 @@ function updateCountRender(componentId) {
88
return count;
99
}
1010

11-
export default function logRender({ components }) {
11+
function inArray(componentName, list) {
12+
return list.some((item) => {
13+
if (componentName === item) {
14+
return true;
15+
}
16+
});
17+
}
18+
19+
export default function logRender({ components, imports }) {
20+
const options = imports[0];
1221
return function wrap(ReactClass, componentId) {
1322
const originalRender = ReactClass.prototype.render;
1423
const displayName = components[componentId].displayName;
24+
let enableLog = true;
25+
26+
if (options) {
27+
enableLog = options.include ? enableLog && inArray(displayName, options.include) : enableLog;
28+
enableLog = options.exclude ? enableLog && !inArray(displayName, options.exclude) : enableLog;
29+
}
1530

16-
ReactClass.prototype.render = function () {
17-
const count = updateCountRender(componentId);
18-
console.groupCollapsed(`render: ${displayName} (${count})`);
19-
console.log('props', this.props);
20-
console.log('state', this.state);
21-
console.groupEnd();
31+
if (enableLog) {
32+
ReactClass.prototype.render = function () {
33+
const count = updateCountRender(componentId);
34+
console.groupCollapsed(`render: ${displayName} (${count})`);
35+
console.log('props', this.props);
36+
console.log('state', this.state);
37+
console.groupEnd();
2238

23-
return originalRender.apply(this, arguments);
24-
};
39+
return originalRender.apply(this, arguments);
40+
};
41+
}
2542

2643
return ReactClass;
2744
};

0 commit comments

Comments
 (0)