{"_id":"header-timers","_rev":"9-0f52d2b0d66da07a572d1fc50ae8e3e8","name":"header-timers","dist-tags":{"RC":"0.0.1-RC.2","latest":"0.3.0"},"versions":{"0.0.1-RC.1":{"name":"header-timers","version":"0.0.1-RC.1","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.0.1-RC.1","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"e508bf28d8bab03080ee554df442b91257f45389","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.0.1-RC.1.tgz","fileCount":3,"integrity":"sha512-jRFDpp8oba/2dRRoUXuoPkO3m/QWsbysFo4M/2CugEtiGmvlugnH7dHT68OvqAGL4zR0p143+rO11si3fI4P/w==","signatures":[{"sig":"MEYCIQDOeAr1Tw85QE+t8b/Eydi+I3Kk74WOsrj1vA6k3RUOPgIhAJMzdU65RdaxP1aqegpm8T836NCcm64PMjFwOo9XIKJJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4123},"main":"index.js","type":"module","gitHead":"97c60789d0a3d7d47ee0eafb78a40163ad6323b5","scripts":{"lint":"eslint --ext .mjs --ext .js src/ test/","tape":"tape test/**/*-test.js","test":"npm run tape","start":"node test/go.js","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.7.2","eslint":"^8.52.0","tap-arc":"^1.2.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.0.1-RC.1_1698452077702_0.2795719651842776","host":"s3://npm-registry-packages"}},"0.0.1-RC.2":{"name":"header-timers","version":"0.0.1-RC.2","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.0.1-RC.2","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"f112eea4cb9e6181d81ad98736b3335d4623d799","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.0.1-RC.2.tgz","fileCount":3,"integrity":"sha512-e7uGQ+trkge2KjWBt5Nim4mkzp32G4Xh50QteysaIKqjbQw6+8HYxdaDBlB7uT6C/iLwgTu1lHV4xZsHK1TTlQ==","signatures":[{"sig":"MEUCIDH2auZior1GdA0aAqzr5CH/4NcJXLM4j9JvxxiiPR5dAiEAvkSiSKaUMVH7etxS3FDaMmO3i4uESXVsaEM73Ntjhcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4534},"main":"index.js","type":"module","gitHead":"a3dd61b8f2cc6e13d9d060185b69c0c521e9f10e","scripts":{"lint":"eslint --ext .mjs --ext .js src/ test/","tape":"tape test/**/*-test.js","test":"npm run tape","start":"node test/go.js","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tape":"^5.7.2","eslint":"^8.52.0","tap-arc":"^1.2.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.0.1-RC.2_1698452355614_0.9096227873536518","host":"s3://npm-registry-packages"}},"0.0.1":{"name":"header-timers","version":"0.0.1","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.0.1","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"7dccb9936696f4f9e151945690a017ae59dd1fa6","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.0.1.tgz","fileCount":3,"integrity":"sha512-2a6n0r4SPDYwBMCj7m69I1nRzrj7B+f6yIWgdRk3u78VXca+MEtZDO2BA2R4mYJJEQm/eT3arks3Bw7U/vkPbw==","signatures":[{"sig":"MEQCIGCtytE8STICGGqsSWbO0Z3GS45dJSBgnBC45ZH3T59wAiB9M/qvmdfm/bAK+pLOMa4HPi8gXUcVLf/0uF4LbMxz5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4529},"main":"index.js","type":"module","gitHead":"27681a45029728c1a5b412e41e9c80bb88e2ae0f","scripts":{"lint":"eslint --ext .mjs --ext .js src/ test/","tape":"tape test/**/*-test.js","test":"npm run tape","start":"node test/go.js","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"tape":"^5.7.2","eslint":"^8.52.0","tap-arc":"^1.2.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.0.1_1698452421059_0.14722188037273365","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"header-timers","version":"0.0.2","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.0.2","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"0e63fe8a052d779d8334f066b88a4683a1820925","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.0.2.tgz","fileCount":3,"integrity":"sha512-RhvFxPeKe9ZENych9McHUyTUqMAJ6WQRUy+5cCNvTKZChRl9wOLIO/qlKsjkvToEUQzMMJHuNl5JQ/xraQtNqQ==","signatures":[{"sig":"MEUCIBOBgL79nGwIU46dMXh+n63NiZxKOxXGhAuV1RHc2fA0AiEAx/iDPbzb/8zbY/d3mAButRiLB+0wbmrYDzUDrL7dv3A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4782},"main":"index.js","type":"module","gitHead":"d3b065cd2f4d6a478dd4bf741333ac76f422a1e5","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.0.2_1698901062097_0.792296143615286","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"header-timers","version":"0.0.3","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.0.3","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"0d1fb04e5ae80a8553826f01f3bbe414ddbed0a2","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.0.3.tgz","fileCount":3,"integrity":"sha512-lveuIlIBRaEdTsXa8nSH9b5TaSIBLDsdpDtyaCWLO+U4ryiy3Aav7HjUCCljxs1akq+fwH2r2z85q9lD/6zOug==","signatures":[{"sig":"MEYCIQC2dwW9Ydl6Oi4gEjpZumCBB4Kt/izg9RGhueISytd3QgIhANzW88GuaKNJBqhbKcsK2H/ygPVpwUVO9NfyHmLAak7A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5625},"main":"index.js","type":"module","gitHead":"6cac13e3c0e19004b12a94f100ffa20764691e3a","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.0.3_1698903214688_0.8853565636782612","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"header-timers","version":"0.1.0","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.1.0","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"5fc58cca06a24876505aa83d7c58526d029fac8b","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.1.0.tgz","fileCount":3,"integrity":"sha512-RIr85ti7oPGnbxWkh7k9cxSL7NB+VSsLLXgc6MDU+WfLqn9lBGeptPSQRcQYpyQayxiYjAHNb/Nwo9htsBvZ4A==","signatures":[{"sig":"MEYCIQDKHoZpyYkgPrq7mABSnncfqGHe6WKdxetQfvZNOlsU6QIhAJFG4P45BfWLPOQSDgNSJv9ZI5+9VFZz4kT2KvpOwxqh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5735},"main":"index.js","type":"module","gitHead":"73f063baf34dd496baf13046f177c52ddda15c73","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.1.0_1699033369465_0.9882943368882093","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"header-timers","version":"0.1.1","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.1.1","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"2b8f1970a417dad6872d7014f85c6f0ef8f0de14","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.1.1.tgz","fileCount":3,"integrity":"sha512-lpf/csJ+hcLTx4FvbX3oj2LCk8ixQ5Ne7zDBdSAxZ4WHQxnpW7GJwQznZY8KImeRFtWvMLeUZIIN5FSA51bRAQ==","signatures":[{"sig":"MEUCIQDkXcS4XCnEX0BAPcDFROc6AQRzQRYUxrgYY/eQFsQAaQIgUb2QHoAZZNm1YYESjtredI0X2Cddywix21+uG0iPNzU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5773},"main":"index.js","type":"module","gitHead":"3f27f773210dd6d44acda40f599162b083e01888","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.1.1_1699376649058_0.9525252804971085","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"header-timers","version":"0.2.0","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.2.0","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"93dc0f1e46ee7b396afe9f1243e8f8b507a1ad94","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.2.0.tgz","fileCount":3,"integrity":"sha512-btRoNKCbs+npJo6jfXEB0NEiYozdQpbnLh+vMoE6MvZuG/b+PJOu0NfgEEMXvnFVHVKcoV7+MNP4/L9/Nedo2g==","signatures":[{"sig":"MEYCIQCRAebVkuNfZIDtw2gZv0lJTCJnvKhVT9nfI7qcZL6zrgIhAOcmXF4ed5N65EOh+9riijWm64jslVnfm6DAUIrDL9BM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6985},"main":"index.js","type":"module","gitHead":"a01b1202e6afb24819a259babae2a2d965897244","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"9.8.1","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"18.18.2","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.2.0_1699386892419_0.25102777441369284","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"header-timers","version":"0.2.1","keywords":["http","server-timing","header","timer"],"author":{"name":"tbeseda"},"license":"Apache-2.0","_id":"header-timers@0.2.1","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"homepage":"https://github.com/tbeseda/header-timers#readme","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"dist":{"shasum":"793c94a5ee57c96179d4a3fa2b9c74134972fa3e","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.2.1.tgz","fileCount":3,"integrity":"sha512-MYHjz20sTJym3EQ6aMgfqDLGZgiNkFo3eM6He13HJb33Ju2hc/4cTlsjfWxXHSjOv6szv6/jbjg/yvGXgKEKvQ==","signatures":[{"sig":"MEQCIBaYKjTMl5cdChIav2OAAAOdPGgZ4xdUy10d2XNvdsGjAiAwxATuAUNBEaHhtqjH9EOqund07x+dI7t6NQGJPp6TgA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7113},"main":"index.js","type":"module","gitHead":"49727b41feadcbfc50c685fc4688d3d01036f8b7","scripts":{"lint":"eslint --ext .mjs --ext .js","test":"npm run lint && node --test","lint.fix":"npm run lint -- --fix"},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"repository":{"url":"git+https://github.com/tbeseda/header-timers.git","type":"git"},"_npmVersion":"10.2.3","description":"Server-Timing HTTP header helper","directories":{},"_nodeVersion":"20.10.0","eslintConfig":{"rules":{"comma-dangle":["error","always-multiline"],"space-unary-ops":0},"extends":"standard","ignorePatterns":["src/vendor"]},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.52.0","eslint-config-standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/header-timers_0.2.1_1708151716106_0.9039464201038974","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"header-timers","version":"0.3.0","description":"Server-Timing HTTP header helper","author":{"name":"tbeseda"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/tbeseda/header-timers.git"},"keywords":["http","server-timing","header","timer"],"main":"index.js","type":"module","scripts":{"check":"biome check --write","test":"biome ci && node --test"},"devDependencies":{"@biomejs/biome":"^1.8.3"},"_id":"header-timers@0.3.0","gitHead":"42f78cc47dfa250771635c691595a47a1d5a3a33","bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"homepage":"https://github.com/tbeseda/header-timers#readme","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-Jzdm9z9Qg/9zioR4Vdz9aJXLeelkbVrCluqYTCuBp83FB9itdlDXJS+Rs+XQhH4C6i+q6bSd8Q4tVF/bdfLXEQ==","shasum":"bd9105d643bd5a547be948681270e7d75eabac5d","tarball":"https://registry.npmjs.org/header-timers/-/header-timers-0.3.0.tgz","fileCount":3,"unpackedSize":6880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTba9CL7vGvNLreblbwWU/IFQ2ug429xsnCSEP8xhWQgIhAI2tn+LdTZlDXiKIgtya26g/o1dcAHhjY1ngpzI8mdR0"}]},"_npmUser":{"name":"tbeseda","email":"tbeseda@gmail.com"},"directories":{},"maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/header-timers_0.3.0_1720633023104_0.7717972085125198"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-28T00:14:37.701Z","modified":"2024-07-10T17:37:03.445Z","0.0.1-RC.1":"2023-10-28T00:14:37.924Z","0.0.1-RC.2":"2023-10-28T00:19:15.820Z","0.0.1":"2023-10-28T00:20:21.214Z","0.0.2":"2023-11-02T04:57:42.268Z","0.0.3":"2023-11-02T05:33:34.885Z","0.1.0":"2023-11-03T17:42:49.660Z","0.1.1":"2023-11-07T17:04:09.496Z","0.2.0":"2023-11-07T19:54:52.565Z","0.2.1":"2024-02-17T06:35:16.256Z","0.3.0":"2024-07-10T17:37:03.266Z"},"bugs":{"url":"https://github.com/tbeseda/header-timers/issues"},"author":{"name":"tbeseda"},"license":"Apache-2.0","homepage":"https://github.com/tbeseda/header-timers#readme","keywords":["http","server-timing","header","timer"],"repository":{"type":"git","url":"git+https://github.com/tbeseda/header-timers.git"},"description":"Server-Timing HTTP header helper","maintainers":[{"name":"tbeseda","email":"tbeseda@gmail.com"}],"readme":"<h1 align=\"center\"><code>header-timers</code> ⏱️</h1>\n\n<p align=\"center\">\n  <strong>Server-Timing HTTP header helper</strong><br>\n  Create timers and report to the browser with a <code>Server-Timing</code> header.<br>\n  <a href=\"https://www.npmjs.com/package/header-timers\"><strong><code>header-timers</code> on npmjs.org »</strong></a><br>\n  <br>\n  Contents:\n  <a href=\"#Install\">Install</a>\n  •\n  <a href=\"#Usage\">Usage</a>\n  •\n  <a href=\"#Goals\">Goals</a>\n  •\n  <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing\"><code>Server-Timing</code> Reference</a>\n</p>\n\n## Install\n\n```sh\nnpm i header-timers\n```\n\n> [!NOTE]  \n> This is a Node.js library and won't work in a browser runtime.\n\n## Usage\n\nJust .js samples for now:\n\n```js\nimport HeaderTimers from 'header-timers'\n\nconst timers = HeaderTimers()\nconst { start, stop } = timers\n\nstart('open')\nstop('open')\n\nstart('database', 'collecting data') // with a description\n\nstart('analytics', 'log request data')\nawait new Promise(resolve => setTimeout(resolve, 100))\nstop('analytics')\n\nawait new Promise(resolve => setTimeout(resolve, 500))\nstop('database')\n\nconsole.log('TIMER COUNT', timers.timers().length) // 3\n\nconsole.log(timers.key)\n// \"Server-Timing\" - just in case you need it!\nconsole.log(timers.timers())\n// [ Array of Timer Objects ]\nconsole.log(timers.values())\n/**\n [\n   'open;dur=0.026ms',\n   'database;desc=\"collecting data\";dur=603.098792ms',\n   'analytics;desc=\"log request data\";dur=101.776917ms'\n ]\n*/\nconsole.log(timers.value()) \n// \"open;dur=0.014ms, database;desc=\"collecting data\";dur=603.512ms, analytics;desc=\"log request data\";dur=101.475709ms\"\nconsole.log(timers.string())\n// \"Server-Timing: open;dur=0.014ms, database;desc=\"collecting data\";dur=603.512ms, analytics;desc=\"log request data\";dur=101.475709ms\"\nconsole.log(timers.object())\n/**\n {\n   'Server-Timing': 'open;dur=0.026ms, database;desc=\"collecting data\";dur=603.098792ms, analytics;desc=\"log request data\";dur=101.776917ms'\n }\n*/\n```\n\nAlso...\n\n```js\n// ...\n\nstart(\"this won't work\")\ntimers.reset()\nstop(\"this won't work\")\n\nconsole.log('TIMER COUNT', timers.timers().length) // 0\n\nstart('reset')\nawait new Promise(resolve => setTimeout(resolve, 100))\nstop('reset')\n\nconsole.log('TIMER COUNT', timers.timers().length) // 1\n\nconsole.log('NEW Header String', timers.string())\n// NEW Header String \"Server-Timing: reset;dur=101.799166ms\"\n```\n\nAnd...\n\n```js\n// names optional; be aware of the order, though!\nstart() // 1\nstop()  // stop 1 => <1ms\n\nstart() // 2\nstart('foo')\nstart() // 3\n\nstop() // stop 3 => <1ms\n\nawait new Promise(resolve => setTimeout(resolve, 100))\n\nstop() // stop 2 => 100+ms\nstop('foo') // => 100+ms\n```\n\n## Goals\n\nBe helpful and accurate. Stay small and fast. Then be intuitive. This means:\n\n- zero dependencies\n- measure in nanoseconds\n- option to disable\n- fast primitives/operations (this needs review)\n  - no Classes\n- terse but readable API\n\n---\n\n_\"It's just strings all the way down\"_\n","readmeFilename":"README.md"}