UNPKG

cardio-node

Version:

Keep your apps in shape with cardio

32 lines (28 loc) 882 B
import { performance } from 'perf_hooks'; const cardioWrapper = (cardioName, functionToMeasure, cardioCallback) => { return async (...args) => { let startTime = 0; let stopTime = 0; const invocation = { duration: 0, applicationError: false }; try { startTime = performance.now(); const returnedValue = await functionToMeasure(...args); stopTime = performance.now(); invocation.duration = stopTime - startTime; cardioCallback(cardioName, invocation, args); return returnedValue; } catch (err) { invocation.applicationError = true; stopTime = performance.now(); invocation.duration = stopTime - startTime; cardioCallback(cardioName, invocation, args); throw err; } }; }; export default cardioWrapper; export { cardioWrapper }; //# sourceMappingURL=cardio-node.esm.js.map