This is inspired by the Spring-Stopwatch. Written in Typescript
, 100% Test Coverage.
npm install stopwatch-node
import { StopWatch } from 'stopwatch-node';
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
(async () => {
const sw = new StopWatch('sw');
sw.start('Task 1');
await sleep(1000);
sw.stop();
// whether the stop watch is currently running
console.info(sw.isRunning());
const task2Name = 'Task 2';
sw.start(task2Name);
await sleep(1500);
sw.stop();
sw.start('Task 3');
await sleep(500);
sw.stop();
sw.start('Task 4');
await sleep(300);
sw.stop();
console.info(`Short Summary: ${sw.shortSummary()}`);
console.info(`Task Count: ${sw.getTaskCount()}`);
// a table describing all tasks performed
sw.prettyPrint();
const task2 = sw.getTask(task2Name);
console.info(`'${task2Name}' took ${task2?.timeMills} and percentage is ${task2?.percentage}`);
})();
------------------------------------------
ms % Task name
------------------------------------------
1000 30.21 Task 1
1504 45.44 Task 2
505 15.26 Task 3
301 9.09 Task 4
'Task 2' took 1506 and percentage is 45.47