UNPKG

nodereactionagent

Version:

NodeReaction Agent is node application performance monitoring tool

36 lines (33 loc) 1.5 kB
const fs = require("fs"); const nodeReactionAgent = require("../Agent"); const library = "fs"; let fsFunc = ['access', 'exists', 'readFile', 'close', 'open', 'read', 'write', 'rename', 'truncate' , 'ftruncate', 'rmdir', 'fsync', 'mkdir', 'readdir', 'fstat', 'lstat', 'stat', 'readlink' , 'symlink', 'link', 'unlink', 'fchmod', 'lchmod', 'chmod', 'lchown', 'fchown', 'chown' , 'utimes', 'futimes', 'writeFile', 'appendFile', 'realpath', 'mkdtemp', 'copyFile'] for (let key in fs) { //find the method that's executing; for (let i = 0; i < fsFunc.length; i++) { if (key === fsFunc[i]) { let originalFunction = fs[fsFunc[i]]; fs[fsFunc[i]] = function () { if (arguments.length > 0) { //set trace; // console.log("Node Reaction Agent - FS - ", key); let trace = nodeReactionAgent.createTrace(library, key); const index = arguments.length - 1; const cb = arguments[index]; if (typeof cb === "function") { arguments[index] = function () { //end trace in the callback; if(trace) trace.end() return cb.apply(this, arguments); } } } return originalFunction.apply(this, arguments); } } } } module.exports = fs