Skip to content

Commit 70396e0

Browse files
committed
Added support for components option
1 parent fc91a7c commit 70396e0

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

src/npm/hook.js

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ var generateDataFromMeasures = require('../shared/generate')
3131
*/
3232
function registerObserver(params, callback) {
3333
params = params || {}
34-
var { shouldLog, port } = params
34+
var { shouldLog, port, components } = params
3535
var observer = new window.PerformanceObserver(list => {
3636
var measures = generateDataFromMeasures(
3737
getReactPerformanceData(list.getEntries())
@@ -49,7 +49,7 @@ function registerObserver(params, callback) {
4949

5050
// For logging to console
5151
if (shouldLog) {
52-
logToConsole(port, measures)
52+
logToConsole(params, measures)
5353
}
5454
})
5555

@@ -62,7 +62,17 @@ function registerObserver(params, callback) {
6262
This function logs the measures to the console. Requires a server running on a specified port. Default port number is 8080.
6363
TODO: Change this behaviour if Chrome lands the support for recording performance when inspecting the node apps.
6464
*/
65-
function logToConsole(port, measures) {
65+
function logToConsole({ port, components }, measures) {
66+
if (!components) {
67+
logMeasures(port, measures)
68+
} else if (typeof components !== undefined && Array.isArray(components)) {
69+
var requiredMeasures = getRequiredMeasures(components, measures)
70+
71+
logMeasures(port, requiredMeasures)
72+
}
73+
}
74+
75+
function logMeasures(port, measures) {
6676
measures.forEach(
6777
({
6878
componentName,
@@ -116,4 +126,20 @@ function send(data, port) {
116126
)
117127
}
118128

129+
function getRequiredMeasures(components, measures) {
130+
var requiredMeasures = []
131+
132+
if (!Array.isArray(components)) {
133+
components = [components]
134+
}
135+
136+
measures.forEach(measure => {
137+
if (components.includes(measure.componentName)) {
138+
requiredMeasures.push(measure)
139+
}
140+
})
141+
142+
return requiredMeasures
143+
}
144+
119145
module.exports = registerObserver

0 commit comments

Comments
 (0)