{"_id":"@electrovir/cached-promise","_rev":"1-398809d49b17af1b18e60fd4a6c8eb89","name":"@electrovir/cached-promise","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.0":{"name":"@electrovir/cached-promise","version":"0.0.0","description":"Cache promises when deeply-checked triggers change.","keywords":["cache","promise","cached-promise","promises","trigger","update","electrovir"],"homepage":"https://github.com/electrovir/cached-promise","bugs":{"url":"https://github.com/electrovir/cached-promise/issues"},"repository":{"type":"git","url":"git+https://github.com/electrovir/cached-promise.git"},"license":"MIT","author":{"name":"electrovir","url":"https://github.com/electrovir"},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","scripts":{"compile":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","docs:update":"virmator code-in-markdown --index src/index.ts README.md","format":"virmator format","publish":"virmator publish \"npm run compile && npm run test:all\"","start":"npm install && virmator frontend","test":"virmator test-web","test:all":"npm run test:types && npm run test:coverage && npm run test:spelling && npm run test:format && npm run test:docs","test:coverage":"npm run test coverage","test:docs":"virmator code-in-markdown check --index src/index.ts README.md","test:format":"virmator format check","test:spelling":"virmator spellcheck","test:types":"tsc --noEmit"},"dependencies":{"@augment-vir/common":"^13.2.1"},"devDependencies":{"@augment-vir/browser":"^13.2.1","@augment-vir/browser-testing":"^13.2.1","@open-wc/testing":"^3.1.7","@types/mocha":"^10.0.1","@web/dev-server-esbuild":"^0.3.4","@web/test-runner":"^0.15.1","@web/test-runner-commands":"^0.6.5","@web/test-runner-playwright":"^0.9.0","@web/test-runner-visual-regression":"^0.7.0","cspell":"^6.30.2","istanbul-smart-text-reporter":"^1.1.1","markdown-code-example-inserter":"^0.3.0","prettier":"^2.8.7","prettier-plugin-interpolated-html-tags":"^0.0.3","prettier-plugin-jsdoc":"^0.4.2","prettier-plugin-multiline-arrays":"^1.1.3","prettier-plugin-organize-imports":"^3.2.2","prettier-plugin-packagejson":"^2.4.3","prettier-plugin-sort-json":"^1.0.0","prettier-plugin-toml":"^0.3.1","virmator":"^6.2.2"},"publishConfig":{"access":"public"},"gitHead":"855862e18549bc1a059435f8ece671c773eb3a56","_id":"@electrovir/cached-promise@0.0.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Po2ZOS5L8xK1isSqa6R2Km5m7DXULMb3TexhpK9UiToI2Os8qkbkdjvm6xM0m0iz+0wP/rGrD8o1EeL6osir9Q==","shasum":"675441fab8aef71098fe2f72b1cb59fcf904255c","tarball":"https://registry.npmjs.org/@electrovir/cached-promise/-/cached-promise-0.0.0.tgz","fileCount":9,"unpackedSize":7872,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBevnXIflU7Pye1izkp1U2awHOxSYAu7cQ6wDYx2O527AiA0OavhPk5BylFZDt0lrXNzGXW9y0Jr3MbIqKgQ1BOS+w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHzvjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJqBAAjfRdvpX2YMPE5y/O93+j24Kr0mm/MgWE9AvXTJLv/YxqM8HV\r\nZOjDF9aDviV1s91GiejKh64a3qkq81WD7647Kcd0TMIRR8L6WEQVgVa1m2xt\r\n8BtydVBHGWLhxH6iIwDaK6piwWXGgz5f4jycdTbgHajKmaUNhaDIwjg8wcXS\r\n9qi9sKUlaFKAGpBUNSGcOq4hBQ6Pu9CemnABSxBVhS0qXRzgA2hMyYmU5bSC\r\nOZeqTgJ8C2HzPPvckM2WiJzKp7cZURvw24A8oPZ6IDap677vs3lumfkltJ0F\r\ne/fvnGCbBLA4xUl4IZqwSzXjv8uCQZ/SgH3gN3rHY//d6X68FHVuWbSkxkPJ\r\nadT0oJz5twkxe8PPMIH0tLdn7jDni5LvCwrlBjbR+ZmIs5a4ERzpX8ZfhV6i\r\ni1/AXfuAwAFT3BB3mKDttM2obpgs600fo5ZMxFxIPvHa3zwmAXPzDGfkc6vf\r\nurxQfEzBNxdejeKTetEwmrH9vN9hREogUZuiJaMgeGuyeBgDd9G8Y0PcKV4B\r\ndm8hHWvofrDwnYtoSiuFm+PtBR/50NtW9FlFDdDuoiSecX6pArrWrRY+VFz7\r\n7sfc28xzZE38H8Flqxz9p9huNgEJfcm5ZbTQqIrXAlOziITaTyhOOxrNdAQZ\r\nxzz5hQ9AmTGaQ2FbKBKN7/T/96Y+ndzY/iw=\r\n=UtE6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"electrovir","email":"pithy.gut0a@icloud.com"},"directories":{},"maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cached-promise_0.0.0_1679768547595_0.22539648681752844"},"_hasShrinkwrap":false},"0.0.1":{"name":"@electrovir/cached-promise","version":"0.0.1","description":"Cache promises when deeply-checked triggers change.","keywords":["cache","promise","cached-promise","promises","trigger","update","electrovir"],"homepage":"https://github.com/electrovir/cached-promise","bugs":{"url":"https://github.com/electrovir/cached-promise/issues"},"repository":{"type":"git","url":"git+https://github.com/electrovir/cached-promise.git"},"license":"MIT","author":{"name":"electrovir","url":"https://github.com/electrovir"},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","scripts":{"compile":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","docs:update":"virmator code-in-markdown --index src/index.ts README.md","format":"virmator format","publish":"virmator publish \"npm run compile && npm run test:all\"","start":"npm install && virmator frontend","test":"virmator test-web","test:all":"npm run test:types && npm run test:coverage && npm run test:spelling && npm run test:format && npm run test:docs","test:coverage":"npm run test coverage","test:docs":"virmator code-in-markdown check --index src/index.ts README.md","test:format":"virmator format check","test:spelling":"virmator spellcheck","test:types":"tsc --noEmit"},"dependencies":{"@augment-vir/common":"^13.2.1"},"devDependencies":{"@augment-vir/browser":"^13.2.1","@augment-vir/browser-testing":"^13.2.1","@open-wc/testing":"^3.1.7","@types/mocha":"^10.0.1","@web/dev-server-esbuild":"^0.3.4","@web/test-runner":"^0.15.1","@web/test-runner-commands":"^0.6.5","@web/test-runner-playwright":"^0.9.0","@web/test-runner-visual-regression":"^0.7.0","cspell":"^6.30.2","istanbul-smart-text-reporter":"^1.1.1","markdown-code-example-inserter":"^0.3.0","prettier":"^2.8.7","prettier-plugin-interpolated-html-tags":"^0.0.3","prettier-plugin-jsdoc":"^0.4.2","prettier-plugin-multiline-arrays":"^1.1.3","prettier-plugin-organize-imports":"^3.2.2","prettier-plugin-packagejson":"^2.4.3","prettier-plugin-sort-json":"^1.0.0","prettier-plugin-toml":"^0.3.1","virmator":"^6.2.2"},"publishConfig":{"access":"public"},"gitHead":"209a2ddf373708638d25fe57f9928047133bf40e","_id":"@electrovir/cached-promise@0.0.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-iDxiX5EulxCJmQxyY+o7mx59P8dKna74vnTl+MVJI+eBZOw8qLvZasVZ9BhAaYredbsu7pWW01xvXkD7Zs1TGw==","shasum":"fee35a9376946ea3d9dc81ec8f5334da07d001f4","tarball":"https://registry.npmjs.org/@electrovir/cached-promise/-/cached-promise-0.0.1.tgz","fileCount":9,"unpackedSize":7899,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE5SCzM1hmn2oXN1trG21YtVUyvmjrh55QS+tAD545v7AiEA2AXjFdkTKuAi+YO7oVUTpVlUHHfB341WdP2euI6Kua4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkH6HSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsQRAAjvF7W6GW1zy9Ck0S2+R8301IYmSOn8lywaNiYcpb6622sXXz\r\n+45Oo9RZavGTHxJRIs6LBkIgeSE3iKOFmVB+c5ePMdlnUfZGREFsVAuJQSJ1\r\nCSu1qB5SFOXo5cqEtT/RkTXLW6su6uizrmRCWJ8fI2AX18kePQnwepa3decn\r\nX2bGrpPjhGweEjZDrVKOiAntRbpzdxIskGJa6nw5sDFP+Pbf+dPl8vbZGIse\r\nFe1DNxEGexEnhDSXIaTOKYsM/mZog6kxfY/w/CXbYDFZpouAP3+nKGk5V2cv\r\n9Cd2hCzBixW4nRtIIiuN7GS8eppCiwTDR3FN9OGxTbeRB+PhigMiL/sX0IEe\r\n3whzjziqDuQu2RMsvStnpvYA1Z92u/YfSsTLIxkAdPLXDmoLHxW3jXXidwsm\r\niWo6SvOaBtkVgXO5BGiFfFH5oSDz1Mp2PuxpPZZs5Ni+AUCtnuLN9EiEutKW\r\np3S6yzdnV1iK9LfDXvspkTwTf7O5bLOMz87YvJHLGKiNjgadbcdh+6KX4+Al\r\nWwFhwazTR99C0MF5nJvrRLpecp10I/PIVdiJPcI3SXg8Wi7qsuolONnfNNwt\r\nWDVqSnFeItmua8tQExYJHgdraw8pz9ecnnwvsS3aJ+SmINdN/aQ0nMRIueqv\r\njPGOwQWwm10HCV7qHzoRzD/ksHNNV0L8Vq8=\r\n=e6dG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"electrovir","email":"pithy.gut0a@icloud.com"},"directories":{},"maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cached-promise_0.0.1_1679794642277_0.16054374736392996"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-25T18:22:27.515Z","0.0.0":"2023-03-25T18:22:27.759Z","modified":"2023-03-26T01:37:22.588Z","0.0.1":"2023-03-26T01:37:22.448Z"},"maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"description":"Cache promises when deeply-checked triggers change.","homepage":"https://github.com/electrovir/cached-promise","keywords":["cache","promise","cached-promise","promises","trigger","update","electrovir"],"repository":{"type":"git","url":"git+https://github.com/electrovir/cached-promise.git"},"author":{"name":"electrovir","url":"https://github.com/electrovir"},"bugs":{"url":"https://github.com/electrovir/cached-promise/issues"},"license":"MIT","readme":"# cached-promise\n\nCache promises when deeply-checked triggers change.\n\n## Installation\n\n```bash\nnpm i @electrovir/cached-promise\n```\n\n## Usage\n\nSee example code below:\n\n<!-- example-link: src/readme-examples/main-example.example.ts -->\n\n```TypeScript\nimport {createCachedPromise} from '@electrovir/cached-promise';\n\nasync function example() {\n    //\n    //  Basic Usage\n    //\n\n    // creates a cached promise with inner typeof number\n    const myCachedPromise = createCachedPromise<number>();\n\n    // get the promise\n    const myNumber: number = await myCachedPromise.get({\n        async createPromise() {\n            return Math.random();\n        },\n        triggers: {trigger1: 'super', trigger2: 'easy'},\n    });\n\n    //\n    // How \"triggers\" works\n    //\n\n    // this will not trigger a new promise because it deeply equals the already used triggers above\n    const mySameNumber: number = await myCachedPromise.get({\n        async createPromise() {\n            return Math.random();\n        },\n        triggers: {trigger1: 'super', trigger2: 'easy'},\n    });\n\n    // this will trigger a new promise because the triggers input changed\n    const newNewNumber: number = await myCachedPromise.get({\n        async createPromise() {\n            return Math.random();\n        },\n        triggers: {trigger1: 'super', trigger2: 'different easy'},\n    });\n}\n\nexample();\n```\n","readmeFilename":"README.md"}