Skip to content

Commit 1109095

Browse files
committed
check whether the browser has observer API
1 parent c272a8f commit 1109095

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

src/npm/hook.js

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,32 +32,35 @@ import { generateDataFromMeasures } from '../shared/generate'
3232
const registerObserver = (params, callback) => {
3333
params = params || {}
3434

35-
const { shouldLog, port, components } = params
35+
// TODO: Is there any way to polyfill this API ?
36+
if (window.PerformanceObserver) {
37+
const { shouldLog, port, components } = params
3638

37-
let observer = new window.PerformanceObserver(list => {
38-
const measures = generateDataFromMeasures(
39-
getReactPerformanceData(list.getEntries())
40-
)
39+
let observer = new window.PerformanceObserver(list => {
40+
const measures = generateDataFromMeasures(
41+
getReactPerformanceData(list.getEntries())
42+
)
4143

42-
if (callback && typeof callback === 'function') {
43-
callback(measures)
44-
}
44+
if (callback && typeof callback === 'function') {
45+
callback(measures)
46+
}
4547

46-
window.__REACT_PERF_DEVTOOL_GLOBAL_STORE__ = {
47-
measures,
48-
length: list.getEntries().length,
49-
rawMeasures: list.getEntries()
50-
}
48+
window.__REACT_PERF_DEVTOOL_GLOBAL_STORE__ = {
49+
measures,
50+
length: list.getEntries().length,
51+
rawMeasures: list.getEntries()
52+
}
5153

52-
// For logging to console
53-
if (shouldLog) {
54-
logToConsole(params, measures)
55-
}
56-
})
54+
// For logging to console
55+
if (shouldLog) {
56+
logToConsole(params, measures)
57+
}
58+
})
5759

58-
observer.observe({
59-
entryTypes: ['measure']
60-
})
60+
observer.observe({
61+
entryTypes: ['measure']
62+
})
63+
}
6164
}
6265

6366
/**

0 commit comments

Comments
 (0)