{"_id":"react-geiger","_rev":"8-168a61bc5c07ed8ff4ed943d0e64aadf","name":"react-geiger","dist-tags":{"latest":"1.2.3"},"versions":{"1.0.0":{"name":"react-geiger","version":"1.0.0","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.0.0","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"dist":{"shasum":"5a98a34ddc08bd0ac21997b02e668e6a7cd9cb9e","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.0.0.tgz","fileCount":7,"integrity":"sha512-RKsbnQPg8jQEUB0x8LIABMIBbMToDUQzwSLKLP1INEtqAKHHOlLQJ84eydVt+WkVHM6ovSsik+qhEGoYpj4EvA==","signatures":[{"sig":"MEYCIQDzM0p3hUrUedxCQGyynk80hZs/NwsAm5H3yt8hFBoHkAIhAJX+5EDt+JjzyMrMARE/P3t3ztUDgxUVbuP/fofy7KTK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7709},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"11071c8ebb84cac547701f4ff38dd9f5e00af3f4","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"_npmVersion":"10.2.5","description":"Audiolize React performance","directories":{},"_nodeVersion":"20.5.1","dependencies":{"@tsconfig/vite-react":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.0.0_1709998830595_0.0983397818487286","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"react-geiger","version":"1.0.1","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.0.1","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"dist":{"shasum":"f7a973a3ddd7d0c421b24a68717eaf21728b02a3","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.0.1.tgz","fileCount":9,"integrity":"sha512-0+ISwf6iNs2foQWN2FSZvAtnfkQVB78Z8EEiDhUy6+8AFMtRZRNhun22DizkVw0MOY50p0RORTfo/goPmOuxxQ==","signatures":[{"sig":"MEUCIET08lbFUsc+FZMWUCbO/72ODe58roRFNsJ/Yz0Y75RLAiEAsa9CIz3aHPr9Qenn3reVtOIIq/7O8g9WbcMiWr/nYTQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154016},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"11071c8ebb84cac547701f4ff38dd9f5e00af3f4","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"_npmVersion":"10.2.5","description":"Audiolize React performance","directories":{},"_nodeVersion":"20.5.1","dependencies":{"@tsconfig/vite-react":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.0.1_1709998971254_0.007411529074461187","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"react-geiger","version":"1.0.2","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.0.2","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"homepage":"https://github.com/kristiandupont/react-geiger","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"dist":{"shasum":"e3b496087afefdcf22ba087def11a5bc66bd18ab","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.0.2.tgz","fileCount":7,"integrity":"sha512-j26PREp3lsVRupYkP5XimVFP86Hl4huJ3uO9a2OB7l65zaMs8KJGwZxMDDz1JnUO560gPzNyqBMjqT2GwJYWiQ==","signatures":[{"sig":"MEYCIQD/hFj1o1asqbg4soB+vXpKo9w2vkPhYiG0itP1LLJGTAIhAIrXP7cUimdglcRkJ2EkopfaBJbxdF6BdwBgZEjzs8rw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7958},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b4706ad413bb9865ecce41a434b7acf870914854","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"repository":{"url":"git+ssh://git@github.com/kristiandupont/react-geiger.git","type":"git"},"_npmVersion":"10.2.5","description":"Audiolize React performance","directories":{},"_nodeVersion":"20.5.1","dependencies":{"@tsconfig/vite-react":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.0.2_1710006991228_0.7644715152270327","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"react-geiger","version":"1.1.0","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.1.0","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"homepage":"https://github.com/kristiandupont/react-geiger","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"dist":{"shasum":"0d07c35a40860f1d03914d0523b1a9f1f545aa29","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.1.0.tgz","fileCount":7,"integrity":"sha512-Zi5MGdrDaVevzVrmhrGld0449LNvJugvKplzM/OXn8zbcX/9rJOmxAtNwCTNu8o/gJzkcN730fsw4YCF4CkhEw==","signatures":[{"sig":"MEUCIHKem5FUQ15G5ZTXwHQ4vH5Il3SkPdUl3P0yWJR+ZWANAiEAgRqHEKvoK4wFsXNIKuK5lyVUd7lxQrM+MvNVbVGqoIo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8037},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7f6e90c85f9485df224b2e56219b30a6aa785bed","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"repository":{"url":"git+ssh://git@github.com/kristiandupont/react-geiger.git","type":"git"},"_npmVersion":"10.2.5","description":"Audiolize React performance","directories":{},"_nodeVersion":"20.5.1","_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.1.0_1710268068289_0.42558916087351273","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"react-geiger","version":"1.2.0","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.2.0","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"homepage":"https://github.com/kristiandupont/react-geiger","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"dist":{"shasum":"1a8857ca32f907204bb5699969467b174b6fff97","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.2.0.tgz","fileCount":7,"integrity":"sha512-8DYxEWIE66Rb+8A9rVd+Z7a1lQtGxFoRObOz+UC+elvskNQqp5y5PdpS9u/4XOiG903ZuPVMReTJ3bJdLfaLnA==","signatures":[{"sig":"MEUCIQC9JkUaaYdFuruz6HpfZb1/NX5b8yGxJpCfIxNt7CXKrgIgPZVqgiJWrb4AWBJ3WmMr6n3Az3+lQVbj9qA3IUbmKrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9390},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8be41dffeab69c93df9c5ddbc1acd8ef1fe34382","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"repository":{"url":"git+ssh://git@github.com/kristiandupont/react-geiger.git","type":"git"},"_npmVersion":"10.2.5","description":"Audiolize React performance","directories":{},"_nodeVersion":"20.5.1","_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.2.0_1713028629049_0.7627815522638104","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"react-geiger","version":"1.2.1","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.2.1","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"homepage":"https://github.com/kristiandupont/react-geiger","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"dist":{"shasum":"42c4d724b32c22dfa69e749b01e0ea1955a619d9","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.2.1.tgz","fileCount":7,"integrity":"sha512-VDlPjcUixNuRymyBnsxi1Uy4IlFhDJPvEhW14g+FbvCpOmO23XMV3nrh44woxdh4zUPOuJgf9jGz/w+l8e7mVQ==","signatures":[{"sig":"MEUCIAe26ChYJT0G3oCkucqJM46CCZo110fNSK4/X5R2vhYhAiEA339sFp6o+ZeN2OSzFOYaX7drhSnBw2ZXKfOButmYusM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9401},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0dfb9bd1ad8a8b61393cd73c48e0156bd9e7cd59","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"repository":{"url":"git+ssh://git@github.com/kristiandupont/react-geiger.git","type":"git"},"_npmVersion":"10.7.0","description":"Audiolize React performance","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.2.1_1738570683264_0.9407527410989809","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"react-geiger","version":"1.2.2","keywords":["react","performance","profiling"],"author":{"url":"http://www.kristiandupont.com","name":"Kristian Dupont"},"license":"ISC","_id":"react-geiger@1.2.2","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"homepage":"https://github.com/kristiandupont/react-geiger","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"dist":{"shasum":"cd46b5ff0d9f15e32517ddbe38b9bb5088d543fb","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.2.2.tgz","fileCount":7,"integrity":"sha512-d9K/VLHHKD+KALznd3VQ78C+NjnRUALctsgDcEBPnff6M8NSYbjGm/j8nruVfOWFkp3qRou7qEBGjdaxUXJ/Ug==","signatures":[{"sig":"MEQCIE/rn446vtm3Favf9NXgOQX5jNCR5thQDuXmgCwCJ1hJAiBEMV6RUtDuGwYuO9RAvPfCsuYHY/+rNr6lhVBsJYKXCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9401},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d110994bac0d0d08801a6eb6a3cf49b9a0973826","scripts":{"lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"repository":{"url":"git+ssh://git@github.com/kristiandupont/react-geiger.git","type":"git"},"_npmVersion":"10.7.0","description":"Audiolize React performance","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"devDependencies":{"@tsconfig/recommended":"^1.0.3","@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geiger_1.2.2_1754570078310_0.15890135675190398","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"react-geiger","version":"1.2.3","description":"Audiolize React performance","repository":{"type":"git","url":"git+ssh://git@github.com/kristiandupont/react-geiger.git"},"homepage":"https://github.com/kristiandupont/react-geiger","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","lint":"eslint . -f visualstudio --report-unused-disable-directives --ext .ts,.tsx"},"keywords":["react","performance","profiling"],"author":{"name":"Kristian Dupont","url":"http://www.kristiandupont.com"},"license":"ISC","devDependencies":{"@kristiandupont/dev-deps":"^2.24.0","@kristiandupont/dev-deps-react":"^1.7.0","@tsconfig/recommended":"^1.0.3"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"_id":"react-geiger@1.2.3","gitHead":"76c861c5fa98793a8c8011e900e1941ba426342a","bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"_nodeVersion":"24.11.1","_npmVersion":"10.7.0","dist":{"integrity":"sha512-HetH/cjJX1T9P6WFcIjrp+pk7LFNRpxYH1Kr3AMiJMX9YUTgylVnWmBYb1CkM6JXvTtsJYy0RO1CnxPgYNK8eg==","shasum":"760890450edd635307316928f1cc7b00e4c4afb0","tarball":"https://registry.npmjs.org/react-geiger/-/react-geiger-1.2.3.tgz","fileCount":7,"unpackedSize":9362,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDuMdHU+eF7NU/thEfIHsL1jyYqNa0jCH/mWYJRsXjXXgIgAyZTqY4WVON7o1u1BLCL6G5rZAu9f7nNdtzGcHYMsfk="}]},"_npmUser":{"name":"kristiandupont","email":"kristian@kristiandupont.com"},"directories":{},"maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-geiger_1.2.3_1772726111966_0.49651180776024617"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-09T15:40:30.502Z","modified":"2026-03-05T15:55:12.226Z","1.0.0":"2024-03-09T15:40:30.765Z","1.0.1":"2024-03-09T15:42:51.563Z","1.0.2":"2024-03-09T17:56:31.361Z","1.1.0":"2024-03-12T18:27:48.446Z","1.2.0":"2024-04-13T17:17:09.233Z","1.2.1":"2025-02-03T08:18:03.435Z","1.2.2":"2025-08-07T12:34:38.478Z","1.2.3":"2026-03-05T15:55:12.124Z"},"bugs":{"url":"https://github.com/kristiandupont/react-geiger/issues"},"author":{"name":"Kristian Dupont","url":"http://www.kristiandupont.com"},"license":"ISC","homepage":"https://github.com/kristiandupont/react-geiger","keywords":["react","performance","profiling"],"repository":{"type":"git","url":"git+ssh://git@github.com/kristiandupont/react-geiger.git"},"description":"Audiolize React performance","maintainers":[{"name":"kristiandupont","email":"kristian@kristiandupont.com"}],"readme":"# React Geiger\n\n<img src=\"./logo.png\" height=\"100\">\n\nReact Geiger is a tool for \"audiolizing\" React performance issues. You can have it running in the background and makes little clicks which will point your attention to excessive (slow) component rerenders.\n\nPlay with it in this [playground](https://playcode.io/1793073)\n\n## Installation\n\n```bash\nnpm i react-geiger\n```\n\n## Usage\n\nYou wrap whatever you want to track in the `<Geiger>` component, and re-renders inside will cause a click if they take longer than the threshold set (default: 50ms).\n\nThe most basic setup is wrapping your entire app:\n\n```tsx\n<Geiger>\n  <App />\n</Geiger>\n```\n\nYou can also use it on a sub-tree wherever.\n\nThe options are:\n\n```tsx\n  profilerId?: string;\n  renderTimeThreshold?: number;\n  phaseOption?: PhaseOption;\n  customSoundFile?: string\n  enabled?: boolean;\n```\n\n- `profilerId` is an id that will be passed on to the `React.Profiler` component. You probably don't need to change this.\n- `renderTimeThreshold` is the time in milliseconds that will trigger a click. Default is 50ms. Set to 0 to make any re-render click\n- `phaseOption` is the phase of the render you want to track, either `'mount'`, `'update'` or `'both'` (which is the default)\n- `customSoundFile` path to a custom sound file, if you want to use something else than the default click sound\n- `enabled` defaults to true, but you can use this to disable it. Note that it relies on `React.Profiler` under the hood, which is disabled in production builds per default.\n\n![Not Great, Not Terrible](./not-great-not-terrible.jpg)\n","readmeFilename":"README.md"}