{"_id":"@charlietango/use-lazy-ref","_rev":"5-4010a4cbf564b90e0ccc9355fbf34d59","name":"@charlietango/use-lazy-ref","dist-tags":{"latest":"1.12.0"},"versions":{"1.10.0":{"name":"@charlietango/use-lazy-ref","version":"1.10.0","keywords":["react","hooks"],"license":"MIT","_id":"@charlietango/use-lazy-ref@1.10.0","maintainers":[{"name":"thebuilder","email":"dsc@charlietango.dk"}],"homepage":"https://github.com/charlie-tango/hooks#readme","bugs":{"url":"https://github.com/charlie-tango/hooks/issues"},"dist":{"shasum":"68e065e9cc90dbb81ee1d47a94f5dcf11766ef56","tarball":"https://registry.npmjs.org/@charlietango/use-lazy-ref/-/use-lazy-ref-1.10.0.tgz","fileCount":7,"integrity":"sha512-NX2P4HbVLQsSdFexJIzxmXT12CkPoWPwnbQbVImaimZTdbA9l1XzJMAXmZLyNacdI65/n8jrbpQ/bsFTjvDJBA==","signatures":[{"sig":"MEUCIQCPzvjhFeajGi7BzIQA0Y6FaDDwXmDE7mhhYhsnWpw3AgIgI1EZB/q4uZg0GGjgEJOWnhZX6y4evxm44z9tGMU6KKg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhVP/CRA9TVsSAnZWagAAbWAP/jQ3wmI5I2WPfID2D3un\n4AmLivyo4bwV7jKS/xo3O/ZQYtDqAsw4qPzN4/htK0Rn/2mla+gV/JtDbtyt\ngVTcZgLUa+fG7vGHOiNKfqPqDi6tO8hws3Xyw73C6Qo1WhF9s2atej/SIP31\nfbTrG328FnvGtIkbRKg2VDIizEf835MASruJrwIuIx9a/6L7LLHhTRe1Gn8i\nTWqdnnNOyVM0/Z7DZueZNXmwT/ndeGvxzO5FMNAlEpqK7xGCMIlLLJRquFiz\ni4+pEQLZYV0HSBDA0obKzVDmhiJjxaqr85MGbtH85Z56g2s0Ar4MuT0jITVL\nxilAqcBl45De/cIvEs6yUrXPcV2/mbjuW8gkOVr84eHG3n7dkwN6EL6b3oge\nfyQuw+1ZZem2oP/L8kCyM/5C1EvFt0PO5hMxQ4gXdplCkXvjBgFlGR2ZUFCJ\nv/Sk/tIbH2s31xMC810dZhOk3NsMWNBB6/xIJ68W2+J89+Nu+DVYziTsbNW5\nlRV9N+3bwlQZ5YnMfHbmYpPMXE1S8nC8I0DU2enZjzuJ+wLEW7keTOp80ySD\nzJPKzQNioSpmlgOhoV4Hk1HZDSHUHAohAc4z1eyN6Wg2csYdK3806+bSikE2\nC9vhyIwzT0P8+1JhcQFZ2Nnp768mitgSVHUXf+1wCog8BMIaJ6hLdsV7WAuj\nd4bs\r\n=sp/T\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"../../jest.config.js"},"main":"lib/useLazyRef.cjs.js","module":"lib/useLazyRef.esm.js","gitHead":"ad7a4405eb7f475f1f7c1a077913c68559e8ed8a","private":false,"scripts":{"lint":"eslint . --ext js,ts,tsx","test":"jest","build":"rollup -c ../../tools/rollup.config.js","pretty":"prettier '**/*.{js,ts,tsx,md,json,yml,html}' --write","prebuild":"rm -rf lib","postbuild":"tsc --noEmit false","prepublish":"yarn build"},"typings":"lib/useLazyRef.d.ts","_npmUser":{"name":"thebuilder","email":"dsc@charlietango.dk"},"repository":{"url":"git+https://github.com/charlie-tango/hooks.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (darwin)","description":"Create a new ref with lazy instantiated value","directories":{},"sideEffects":false,"_nodeVersion":"14.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-lazy-ref_1.10.0_1602573311539_0.07957653005348098","host":"s3://npm-registry-packages"},"deprecated":"No longer supported. Migrate to a new solution for support, or copy the code into the project"},"1.11.0":{"name":"@charlietango/use-lazy-ref","version":"1.11.0","keywords":["react","hooks"],"license":"MIT","_id":"@charlietango/use-lazy-ref@1.11.0","maintainers":[{"name":"thebuilder","email":"dsc@charlietango.dk"}],"homepage":"https://github.com/charlie-tango/hooks#readme","bugs":{"url":"https://github.com/charlie-tango/hooks/issues"},"dist":{"shasum":"d07c5a0662250d1612642964892fdfb57d4a7df5","tarball":"https://registry.npmjs.org/@charlietango/use-lazy-ref/-/use-lazy-ref-1.11.0.tgz","fileCount":7,"integrity":"sha512-9K1YtK75/UCiUsKOahg9OhoBnln4iuh23vYPS7eTRORl7Iu7ReJGbGC6MEHs4HUr6Wy08QtFls7WtJZmE4E4qg==","signatures":[{"sig":"MEUCIQDmnK8M3QhgcJ/BcfNRPXnO3Fn7K1Th3CKEPAGH3fr2hwIgDFAJWecAiqKx7FJ8FIzh29ia6Rx3YphrI5pO5BkobMk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYOvCRA9TVsSAnZWagAAI/0QAIU+o4LubPybr+9bxDTJ\nDu97O85h8l656er4fEoY0iiIC50S9O34qXLYl9Bty8FyAdW5BC85bkO0eNje\nVJlk8BkWRvGMunvjHp93YDjBAd7EYPy4hXneqz7olxamoNEbNn4FXEF8rJO2\n9fydg1QV7btDW8Ivl32jGv/g5/Fg/qdpl1alvdX98LddSESJh6JK+FMvE0hz\nAQeAbptyTm/06TWWOwhZoYD7eRUtdeIZw4Bx4uH2uJhckP7XxUdYuPd58HYF\nAebNFcU/IhagqnYLSoQt7ZTgNSepSP2rFxb4D2CoYW9t5BXUwTnVYS14p6JM\nOevDR9hwsOwrLvGTLvbnU0id6GpPEHxbLkyOFkH98pGRMV/2zyKYmk066Ckm\nMVEv1FqMa1lk7DpLpCsfO3VnxFEVK9vkM08Lyit9+YjqYd8Gb3+kFlCk5N3A\nBIySFltgM9K5cASo3dBfDmI4QUrd19m3TSoANG7MAC9b4KhEAjzS7CwX2UrT\noin1/FYXVM+/ctWL1HtLTX2sA7p8A7LU73Djms5zHyqvHTTX7NA4qjjVNvyu\n3J4j8a0mgX/6yMh4C9UguEqzi30XUOOs4BgzJUFejDKCW+tfipj8hghICz1U\n1sQUkuZfXHIHhQ6QR/Sqvimtxy+RGMHk9dV70FMRIkgZv37r8h0fVEuj+CsS\nVY1W\r\n=YHzN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"../../jest.config.js"},"main":"lib/useLazyRef.cjs.js","module":"lib/useLazyRef.esm.js","gitHead":"4eb959d3c8b5b2f1d12c1f1ba4bc3b50d3c8e0d9","private":false,"scripts":{"lint":"eslint . --ext js,ts,tsx","test":"jest","build":"rollup -c ../../tools/rollup.config.js","pretty":"prettier '**/*.{js,ts,tsx,md,json,yml,html}' --write","prebuild":"rm -rf lib","postbuild":"tsc --noEmit false","prepublish":"yarn build"},"typings":"lib/useLazyRef.d.ts","_npmUser":{"name":"thebuilder","email":"dsc@charlietango.dk"},"repository":{"url":"git+https://github.com/charlie-tango/hooks.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (darwin)","description":"Create a new ref with lazy instantiated value","directories":{},"sideEffects":false,"_nodeVersion":"14.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-lazy-ref_1.11.0_1603109807265_0.2836877267555824","host":"s3://npm-registry-packages"},"deprecated":"No longer supported. Migrate to a new solution for support, or copy the code into the project"},"1.12.0":{"name":"@charlietango/use-lazy-ref","version":"1.12.0","keywords":["react","hooks"],"license":"MIT","_id":"@charlietango/use-lazy-ref@1.12.0","maintainers":[{"name":"thebuilder","email":"dsc@charlietango.dk"},{"name":"frederik_bosch","email":"frederik@bosch.dev"}],"homepage":"https://github.com/charlie-tango/hooks#readme","bugs":{"url":"https://github.com/charlie-tango/hooks/issues"},"dist":{"shasum":"e3284787d73e18c4026b8d736cc7f5abc5653016","tarball":"https://registry.npmjs.org/@charlietango/use-lazy-ref/-/use-lazy-ref-1.12.0.tgz","fileCount":6,"integrity":"sha512-Mo4UkFwasHkIa2aUX9kYNs9YYVM9WhmgiAEZgfxlehTmRr2i/Q7kFRZrI+gOVAXdUqax7IeylVlccQEhZBvdVw==","signatures":[{"sig":"MEUCIQCIeFy9By0D3sJmlORZ5KRtFPJfLOQkxpZE+Nysa9s8UgIgMyI0XGiTEqudCP51YHUA1Vn/REY8qXBMW9gtrbsHYI0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWI3cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpC4Q//Q0gODqP2p3G9NrItLkUx/u8pg43HlYw3cB5T8G45Oo1AKI+V\r\nrtiNMP1Hj7EIUVnDPViffci9JSxxRYlXoRWiFHDDfS/wZsUrqN53AGOT1z55\r\nAGFftGBqVqTdWAUimWwx7+LrW5VUx190SVjRP0cSHexaSjicYNeNcZHbaFiy\r\nYBf8M/XSL/FufqVWiq6GIlSrrTr9HjsVAAr9ty6EWjZN7QVHkx2j6iTo5OX4\r\nx+rCIkHZDz0SgK58Tu/LUrtjLHN4OZMKsG/c/QWCyhpC4+MmaapiWGCW2jXh\r\nhu6Q0FGLIJyJN4fGrBCQ2J3rDhxQhOrE5AnQXlGsBspqiQFZgC4+6wpGGrxu\r\n4rYIvmjHqXL6/RkSWU/LKnSfcPCw77TZMMFnyOivdLcbXCxmaH7KkNHXf7b/\r\nuXO6Pb8wSixy0dNUgKNwQtmkBhwn9hMpfLscLvjU7ANFM0o7+Fm2PDmOVzeK\r\nXIHnaVoauV9Xb9ba85rRBWXmR6XwhWqE3ifJNFNsQw66Rvrte9fFDL6VeTIx\r\nqvepcTHRlsVmR837ROq2HRP/Ur8vJb4cNVf8Nazy7SrI6jwEhqnjt5yG6vjg\r\nPUejsVTxwXGqgbAArmqNYGY4VtxnFtCG/q2sFoTz09j/mTnpQ5GOnNna9Sii\r\nOECpvqPH2GJ1IxvtEYvKXM2SItU3Ci3WJgY=\r\n=GzZA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"../../jest.config.js"},"main":"lib/useLazyRef.cjs.js","module":"lib/useLazyRef.esm.js","gitHead":"41fc8eb0903b5edc7271aa17129a3813fb434722","private":false,"scripts":{"lint":"eslint . --ext js,ts,tsx","test":"jest","build":"rollup -c ../../tools/rollup.config.js","pretty":"prettier '**/*.{js,ts,tsx,md,json,yml,html}' --write","prebuild":"rm -rf lib","postbuild":"tsc --noEmit false","prepublish":"yarn build"},"typings":"lib/useLazyRef.d.ts","_npmUser":{"name":"thebuilder","email":"dsc@charlietango.dk"},"repository":{"url":"git+https://github.com/charlie-tango/hooks.git","type":"git"},"_npmVersion":"lerna/4.0.0/node@v17.5.0+x64 (darwin)","description":"Create a new ref with lazy instantiated value","directories":{},"sideEffects":false,"_nodeVersion":"17.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0","react-dom":"^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-lazy-ref_1.12.0_1649970651859_0.8337538341794117","host":"s3://npm-registry-packages"},"deprecated":"No longer supported. Migrate to a new solution for support, or copy the code into the project"}},"time":{"created":"2020-10-13T07:15:11.392Z","modified":"2024-07-29T12:17:54.541Z","1.10.0":"2020-10-13T07:15:11.641Z","1.11.0":"2020-10-19T12:16:47.380Z","1.12.0":"2022-04-14T21:10:52.023Z"},"bugs":{"url":"https://github.com/charlie-tango/hooks/issues"},"license":"MIT","homepage":"https://github.com/charlie-tango/hooks#readme","keywords":["react","hooks"],"repository":{"url":"git+https://github.com/charlie-tango/hooks.git","type":"git"},"description":"Create a new ref with lazy instantiated value","maintainers":[{"name":"frederik_bosch","email":"frederik@bosch.dev"},{"name":"thebuilder","email":"dsc@charlietango.dk"}],"readme":"# useLazyRef\n\nCreate a new ref with lazy instantiated value.\n\n> Checkout the [Storybook](https://ct-hooks.now.sh/?path=/story/uselazyref--readme) demo.\n\nThis is just a clean reusable helper hook for the common boilerplate:\n\n```js\nconst value = useRef()\nif (!value.current) value.current = init()\n```\n\n## Installation\n\n```sh\nyarn add @charlietango/use-lazy-ref\n```\n\n## API\n\n```ts\nconst result = useLazyRef(() => Result)\n```\n\nOnce the value has been instantiated, you cannot reset it without recreating the component.\n\n## Example\n\nA common use case is creating single instance objects, like the Apollo client.\nThis ensures the client gets created during the first render, and reused in all the following calls.\n\n```jsx\nimport React from 'react'\nimport useLazyRef from '@charlietango/use-lazy-ref'\nimport { ApolloClient } from 'apollo-client'\nimport { ApolloProvider } from '@apollo/react-hooks'\nimport { createHttpLink } from 'apollo-link-http'\n\nconst Apollo = () => {\n  const client = useLazyRef(\n    () => new ApolloClient({ link: createHttpLink({ uri: '/graphql' }) }),\n  )\n\n  return <ApolloProvider client={client.current}>{children}</ApolloProvider>\n}\n\nexport default Apollo\n```\n","readmeFilename":"readme.md"}