The `timer()` decorator starts a timer you can use to track how long an operation takes. Suitable for use in both synchronous and asynchronous methods both in Node.js and Browser apps.
npm install execution-time-decoratorsThe timer() decorator starts a timer you can use to track how long an operation takes.
Suitable for use in both synchronous and asynchronous methods both in Node.js and Browser apps.
!build 
 !dependencies   !minified
Call require to get the instance:
``js`
const { timer } = require('execution-time-decorators');
Or in ES6 and TS:
`typescript`
import { timer } from 'execution-time-decorators';
typescript
class ExampleTimers { @timer()
readSync(filepath: string) {
return fs.readFileSync(filepath);
}
@timer()
async readAsync(filepath: string) {
return fs.promises.readFile(filepath);
}
@timer({ logger: pino })
async readAsyncP(filepath: string) {
return fs.promises.readFile(filepath);
}
@timer({ hr: true })
static readSync(filepath: string) {
return fs.readFileSync(filepath);
}
@timer({ logger: pino, hr: true })
static async readAsync(filepath: string) {
return fs.promises.readFile(filepath);
}
}
``console
[timer] [ExampleTimers::readSync]: begin
[timer] [ExampleTimers::readSync]: timer 0.008s[timer] [ExampleTimers::readAsync]: begin
[timer] [ExampleTimers::readAsync]: timer 0.010s
{"level":30,"time":1687023007188,"pid":56981,"hostname":"192.168.68.52","msg":"[timer] [ExampleTimers::readAsyncP]: begin"}
{"level":30,"time":1687023007205,"pid":56981,"hostname":"192.168.68.52","msg":"[timer] [ExampleTimers::readAsyncP]: timer 0.017s"}
[timer] [static ExampleTimers::readSync]: begin
[timer] [static ExampleTimers::readSync]: timer 7212041ns
{"level":30,"time":1687023007212,"pid":56981,"hostname":"192.168.68.52","msg":"[timer] [static ExampleTimers::readAsync]: begin"}
{"level":30,"time":1687023007231,"pid":56981,"hostname":"192.168.68.52","msg":"[timer] [static ExampleTimers::readAsync]: timer 18302917ns"}
`Options
Type:
object$3
Type:
{ log: (...args: any[]) => void } | { info: (...args: any[]) => void }\
Default: consoleDefault or your current logger.
$3
Type:
boolean\
Default: falseWhen true, arguments passed to the method will be print to the logs.
$3
Type:
boolean\
Default: false`Print execution time in nanoseconds.