{"_id":"@0j3/bench-js","_rev":"5-e1897964a8c1a5e1180b935c0825d180","name":"@0j3/bench-js","dist-tags":{"latest":"1.0.1","next":"1.0.1-1"},"versions":{"0.0.0":{"name":"@0j3/bench-js","version":"0.0.0","description":"A generic Benchmarking tool","author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"main":"lib.js","scripts":{"test":"node test.js"},"license":"LGPL-3.0-or-later","dependencies":{"chalk":"^4.1.0","errmsgs":"^1.0.4"},"keywords":["benchmark","bench.js","testing","performance"],"private":false,"_id":"@0j3/bench-js@0.0.0","dist":{"shasum":"c046542e2fb33f53ba8bd8651702c7cbce05959c","integrity":"sha512-fyX9pMOVp9tUuCzNrJvvKDIdjqvuGGaZfLMm4IOLWx+uiwZ65GwlzI3iMJpxBOY0VawgOakYTe8arCUu8KFfag==","tarball":"https://registry.npmjs.org/@0j3/bench-js/-/bench-js-0.0.0.tgz","fileCount":13,"unpackedSize":10393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkFNcCRA9TVsSAnZWagAAVxoQAI2EDvhOi7CM6uiEHAj1\nNJWsXXiviAuIOoJZSw8++XORN+4UWvFz6DttgWzKiC3KlLVB4sJB5LEsJNZ3\n6oOlGQQVdm7e10V8yTwkQWWBNoVeG5s8buDQkJIjjmCYabDObg0e8a7K2FU9\noxhjZugzv2lYWw4DcA6uxr9jLX4eS1j0kcH+WP+AH54kBzd766rfnmY3l+Lg\nd/u3sP/c1WnCZ1o+mCfpYVtfFtYhJR6BE2bf/1CTID/nrte1dasZeHs4rfZy\nw06bd3I21S58844vxObs8vmE6wCn0lGKEKbv/uO853TwnCSlWuDQ1Nb9DxFG\nw2ISCIiqpLVKzB4n6/y4ZLDGFJ10JxkukJZdi6AxvSxjFP9R2UWn6yshlNef\n5lBNl/D76ud/nnXDmruobxoRWvyPLICglIg1MzXjq5lhQlaRy+UJ5VTjEzHR\nhD1cBPZvv4lbSl4yD+IHbhN6vAY7m5PMpCEg4qxu2U4ii+lZWQvLnTpZt6Hv\nijX/G8tubMzt8Z+AeWBIa/J6UPE0JCNzULs6zOsF4OvlLO+n1Bqyuw+N16Sg\ny7jBVOXRKUGVrHC+yN7J7yamBAV9AN5INqyASVku8tFc3OaXkcq3NePoGUVu\nk3XGN9nbOqdOVDsA8YX5UcK6LAo+4mMzS8ToG1VN7kStfYVsmnACMUCPHsHB\nXWll\r\n=oOIP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaQjz27jm/9jYG/38iMwfiQQ9ZEdfdoE/vkOExCfcO8gIhAKtrHSGVEPx2rmQmo8doprDOOYoOac/HgTKyUbbJCtRW"}]},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"_npmUser":{"name":"anusviolin","email":"anus.violin@wafflepowered.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench-js_0.0.0_1603294043826_0.998160295102956"},"_hasShrinkwrap":false},"1.0.0":{"name":"@0j3/bench-js","version":"1.0.0","description":"A generic Benchmarking tool","author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"main":"lib.js","scripts":{"test":"node test.js"},"license":"LGPL-3.0-or-later","dependencies":{"chalk":"^4.1.0","errmsgs":"^1.0.4"},"keywords":["benchmark","bench.js","testing","performance"],"private":false,"_id":"@0j3/bench-js@1.0.0","dist":{"shasum":"531a5b814282fce9a0e1aaa5d60f90cebc055438","integrity":"sha512-FDDozFiuoI9l4VVBVtL59qZJFZNhrtD9AU1/1se6D1wCaJ4Rr4Acvj1BNGLvajejLm66/aoY3krdXfPaTrhPvw==","tarball":"https://registry.npmjs.org/@0j3/bench-js/-/bench-js-1.0.0.tgz","fileCount":14,"unpackedSize":10393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkFN5CRA9TVsSAnZWagAAgnYQAJWpSzfL95xt/lDzoqZ8\nX48uJx/tUdV4m+cR5kI5/ug2w5RRj2kHmRQzc/hvRB0nn3hOGr55iRw+NMx2\nmEPLnxclbtsw11/J7q2cXubwJkH6K98pgQGjGnY8zL+R7/m9GGc41Qhkm9Bg\n4tmP8mOXs9Fno9kDqktjf/tD8zL4i96zMog0or+c7ZP3cxFHBGqT1UtZ0qAS\nQC5oAHz7HHQKoMBV302AqdtUOchSOHeSCTJL5ZGjBzXre3nRU3T2GtFVV97p\nq65mIC/7YO8bzhX5xEmDE03gfcDSCX6VULuMGnGueWJ172Ksyh8opGNNrmAS\nrf4DC6qxOBzSHbHtL7mDryY3mjP4VaXORgZVf3zWuhLse+gpjXmhaCeDc/rs\nVXA4/18KJZjsDR+Ncv1VSFAUTUxF9V8JQDTeZBv8ZwSCNt6zG0GUxAgxV3Bi\ngndl9aUmcYU7DeNdkXsoPxEu+He+kvNqd1iHiUsMBnIIL+M3SHdOl584ZgxH\n1g19XXppZX+WJNkE++oLVmCeJAhv111Pz3X/W5lEPXULsWq7fd2Xl3g7nroX\n/2aIg5egqUCmQqzn7sioEpBMrdhEy4UJ6RGjRXIb6ItGeWdDrSaVsfgaqs9g\n7IgFOhWrhVCcLIGOz5Ftvv5CDtL1K6SnNGxdRog2ywFl3paKFeDmu2COBSAR\nq19H\r\n=bepL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCy8d7ZEMkSQZyK3z5vvcYic1hdZ0J3gWiT7PMCbfTtAiAib32TwLvUMETvKwfYKGKmoimaJZiQwszJDahJEn5e+g=="}]},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"_npmUser":{"name":"anusviolin","email":"anus.violin@wafflepowered.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench-js_1.0.0_1603294072900_0.7530891444233456"},"_hasShrinkwrap":false},"1.0.1-0":{"name":"@0j3/bench-js","version":"1.0.1-0","description":"A generic Benchmarking tool","author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"main":"lib.js","scripts":{"test":"node test.js"},"license":"LGPL-3.0-or-later","dependencies":{"chalk":"^4.1.0","errmsgs":"^1.0.4"},"keywords":["benchmark","bench.js","testing","performance"],"private":false,"readmeFilename":"README.md","readme":"# bench.js [![Known Vulnerabilities](https://snyk.io/test/npm/@0j3/bench-js/1.0.0/badge.svg)](https://snyk.io/test/npm/@0j3/bench-js/1.0.0)\n\na benchmarking tool in nodejs\n\n## Installing\n\n```bash\nyarn add @0j3/bench-js\n```\n\n## Usage\n\nTo use bench.js, start by initializing it:\n\n```js\nconst benchjs = new (require(\"bench-js\"))(true); // The first argument in the constructor of bench.js (the \"true\") specifies, if benchjs.finish (see below) should output anything\n```\n\nThen, start by creating a \"Task\" where your program does something you want to benchmark (you can have infinite tasks, and you should make anything that takes lots of time have a task), by using\n\n```js\nconst task = benchjs.createTask(\"Sample Task Name\");\n```\n\nat the beginning of you code.\n\nTo start the task (specify when it's execution starts), use\n\n```js\ntask.begin();\n```\n\nIMPORTANT: DO NOT CALL `Task.start` AS THAT IS AN INTEGER SPECIFYING WHEN IT STARTED!\n\n<br>\n\nTo tell Bench.JS when a task is finished, use\n\n```js\ntask.finish();\n```\n\n<br>\n\nTo tell Bench.JS that a task has errored, use\n\n```js\ntask.error(new Error(\"Error Message Here\"));\n```\n\n<br>\n\nAt the end of your code, you must add\n\n```js\nbenchjs.finish(0);\n```\n\nThe 0 is optional, and specifies the exit code.\n\nWhen running finish, bench.js will exit your program, once its done outputting the benchmark data, so it is important that you have nothing else running after this.\n\n## Extending Bench.JS\n\nIf you want to extend bench.js, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n  }\n}\n```\n\nand add whatever you want from there.\n\n<br>\n\nIf you want to extend the task class aswell, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Task extends BenchOriginal.Task {\n  constructor(taskName, id, parent) {\n    super.constructor(taskName, id, parent); // call original constructor\n  }\n}\n\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n    super.TaskClass = Task;\n  }\n}\n```\n\nand add whatever you want from there.\n","_id":"@0j3/bench-js@1.0.1-0","dist":{"shasum":"7108432b311d8f22f3a74a9400eb22b9a33411db","integrity":"sha512-3FhZSHcOV7LeWm3hGXrYoD960KuiEeuM8T9aKdhT9iMN2+Tz+puY+9u5ZZoI5RIVjA1Ji4FLl8SeRPDerNXQjg==","tarball":"https://registry.npmjs.org/@0j3/bench-js/-/bench-js-1.0.1-0.tgz","fileCount":9,"unpackedSize":12853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkGF/CRA9TVsSAnZWagAADIcQAI8fDX5Ie9NS3bh7VBNx\n+I92+PMHt0izZdNyRyRmLgoRXzmQFAYkyEzDUYE9hizCycbvA9gxZQYfxveC\nMYdLVB1NUvd7gHDyZmQRtmEuuHOY7Ez93y+JX5bJeVAyvLWyFEjfwh43/P+Y\ny8MNds9fuwpoDi4/Ieb/gW101sLv4EO8AZ7WG/7mfSgr9ZC8qaulfutMzyhE\n5f/o/d0BNKMVYjYV6LUojOWhbAgNygfdvm1ZLsOQypGEtGRNYWaeLEuLoJks\n+bu5zRRWqEm04RKjU9NMB/2xxTwabCvb7yNADvMLngwQ9mJiYGqxIEeO/t8Q\nxvq6p65yOaX3SXUTGb+ZsrdJK9zLkdxQ0/6G4wsLjauwglA+FMPbq/IjTiXf\nXLhJk1rwy3vjdGvPr5SpYf5aaW4ewpxGalpIIvy5Q9r1I1yCjB8IscVaP/hK\n8yYl+rbrxCg/j+MM0awhQMpnnQFHtN0BkX1gr4xjN5Ho4s0NXHrYDHntDlVh\nkyYuZM+zI4HgZznEFoQotIZS64NWHWmB+A7xVLC/GAGWijkiSmtRGbP3PhAo\nW3pLFnEq0r76ZyxCbvA3EzuhONaGm/bixFlr95FPO8Ckv522sqyAeh1Gjbw8\nFFEX7kOKeMG17GVaESb3fpSyPxRjjPqafoJQ3OXzsl6SxwsLZzarcpucuk8a\nAsFF\r\n=D6pu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIChiKQ9JTmGt7Y2wNpAC2rbdkpLGJ2oExOxsU1gCJtVdAiEApoxeS3JJ4PiA8h2MGC8k9F/fke6VRQ56j86pZ0X26O4="}]},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"_npmUser":{"name":"anusviolin","email":"anus.violin@wafflepowered.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench-js_1.0.1-0_1603297662971_0.5786574244000244"},"_hasShrinkwrap":false},"1.0.1-1":{"name":"@0j3/bench-js","version":"1.0.1-1","description":"A generic Benchmarking tool","author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"main":"lib.js","scripts":{"test":"node test.js"},"license":"LGPL-3.0-or-later","dependencies":{"chalk":"^4.1.0","errmsgs":"^1.0.4"},"keywords":["benchmark","bench.js","testing","performance"],"private":false,"readmeFilename":"README.md","readme":"# bench.js [![Known Vulnerabilities](https://snyk.io/test/npm/@0j3/bench-js/1.0.0/badge.svg)](https://snyk.io/test/npm/@0j3/bench-js/1.0.0)\n\na benchmarking tool in nodejs\n\n## Installing\n\n```bash\nyarn add @0j3/bench-js\n```\n\n## Usage\n\nTo use bench.js, start by initializing it:\n\n```js\nconst benchjs = new (require(\"bench-js\"))(true); // The first argument in the constructor of bench.js (the \"true\") specifies, if benchjs.finish (see below) should output anything\n```\n\nThen, start by creating a \"Task\" where your program does something you want to benchmark (you can have infinite tasks, and you should make anything that takes lots of time have a task), by using\n\n```js\nconst task = benchjs.createTask(\"Sample Task Name\");\n```\n\nat the beginning of you code.\n\nTo start the task (specify when it's execution starts), use\n\n```js\ntask.begin();\n```\n\nIMPORTANT: DO NOT CALL `Task.start` AS THAT IS AN INTEGER SPECIFYING WHEN IT STARTED!\n\n<br>\n\nTo tell Bench.JS when a task is finished, use\n\n```js\ntask.finish();\n```\n\n<br>\n\nTo tell Bench.JS that a task has errored, use\n\n```js\ntask.error(new Error(\"Error Message Here\"));\n```\n\n<br>\n\nAt the end of your code, you must add\n\n```js\nbenchjs.finish(0);\n```\n\nThe `0` is optional, and specifies the exit code.\n\nWhen running finish, bench.js will exit your program, once its done outputting the benchmark data, so it is important that you have nothing else running after this.\n\n## Extending Bench.JS\n\nIf you want to extend bench.js, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n  }\n}\n```\n\nand add whatever you want from there.\n\n<br>\n\nIf you want to extend the task class aswell, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Task extends BenchOriginal.Task {\n  constructor(taskName, id, parent) {\n    super.constructor(taskName, id, parent); // call original constructor\n  }\n}\n\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n    super.TaskClass = Task;\n  }\n}\n```\n\nand add whatever you want from there.\n","_id":"@0j3/bench-js@1.0.1-1","dist":{"shasum":"e71fc66ed2194784e5dd33057c792449a93eb72f","integrity":"sha512-PJlmrBsZwzNXMWXzpPW/wytnt4xMIrK7J7Art9qTGxMGH+GBL30o2ZRhPgkgnz5+/LhLXUh3lZkZ7dgRgtkVMw==","tarball":"https://registry.npmjs.org/@0j3/bench-js/-/bench-js-1.0.1-1.tgz","fileCount":10,"unpackedSize":12855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkGJUCRA9TVsSAnZWagAAw+8P+gPu3HVUrRvvGTClmAXQ\n8tM9aBYItEoJmNmCMZ+iFX9gdO9KAPeVGeDRUrUByZvjKJuz8C2ENhOfFkkD\nYBCkSkhCR7PcJuzPJhFMX3RZHVi/ZxOF4zJMFAurlLTfgBlIox5YKM67yGNX\nY6RrSVuc1mBzENH3G0NmO+q6TVZel2Y2fDdaUnrbQ4+8j3mTQJa23WB90cZm\ninxQpzn/Eb+vp8o0Yoa0+1Zv+FLCGM2p4y8QBjQcxspGvukfoFef6EWSJiY+\nRNAV34/3tVWZk0vdULCSGqWE5pI5kAAwiQYLR+E37PjPyvO8Gqzpct7UZms3\nSNmPYNq1yYvDAISBKJwzaKsQtqHvKjCDrcUI5J8O215vmD/yBa2NnVuw5ttK\njvP65Eu1rGgPDJ6VH6D88NRZf8BgeejJ3UZ+cQ5Q8Uh3cEZvgSx2913Va+38\nDL1xpDhFUwViDlD8gj2EWMWLjElfda0XAETD4Qi466yt1yhsbR6Q1s96iLfi\nDTSe1vzFu5m5Siy3PDQ+EdUSEIFx2TjqVw1++EHpq5BtMufjZShv7+FTbT0D\nhTTQLwu2c5vURq9tRCSopEDhjFa96E/g7oJrQ1IyHfGzzc4NR1XwG4BylVGW\nIqRz3qVPzGL9mE9HeIfdK3j7C/1RWRSx5bW/PPZzFxOGljDWZzD2+Zrh0Iwf\nyjW7\r\n=6MvM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoT7Om3lWFd/HRgbJp6+k9lz8u3OcPxN+HwPIr4654OgIgJ3axBvrXBTXkeSYYhUhMtl6mkBobkc2sTkdycWPULBM="}]},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"_npmUser":{"name":"anusviolin","email":"anus.violin@wafflepowered.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench-js_1.0.1-1_1603297876429_0.022204364212465855"},"_hasShrinkwrap":false},"1.0.1":{"name":"@0j3/bench-js","version":"1.0.1","description":"A generic Benchmarking tool","author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"main":"lib.js","scripts":{"test":"node test.js"},"license":"LGPL-3.0-or-later","dependencies":{"chalk":"^4.1.0","errmsgs":"^1.0.4"},"keywords":["benchmark","bench.js","testing","performance"],"private":false,"_id":"@0j3/bench-js@1.0.1","dist":{"shasum":"f5eb86bed9cb690f20fa904bf237586b4ab21f73","integrity":"sha512-KZEZxnrkSe1ziGHl24hcXPIfyiu30hBdRfICn+JPIf5fJ9W3juAJzP1h9Jpik+yk3k5JLBfn0ZVh8l9chPReWw==","tarball":"https://registry.npmjs.org/@0j3/bench-js/-/bench-js-1.0.1.tgz","fileCount":13,"unpackedSize":13369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkGQACRA9TVsSAnZWagAAaMwP/3mvJ/Cf0agnBhrdcxxi\nL92sCFp/l2uI7l5IBFJi8KMDcW2qUm8NoeVu68SCAceRc7DKCvhgLumxod3o\nuMEb9ymqGrnxbAVmSaX4kqQtxStZL4vfbNsbXJPt3lly9jmbsdkOzb32zBhW\nfV5Bdpkl5FMU1wLcQ+cIYGj0a7e6TGWqb1+rZr7zLnjTd/1pOjqw6k2CWHo4\nbwZjTgdkZHndLApEs+agxiNQvF7m2iOpxQaDWtCxD3D7UHnmPXu2eknAy753\ndwLY/RX/ywceNWn8p8BIMfoLFScnWmRCWSoiLk38KcJdsldN84GBaqIjA9DU\nR3VbVTltcMjglPHqbxr5OZgrPs3gWOOCJ9bfP5aw+GXvwHKhaIEOVCbLQmws\nnCwbi1MMxHXU6yK4YsXrcO0Mf7XqGRLF2UKfBs+Lj5sGVQNJhBw/WRMXpdz4\na/J65GmuGCc5fyluFUoeiYZ6HHQhg+A7dXEVPqxJJKKsUuUnvwEcmhGPRn94\nthrUSCuxaNvXn1eOq93Oks8NwRkaeWkdvoxzoKFgDvv5QldSPzmMhQVYGPSN\nBPRxqeUYdDoB2zVw+qBk6u1edzt8iNj4S6Xknim4eIbfKPo62/6wZICr5awH\nzky3hyXf1IfXrgrOXdndyI8b02x5CbLWzfsKUffzAxY6wINVSy+WaDFi4bOZ\nZwLg\r\n=nCwF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBtIRf1S4zdSo45lj8S//RW1GR3e6VvoGWuIwCroJYcdAiB3oq60x9tbYQ9nuI3X9W2VOKEZLwnnJA9oCmb9C3qwKQ=="}]},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"_npmUser":{"name":"anusviolin","email":"anus.violin@wafflepowered.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench-js_1.0.1_1603298303894_0.40669565990470846"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-21T15:27:23.575Z","0.0.0":"2020-10-21T15:27:24.007Z","modified":"2022-04-04T10:26:11.255Z","1.0.0":"2020-10-21T15:27:53.124Z","1.0.1-0":"2020-10-21T16:27:43.077Z","1.0.1-1":"2020-10-21T16:31:16.544Z","1.0.1":"2020-10-21T16:38:23.997Z"},"maintainers":[{"name":"anusviolin","email":"anus.violin@wafflepowered.com"}],"description":"A generic Benchmarking tool","keywords":["benchmark","bench.js","testing","performance"],"author":{"name":"0J3","email":"bench.js@wafflepowered.com"},"license":"LGPL-3.0-or-later","readme":"# bench.js [![Known Vulnerabilities](https://snyk.io/test/npm/@0j3/bench-js/1.0.0/badge.svg)](https://snyk.io/test/npm/@0j3/bench-js/1.0.0)\n\na benchmarking tool in nodejs\n\n## Installing\n\n```bash\nyarn add @0j3/bench-js\n```\n\n## Usage\n\nTo use bench.js, start by initializing it:\n\n```js\nconst benchjs = new (require(\"bench-js\"))(true); // The first argument in the constructor of bench.js (the \"true\") specifies, if benchjs.finish (see below) should output anything\n```\n\nThen, start by creating a \"Task\" where your program does something you want to benchmark (you can have infinite tasks, and you should make anything that takes lots of time have a task), by using\n\n```js\nconst task = benchjs.createTask(\"Sample Task Name\");\n```\n\nat the beginning of you code.\n\nTo start the task (specify when it's execution starts), use\n\n```js\ntask.begin();\n```\n\nIMPORTANT: DO NOT CALL `Task.start` AS THAT IS AN INTEGER SPECIFYING WHEN IT STARTED!\n\n<br>\n\nTo tell Bench.JS when a task is finished, use\n\n```js\ntask.finish();\n```\n\n<br>\n\nTo tell Bench.JS that a task has errored, use\n\n```js\ntask.error(new Error(\"Error Message Here\"));\n```\n\n<br>\n\nAt the end of your code, you must add\n\n```js\nbenchjs.finish(0);\n```\n\nThe `0` is optional, and specifies the exit code.\n\nWhen running finish, bench.js will exit your program, once its done outputting the benchmark data, so it is important that you have nothing else running after this.\n\n## Bench.JS Sample Output\nTaken from the [Tests File](./test.js)\n```\n===== BENCHMARK FINISHED =====\nTask Node (#0) took 0.10054s\nTask App (#1) took 0.02517s\nTask Sample Task 1 (#2) took 0.00005s\nTask Sample Task 2 (#3) took 0.00005s\nTask Sample Task 3 (#4) took 0.00004s\nTask Sample Task 4 (#5) DNF | Error (See C:\\PATH/TO/BENCHJS/errors/21.9.2020-18.33.5/Sample-Task-4-id-5.err.yml)\nTask Sample Task 5 (#6) DNF\nTask Finish writing to error files (#7) took 0.0146s\n==============================\n```\n\n## Extending Bench.JS\n\nIf you want to extend bench.js, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n  }\n}\n```\n\nand add whatever you want from there.\n\n<br>\n\nIf you want to extend the task class aswell, use\n\n```js\nconst BenchOriginal = require(\"benchjs\");\nclass Task extends BenchOriginal.Task {\n  constructor(taskName, id, parent) {\n    super.constructor(taskName, id, parent); // call original constructor\n  }\n}\n\nclass Bench extends BenchOriginal {\n  constructor(outputResults = true) {\n    super.constructor(outputResults); // call original constructor\n    super.TaskClass = Task;\n  }\n}\n```\n\nand add whatever you want from there.\n","readmeFilename":"README.md"}