{"_id":"@alius/timeout-promise","_rev":"5-7b8eee15d1fbbea897cb0160a037c631","name":"@alius/timeout-promise","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.1":{"name":"@alius/timeout-promise","version":"1.0.1","description":"Extended promise with timeout capability","author":{"name":"Aleksandras Novikovas","email":"Aleksandras.Novikovas@gmail.com","url":"http://www.systemtier.com/"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://aleksandras-novikovas@bitbucket.org/aleksandras-novikovas/timeout-promise.git"},"exports":{".":"./index.js","./index.js":"./index.js"},"types":"./index.d.ts","srcDir":"src","scripts":{"doc":"npx jsdoc src -c $NODE_PATH/jsdoc-import/jsdoc.json -r -d web/docs","lint":"npx eslint src test","test":"npx mocha --loader=$NODE_PATH/esml/esmLoader.js","types":"npx tsc ./src/* --declaration --allowJs --emitDeclarationOnly --esModuleInterop --outDir types"},"keywords":["Promise","timeout"],"eslintConfig":{"env":{"es2021":true,"node":true},"extends":"eslint:recommended","parserOptions":{"ecmaVersion":2022,"sourceType":"module"},"rules":{"indent":["error",2],"linebreak-style":["error","unix"],"quotes":["error","double"],"semi":["error","always"],"padded-blocks":["error",{"blocks":"never","classes":"never","switches":"never"}]}},"mocha":{"recursive":true},"gitHead":"701fa068b9476f6ce5dda40de9fef648c2bab313","bugs":{"url":"https://bitbucket.org/aleksandras-novikovas/timeout-promise/issues"},"homepage":"https://bitbucket.org/aleksandras-novikovas/timeout-promise#readme","_id":"@alius/timeout-promise@1.0.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-55U9m3pdowuNSdnZNYahN73vWTosfPeVPyvbd0w2wP+z8N4FEnetuSXiEIbgKKaPglIQ0iMBxJ8csRgxeM/xQA==","shasum":"11db9ab06cb57aa7e98c8ad78ab030ccbd8fb6cf","tarball":"https://registry.npmjs.org/@alius/timeout-promise/-/timeout-promise-1.0.1.tgz","fileCount":7,"unpackedSize":24961,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM2xO1jsUGft8p05/AMy+cBOS/lPUYAvlWEAF8IGVQMQIhAOL0MaAI9AH7rOG+TnpsrBJBbXK12q1QaZwCGw54qHUO"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqcdQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpX1g//WppaBnK60fRCHGV+fhQRlZgR3fHgnRhj5M6ZV9GFZ1uYQEVc\r\n3tUEh7yV275r+DpMWXdgkFSCx2+Tu8aEfRt7NQEJ2nASf+c9PJncQd0gkPOG\r\n0LeH76SMRcD4/BrVD0ouFETNk3dpUSysiKScox1RbtJs9QvkqxMmewND2Cx5\r\n5svIDcHXk8SoOMpKfLxdnmlTsxfBWBBd7JH0K4nhvSiCCRpeyBGvlx+1DqwC\r\nr+CQ7A6QiN2BFZ+Bt+N5Ryc8zQ8iky9KeugFxdmqDSg2XwOwP9/ksHSRiERl\r\nyuD69oqUod2wDYYGtR4nl2fcRbArL9pAcikYWuL6LLYN9fUpMfRBtO8U2N8k\r\neVSGevinJRllqpaSRGatjVy6m/GsV/TmbLSFMRZddcaiJi2skFKcZ6GFZIug\r\neBLdw8WUTGUHBOOnNOn29LZ/qGq13stqp4todXqo3SzBFCBZ4Z0Lo6DJtDoL\r\nWSS5fTXoCRWrASrgwpsFVFAwX9CGdHqrOnMq7t5N8obXW2gyEjcIuIu5JB7j\r\n36oKqCYHUYP4aKYdmffFMoRWRuMeZku3ly2ImQwUGB9xgN+e+0m6WO6U+A+G\r\n53JAQhvL8mjvsn6PjfgVM0f396uSYOUfsTN4hXEGiJPTa6K1+OVFtNIFpIg5\r\nS/TCmDP41yCaj58Q+JfQIac2szIJomGfFNw=\r\n=cSZl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"},"directories":{},"maintainers":[{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeout-promise_1.0.1_1655293776024_0.3564880540057407"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alius/timeout-promise","version":"1.0.2","description":"Extended promise with timeout capability","author":{"name":"Aleksandras Novikovas","email":"Aleksandras.Novikovas@gmail.com","url":"http://www.systemtier.com/"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://aleksandras-novikovas@bitbucket.org/aleksandras-novikovas/timeout-promise.git"},"exports":{".":"./index.js","./index.js":"./index.js"},"types":"./index.d.ts","srcDir":"src","scripts":{"doc":"npx jsdoc src -c $NODE_PATH/jsdoc-import/jsdoc.json -r -d web/docs","lint":"npx eslint src test","test":"npx mocha --loader=$NODE_PATH/esml/esmLoader.js","types":"npx tsc ./src/* --declaration --allowJs --emitDeclarationOnly --esModuleInterop --outDir types"},"keywords":["Promise","timeout"],"eslintConfig":{"env":{"es2021":true,"node":true},"extends":"eslint:recommended","parserOptions":{"ecmaVersion":2022,"sourceType":"module"},"rules":{"indent":["error",2],"linebreak-style":["error","unix"],"quotes":["error","double"],"semi":["error","always"],"padded-blocks":["error",{"blocks":"never","classes":"never","switches":"never"}]}},"mocha":{"recursive":true},"gitHead":"7442821ff6125f58a7ed12876ca91fda1d2b7554","bugs":{"url":"https://bitbucket.org/aleksandras-novikovas/timeout-promise/issues"},"homepage":"https://bitbucket.org/aleksandras-novikovas/timeout-promise#readme","_id":"@alius/timeout-promise@1.0.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-q+1W1nC4Gw2JRgZqL3a3rRMczoB3wiWRlj2YezaY0ED8Iq9ciIycTOF+DCzVhMl4sU4mBZzewUI/oECKjkXEFA==","shasum":"bf3f8932b3086327d84cb0a9b7e34a35ae662b05","tarball":"https://registry.npmjs.org/@alius/timeout-promise/-/timeout-promise-1.0.2.tgz","fileCount":7,"unpackedSize":25416,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlu+0s/xIW0B1dqCG5jwBDA9DAl/45XX3+7Y81KoMY0AiBxqJ0hPmcJK2/wFSpvQ7Ky2t4QbqtHRTd7iOVX6aD0FQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGzwvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmozbg/+Iib+7y5vJkeZKcMdztVnWUlhS7s3RA6BJHWM13/z0FF9xHiv\r\nn2jqZImf4u9DGM6odjUT/Oqwq+C66/2vOwtQs6Tzafz8C5twdy/8T2R8tMEJ\r\nTJf7Nr6zimzVes2fBf5x30tLEhG5DNTAq+tgen8bYfu+B5drdpwFNBGH29X7\r\nHPwN6UxewshA98saHywW4fkpmO1Oi9En2EAHew0K8A49TTIsxr2ivFyTunRC\r\npoyudFQHUSREAjBAJq0F/xBGN5pKhi3ptGntTG64mZe+PZRwYL0BPs9/t+l1\r\n6QoUY2HxJyOJD3lBLOVeQbxHSschZSoM8qiiwVzGX6GA+ixnwcplxolCpFKS\r\n3sxMppMd/x4P7WgcAWwBia0MaJnl02/mJVH3uti7M9U7OhwQkj592Yg3EDtz\r\nbRIam0xtTY7ThfD+A+rtKU5VLs/glfpe4v7s1p2T5WXDOH8rA2oPAw0fQdD+\r\n+35oZwanyr7XW8iQEr9m1ACVqFmdi/yjYvSbDwpL3aNXqELJTR2lnDIELniB\r\n/cZK48zJrL59QbNaLtjsQGXhNGbWt7U2dedzibJZIyvNponzSoGlJk1ZiDhF\r\nJYHyj5n4RZyeEWt4TU+C75EfrEecad0RuEOP+4h7kEYNAkxA9qdCS2bB94A1\r\ng9jVutSd3LwCWjxgy4j3QaqHMcz7hD2qoKA=\r\n=Y1d2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"},"directories":{},"maintainers":[{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeout-promise_1.0.2_1662729263466_0.7040730151553436"},"_hasShrinkwrap":false},"1.0.3":{"name":"@alius/timeout-promise","version":"1.0.3","description":"Extended promise with timeout capability","author":{"name":"Aleksandras Novikovas","email":"Aleksandras.Novikovas@gmail.com","url":"http://www.systemtier.com/"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://aleksandras-novikovas@bitbucket.org/aleksandras-novikovas/timeout-promise.git"},"exports":{".":"./index.js","./index.js":"./index.js"},"types":"./index.d.ts","srcDir":"src","scripts":{"doc":"npx jsdoc src -c $NODE_PATH/jsdoc-import/jsdoc.json -r -d web/docs","lint":"npx eslint src test","test":"npx mocha --loader=$NODE_PATH/esml/esmLoader.js","types":"npx tsc ./src/* --declaration --allowJs --emitDeclarationOnly --esModuleInterop --outDir types"},"keywords":["Promise","timeout"],"eslintConfig":{"env":{"es2021":true,"node":true},"extends":"eslint:recommended","parserOptions":{"ecmaVersion":2022,"sourceType":"module"},"rules":{"indent":["error",2],"linebreak-style":["error","unix"],"quotes":["error","double"],"semi":["error","always"],"padded-blocks":["error",{"blocks":"never","classes":"never","switches":"never"}]}},"mocha":{"recursive":true},"gitHead":"3bce5ad6fe2f0c6c84dc347a901415cef9dfaf23","bugs":{"url":"https://bitbucket.org/aleksandras-novikovas/timeout-promise/issues"},"homepage":"https://bitbucket.org/aleksandras-novikovas/timeout-promise#readme","_id":"@alius/timeout-promise@1.0.3","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-mmAzNCaoVKAD99RumR91MMNJ3JkfqQ25IaeGWIkG9hfMhuqFhDBM2XcxEB35jwFmhsJrbDalFNNBnYy0FxfGUQ==","shasum":"0ea17e5073d1454cc119951375a84ad881ea7c46","tarball":"https://registry.npmjs.org/@alius/timeout-promise/-/timeout-promise-1.0.3.tgz","fileCount":7,"unpackedSize":25447,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG7HS5qX5ldmhgsU1c9UeF9K7bR/tgaxf/8aX9TfAHhAIhAI6/6Ab2d20joajzgkEN3tyZZIPJll2y6AajTPLy5n+H"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2jiRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/3xAAmkc0WjGv4dzaTNlx/Lgahj0Ax8vGyjUWGxNwY26ELIyjiiI4\r\ngVDjrxb29xNIYl3Xdgo1YBoZe/0XeCOQswgInHIUbVaBHCb7l/VHZsxZAz5/\r\nQzpI7aSEXx6XLZiOSV/sy+80kiBjPZfIiEWtYUXmitpNlKJjCuJsVNAwVIba\r\nkbmgR1EdAWkxYOAKuWRaOJy2Qkjq2rxOMXQBMyi5TZPEct8LBWNMX2nldHQ9\r\nr94LKyGmdBCVlqCY4odR3fQkwA8iG2gv90JCUs8nWBM50Er9AHs1A4GKnwfy\r\nleehKrrWUP0gtLQawIkTJmZLYD91LaZ4VTwHQ5FurHDZN5RSXEatLz3pDRt5\r\n3R9umQk2kp7XQd6GdAUGpleDVCmzssdRxLU+lQmE0dbo3Knl1ITQrE6IU5zp\r\nNojPt4ZFpf7EUJD59rkwM54+gR8vMG8CoNhfKV8gThOVlWojNvj8FTcZqRaD\r\nuhFlh7mnDIEAs3snjE8+KNKzJkKB9ypS0gTDmZVilUPplIF5Bn/rXD5aySG4\r\n92F/kW0Mzbn3opK5juT9BlBdLYQla8/4WP/uyAD/bbhwLXunyF9Pg5kIJYLj\r\nNZHrA0rlSieXo+r8WTphxhtWsOZ+/B0XPJTLmH5RuefJGCQ6qmqEmQoK1snz\r\nQyqqPtJ3gFbwGivtTfigj+GHhVfDRG8ERiU=\r\n=mfNs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"},"directories":{},"maintainers":[{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeout-promise_1.0.3_1675245713437_0.11417008561037756"},"_hasShrinkwrap":false},"1.0.5":{"name":"@alius/timeout-promise","version":"1.0.5","description":"Extended promise with timeout capability","author":{"name":"Aleksandras Novikovas","email":"Aleksandras.Novikovas@gmail.com","url":"http://www.systemtier.com/"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://aleksandras-novikovas@bitbucket.org/aleksandras-novikovas/timeout-promise.git"},"exports":{".":"./index.js","./index.js":"./index.js"},"types":"./index.d.ts","scripts":{"doc":"npx jsdoc src -c $NODE_PATH/jsdoc-import/jsdoc.json -r -d web/docs","lint":"npx eslint src test","test":"npx mocha --loader=$NODE_PATH/esml/esmLoader.js","types":"npx tsc ./src/* --declaration --allowJs --emitDeclarationOnly --esModuleInterop --outDir types"},"keywords":["Promise","timeout"],"eslintConfig":{"env":{"es2021":true,"node":true},"extends":"eslint:recommended","parserOptions":{"ecmaVersion":2022,"sourceType":"module"},"rules":{"indent":["error",2],"linebreak-style":["error","unix"],"quotes":["error","double"],"semi":["error","always"],"padded-blocks":["error",{"blocks":"never","classes":"never","switches":"never"}]}},"mocha":{"recursive":true},"gitHead":"023cc795664b5899e7497a36eedd7ae6bd0259a6","bugs":{"url":"https://bitbucket.org/aleksandras-novikovas/timeout-promise/issues"},"homepage":"https://bitbucket.org/aleksandras-novikovas/timeout-promise#readme","_id":"@alius/timeout-promise@1.0.5","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-dluBEcF4xBPxytGxrmX9WiY307P9YlKdNnvIu2uWSATbKiXQTGG6tCr+ErpjL5vfxVbaxu9ZT4pJqxDtEcPKjw==","shasum":"52d72c7fc01757545dffd80781688b5e191999ca","tarball":"https://registry.npmjs.org/@alius/timeout-promise/-/timeout-promise-1.0.5.tgz","fileCount":7,"unpackedSize":25720,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzujprHv+s0irknDOMiRIYlopAOK5L+RQksaWDiU0fAwIgY4W9zCXnvm0W7xOKrucEBU9NyPB93y/K4FjLnaCO7xo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj21BDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUEg/+L7pE5ogYZ/EivGlrIrTSRFWfi1b0g5rx270mu7XIYTWoMHNp\r\niaCBgZhgLIGwDA9KMdxyfPzzm/lrJSqrzqf7zJQQQpO2VlGgaHN62UFhAWmX\r\nW2xpiiFBbvJBymGp5yN45THoZ/7HxtprA4oDIGbyKwTXgvL1kc5nJZGJ3e7o\r\n9ZeObMSf1BVCZ47RgL1d3knmLxQgfY39mXi7nFQ4TnYUMcuHIcPpy02zbkSR\r\n3FWEoLKfmy55kVHVndU76G0KNH0CfHE8UR+sMt2sgw+cMfn+AGXqoQgyHJz8\r\nes27K5M/f+umH8vxap/Rh+KHuz8ufzLIZQKHm7A5ZVNltVFlPAqPe/GxaqFM\r\nk7p0YVa0kxp1gCZAIOMbjSPpwmbZt6nNk5OiptOQAfqKlyL7lmVOoIrt4LT5\r\nYhHraAg97rnh2VfohmbcmKncs2ZuOOnkNtS1dmG+dKSZCgKerJi7cVOj0Wh8\r\nTlckHtVQrBhzb4MldDjnXO/KaU9YeCXuZ1u2zu01RgVuOhbNa0dAlbD0ikwP\r\nCr8Tdxg3DarYplN6CoofaGxJpqJ1o24Al5PR6a1dAdzer0aymhloqThIxcIi\r\ny2pgKO8NCYuJhaSnZdnkoDKxUVnHPYY/Zc5VSeei+XJymOyqMY2Lz7stpM6+\r\n5/A8MGmjA0xsb2EuPpWTsSDSIo+yzGgrUEw=\r\n=UvM3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"},"directories":{},"maintainers":[{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeout-promise_1.0.5_1675317315771_0.32472276912197406"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-15T11:49:35.971Z","1.0.1":"2022-06-15T11:49:36.178Z","modified":"2023-02-02T05:55:16.021Z","1.0.2":"2022-09-09T13:14:23.632Z","1.0.3":"2023-02-01T10:01:53.565Z","1.0.4":"2023-02-02T04:26:40.619Z","1.0.5":"2023-02-02T05:55:15.936Z"},"maintainers":[{"name":"alius","email":"Aleksandras.Novikovas@gmail.com"}],"description":"Extended promise with timeout capability","homepage":"https://bitbucket.org/aleksandras-novikovas/timeout-promise#readme","keywords":["Promise","timeout"],"repository":{"type":"git","url":"git+https://aleksandras-novikovas@bitbucket.org/aleksandras-novikovas/timeout-promise.git"},"author":{"name":"Aleksandras Novikovas","email":"Aleksandras.Novikovas@gmail.com","url":"http://www.systemtier.com/"},"bugs":{"url":"https://bitbucket.org/aleksandras-novikovas/timeout-promise/issues"},"license":"MIT","readme":"Extension of Promise class with timeout capability.\n\n# Installation\n```\nnpm install @alius/timeout-promise\n```\n\n# Usage\nConstructor accepts two parameters (optional): executor and timeout.\n```javascript\nimport { TimeoutPromise } from \"@alius/timeout-promise\";\n\nconst tp = new TimeoutPromise((resolve, reject) => {\n  // for example connecting to database\n}, 100);\n\n// if connection was not acquired within 100ms  - promise will be rejected\ntp.then(\n  conn => {\n    console.log(\"connected\");\n  }\n).catch(\n  err => {\n    console.log(\"failed to connect\");\n  }\n);\n```\n\nYou can defer executor function by creating new `TimeoutPromise` and later provide executor function to `execute()`.\n```javascript\nimport { TimeoutPromise } from \"@alius/timeout-promise\";\n\nconst tp = new TimeoutPromise();\n\ntp.then(\n  value => {\n    console.log(`Got value ${value}`);\n  }\n).catch(\n  err => {\n    console.log(`Got error ${err}`);\n  }\n);\n\ntp.execute((resolve, reject) => {\n  resolve(\"Defered executor completed\");\n});\n```\n\nYou can use `TimeoutPromise` as semaphore.\n```javascript\nimport { TimeoutPromise } from \"@alius/timeout-promise\";\n\nconst tp = new TimeoutPromise();\n\ntp.then(\n  value => {\n    console.log(`Got value ${value}`);\n  },\n  err => {\n    console.log(`Got error ${err}`);\n  }\n);\n\n\nif (someCondition) {\n  tp.resolve(\"Ok\");\n} else {\n  tp.reject(\"Not ok\");\n}\n```\n\n# API\n\n## Constructors\n### `TimeoutPromise()`\nCreates new promise with defered execution.\n### `TimeoutPromise(executor)`\nCreates normal promise.\n### `TimeoutPromise(timeout)`\nCreates new promise with defered execution and timeout.\nIf promise is not settled within specified amount of millisecons it will be rejected.\n### `TimeoutPromise(executor, timeout)`\nCreates new promise with timeout.\nIf promise is not settled within specified amount of millisecons it will be rejected.\n\n## Properties\n### `state`\nPossible states:\n* READY - executor function was not yet executed\n* PENDING - executor function was executed but neither `resolve()` nor `reject()` has been called yet\n* LOCKED - `resolve()` was called with other thenable (other promise) and waiting for that thenable to resolve\n* FULFILLED - promise has been resolved\n* REJECTED - promise has been rejected\n### `settled`\nReturns `true` if promise is either fulfulled or rejected\n### `value`\nIf promise has been resolved - value;\notherwise - `undefined`\n### `error`\nIf promise has been rejected - error;\notherwise - `undefined`\n\n## Methods\n### `execute(executor)`\nExecutes specified executor function.\nFunction will be executed only if promise state is either READY or PENDING.\n### `resolve(value)`\nResolves promise with specified value if promise state is either READY or PENDING.\n### `reject(err)`\nRejects promise with specified error if promise state is either READY or PENDING.\n","readmeFilename":"Readme.md"}