@cork-labs/class-timing v0.5.0
Timing
Node.js class, captures timestamps, exposes elapsed times.
Getting Started
npm install --save @cork-labs/class-timingconst Timing = require('@cork-labs/class-timing');
const time = new Timing('start');
setTimeout(() => time.add('mark1'), 1000);
setTimeout(() => time.add('mark2'), 1500);
setTimeout(() => console.log(timing.elapsed()), 2000) // elapsed times { mark1: 1000, mark2: 500, total: 1500 }
setTimeout(() => {
console.log(time.from('mark1')); // 500
console.log(time.of('mark2')); // 500
console.log(time.until('mark2')); // 1500
console.log(time.total()); // 1500
}, 3000);API
Timing
new Timing(date, startingKey, totalKey): Timing
Creates an instance of Timing, optionally customising the start and total keys.
date?: number- defaults toDate.now()startKey?: string- defaults to'start'totalKey?:string- defaults to'total'
const timing = new Timing();
const timing = new Timing(someTimestamp, 'started', 'elapsed');timing.add(key)
Stores a timestamp with the provided key.
Throws an error if key is already added or equals the startKey or totalKey.
timing.add('render');timing.get()
Returns the stored timestamps as key/values.
Throws an error if key is unknown.
timing.get(); // { start: 1547997598940, render: 1547997598941, output: 1547997598942 }timing.get(key)
Returns only the specified timestamp.
Throws an error if key is unknown.
timing.get('start');timing.data(): ITimingData
Returns all the elapsed times, in miliseconds, between timestamps.
Additionaly, the following keys are included:
startingKey- the initial timestamptotalKey- total time elapsed in miliseconds
timing.add('route');
timing.add('process');
timing.add('render');
timing.add('output');
timing.data(); // { start: 1547997598940, route: 1, process: 5, render: 2, output: 1, total: 9 }timing.total(): number
Elapsed time since instantiated, in miliseconds.
timing.total(); // 9timing.from(key): number
Elapsed time since timestamp was added, in miliseconds.
timing.from('process'); // 3timing.of(key): number
Elapsed time between the previous timestamp and the specified one, in miliseconds.
timing.of('process'); // 5timing.until(key): number
Elapsed time since instantiation until timestamp, in miliseconds.
timing.until('process'); // 6Development
Install dependencies
npm install -g nodemon npm-bumpCode, test, publish
VSCode launchers:
test- run tests once
NPM scripts:
npm run dev- run tests (restarts when files saved)npm run lint- lintnpm run lint-fix- lint and fixnpm test- run all test suites and produce code coverage reportsnpm run test-u- run unit testsnpm run test-i- run integration testsnpm run coverage- serve test coverage reportsnpm run clean- delete all build artifactsnpm run build- lint and testnpm run pub- publish a patch version (usenpm-bump minorto publish a minor version)
Contributing
We'd love for you to contribute to our source code and to make it even better than it is today!
Check CONTRIBUTING before submitting issues and PRs.