diff --git a/packages/sui-decorators/package.json b/packages/sui-decorators/package.json index 79bdd732a..080b4a327 100644 --- a/packages/sui-decorators/package.json +++ b/packages/sui-decorators/package.json @@ -15,7 +15,6 @@ "sinon": "10.0.0" }, "browser": { - "perf_hooks": false, "hot-shots": false, "redis": false, "redis-lru": false, @@ -27,6 +26,7 @@ "redis-lru": "0.6.0", "tiny-lru": "6.0.1", "hot-shots": "7.7.1", + "performance-now": "2.1.0", "redis-mock": "0.49.0" } } diff --git a/packages/sui-decorators/src/decorators/tracer/index.js b/packages/sui-decorators/src/decorators/tracer/index.js index 91175692e..79fcd9aaa 100644 --- a/packages/sui-decorators/src/decorators/tracer/index.js +++ b/packages/sui-decorators/src/decorators/tracer/index.js @@ -1,4 +1,4 @@ -import {performance} from 'perf_hooks' +import perfNow from 'performance-now' import isNode from '../../helpers/isNode.js' import isPromise from '../../helpers/isPromise.js' @@ -6,8 +6,6 @@ import {ConsoleReporter} from './reporters/ConsoleReporter.js' import {statusCodes} from './statusCodes.js' export {DataDogReporter} from './reporters/DataDogReporter.js' -const getPerformanceMeter = () => (isNode ? performance : window.performance) - const getReporter = () => { const customReporter = isNode ? global.__SUI_DECORATOR_TRACER_REPORTER__ : window.__SUI_DECORATOR_TRACER_REPORTER__ @@ -44,20 +42,19 @@ export default ({metric = null} = {}) => { } const reporter = getReporter() - const perf = getPerformanceMeter() const classMethodName = `${target.constructor.name}::${fnName}` const metricName = metric || classMethodName const _fnTimed = (...args) => { // performance metric start - const startTime = perf.now() + const startTime = perfNow() // original function const returnValue = fn.apply(this, args) if (isPromise(returnValue)) { return returnValue .then(res => { - const endTime = perf.now() + const endTime = perfNow() if (res.__INLINE_ERROR__) { const [error] = res @@ -81,7 +78,7 @@ export default ({metric = null} = {}) => { return Promise.resolve(res) }) .catch(error => { - const endTime = perf.now() + const endTime = perfNow() reporter.send({ metricName, @@ -94,7 +91,7 @@ export default ({metric = null} = {}) => { }) } else { // performance metric ends - const endTime = perf.now() + const endTime = perfNow() reporter.send({ metricName,