cardio-node
Version:
Keep your apps in shape with cardio
32 lines (28 loc) • 882 B
JavaScript
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