@@ -31,7 +31,7 @@ var generateDataFromMeasures = require('../shared/generate')
3131*/
3232function 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+
119145module . exports = registerObserver
0 commit comments