{"_id":"@1ib/retry","_rev":"6-463c6f74f211ce44b6539131df17dbb9","name":"@1ib/retry","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.0.0","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0"},"_id":"@1ib/retry@1.0.0","gitHead":"28386ea409d2e35071e4664973cf7a34e636db36","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-sznAir1kBh3kNqsfrSgA/oIZbWUown82HVq81yS1G4n2gf/cEk8Q5q8CGCQRNoN3Zux821zyn/TDwdnrFsHiNQ==","shasum":"132cc71b1da2e561a9a19889db46fe5cb981b8f8","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.0.0.tgz","fileCount":7,"unpackedSize":41862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCr5pHgzu43VG1YlvMmac900T8snC6+Z4sDhZw+Hg9mAiBz5fz5CHj0O+PUs+W6wjvD0Q/vVZ3GWg+EBzo2iHtjGw=="}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.0.0_1715672676555_0.12949528709625824"},"_hasShrinkwrap":false},"1.0.1":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.0.1","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0"},"_id":"@1ib/retry@1.0.1","gitHead":"032381c7e496beed4adcd071c0e74adda2a9492c","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-/d9A2KIhOAIyLXaXCeWAG+cv+snO0GwDifI5tDBWcmpACiD9rl88Y8gg55s0RdFsI7sudYfmQqRN0tWKRXbuOQ==","shasum":"7b7bacd2aebf34a852f0fa09852bde7b38ceede5","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.0.1.tgz","fileCount":7,"unpackedSize":41862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7ackl2GW/X2M1LO5IBve6PD0ZIOUmLTfrGynXnXpjfQIhAJHQ4Oti+rsyKc4KlqehZvCmLeMul8ZS7674FY+yFRNy"}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.0.1_1715673007459_0.1594474304818998"},"_hasShrinkwrap":false},"1.0.2":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.0.2","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0"},"_id":"@1ib/retry@1.0.2","gitHead":"acf3dc5d89123c0290817bf7fdc6c29e75e5fb9d","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-Lp+1E8bruQMCAwI7Qme5OCYD9r4/wjKQTQxmCz73czxcQf3sXsnaJlbuCBnagXKZTi065MoxZP2fOhkjdaYhuw==","shasum":"27b8e120d9501f7d2448b9739eba426db9f3605e","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.0.2.tgz","fileCount":7,"unpackedSize":41862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClq/p9R2/ZUlolYRzWVRW0MlGXSBwAFvvTbJeb8KpfDQIhAO4xGoRfLc0ZWO+Rc6z8jWAwnXtYW5EQnGuxj3kpH5Yl"}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.0.2_1715674049090_0.5228697628836898"},"_hasShrinkwrap":false},"1.0.3":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.0.3","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0"},"_id":"@1ib/retry@1.0.3","gitHead":"3c924151ce616e751c1718f6a09d2cfcbba16007","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-CQU6+BZN0c9uY6rUwa2yqlDHO2wf0b6HtHWX94EG+m8aUwNDKiD13d+t1IZRWlFTJ0zl/ri55+Em/j0XCYRHCw==","shasum":"ea7313d31622eb27880789472ce96d91217f0545","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.0.3.tgz","fileCount":6,"unpackedSize":6222,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4CNDWi09dCGD1ONZeGJBhce4OG4gabU00vLHs6uXbOAiEA1Klm47XQbCQDF2jfh5GopIBOC3ftYq3WxVxSfaKnnw8="}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.0.3_1715674543686_0.05639574114084578"},"_hasShrinkwrap":false},"1.0.5":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.0.5","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0"},"_id":"@1ib/retry@1.0.5","gitHead":"eb076ae7141328734b4f44f2cdb416c5e042ff7e","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-ssbdsC8lOqSMYHe8QEUApYZ8jefNAFf5mLBOiyYTtHlfY2SY0NNPZJb2xLxSqLF9nXP+J2WjEty/tFwa2CwG9Q==","shasum":"a5d5fedb381120aa1a8f81fbb219198dfb4e76db","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.0.5.tgz","fileCount":6,"unpackedSize":10665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2u8N0FxuN+J5pLhnJKTL3+84l876B2z4qGrCQR9titQIgGGPbdQtyFvyiOV9i3EVPFdClzSK3yPlD0bjf1wcW9+k="}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.0.5_1715935070956_0.19322801669793033"},"_hasShrinkwrap":false},"1.1.0":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.1.0","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0","reflect-metadata":"^0.2.2"},"_id":"@1ib/retry@1.1.0","gitHead":"fef5fd47e5e237b2cc4b04ab4a2d5a600ce82955","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-AuaDJgXrDJrQjtURdsVkt1enBxkTFs8P5NUsa5AH9c5cejK5RfB1ryxdr4V3km1VSLmGr6krNj/64fDD7JJLzw==","shasum":"27d906dba0e535e41723c7eb1cab5263f3d4b0ca","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.1.0.tgz","fileCount":8,"unpackedSize":6341,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqdI1mMSX4sV44p5f59M+yoYung/NA4tUL8HPzvyacywIhAPMHCjE3TvLFoYQHvFkOTr5JuX7RIbUfsda1Bi/ABasZ"}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.1.0_1716195963218_0.15655467303517212"},"_hasShrinkwrap":false},"1.1.1":{"name":"@1ib/retry","description":"A TypeScript utility for retrying sync/async methods that throw errors.","repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"homepage":"https://github.com/1ib/retry","author":{"name":"kingcc"},"keywords":[],"version":"1.1.1","engines":{"node":">=21"},"main":"./build/main.js","scripts":{"test":"find ./source -name '*.test.ts' -exec node --loader @swc-node/register/esm --test {} \\;","build":"tsc -p tsconfig.build.json && tsc-alias","build:watch":"tsc -p tsconfig.build.json -w && tsc-alias -w","prepublishOnly":"npm run test && npm run build","format":"prettier source/**/*.ts -w"},"devDependencies":{"@swc-node/register":"^1.9.0","@swc/core":"^1.4.5","@types/is-async-function":"^2.0.3","@types/node":"^20.11.25","prettier":"^2.3.0","ts-macros":"^2.6.0","ts-patch":"^3.1.2","tsc-alias":"^1.2.11","typescript":"next"},"dependencies":{"is-async-function":"^2.0.0","reflect-metadata":"^0.2.2"},"_id":"@1ib/retry@1.1.1","gitHead":"df9c1c07b5b8912baaa27cbd9cc09d5ad05a3041","types":"./build/main.d.ts","bugs":{"url":"https://github.com/1ib/retry/issues"},"_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-QBOUHtZFTRI+3ymriS1upcspwrDVCsqAiJsW5ck+2rDwn+Fup2t+gAw2xW1EDbfBuEXcilrdTfVrWrMHBQ7I/w==","shasum":"68b7ddca224d7ab2a6d482e450902897a57a614a","tarball":"https://registry.npmjs.org/@1ib/retry/-/retry-1.1.1.tgz","fileCount":8,"unpackedSize":7581,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBh4m0rN4kOrEHagDJe1xUYNmJK3CR419BQwiFSt0xVtAiEAjqv5TNfWaN69alQAU0yK/rI3R+S/zEOLxSVrWJsFoVs="}]},"_npmUser":{"name":"kingcc","email":"someone@mail.com"},"directories":{},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/retry_1.1.1_1716266038401_0.157547571016033"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-14T07:44:36.454Z","1.0.0":"2024-05-14T07:44:36.720Z","modified":"2024-05-21T04:33:58.748Z","1.0.1":"2024-05-14T07:50:07.611Z","1.0.2":"2024-05-14T08:07:29.253Z","1.0.3":"2024-05-14T08:15:43.876Z","1.0.5":"2024-05-17T08:37:51.205Z","1.1.0":"2024-05-20T09:06:03.354Z","1.1.1":"2024-05-21T04:33:58.563Z"},"maintainers":[{"name":"kingcc","email":"someone@mail.com"}],"description":"A TypeScript utility for retrying sync/async methods that throw errors.","homepage":"https://github.com/1ib/retry","keywords":[],"repository":{"type":"git","url":"git+ssh://git@github.com/1ib/retry.git"},"author":{"name":"kingcc"},"bugs":{"url":"https://github.com/1ib/retry/issues"},"readme":"# retry\n\nA TypeScript utility for retrying sync/async methods that throw errors.\n\nBasic usage:\n\n```ts\nimport { retry } from \"@1ib/retry\"\n\nclass {\n  // Use the `retry` decorator to retry a method if it throws an error,\n  // for a maximum of 3 tries.\n  @retry(3)\n  foo() {\n    // This method can return anything or throw an error.\n  }\n}\n```\n\nFor `async` methods:\n\n```ts\nclass {\n  // Same as before, but an async function, which means it returns a Promise.\n  // It also retries up to 3 times if an error is thrown.\n  @retry(3)\n  async foo() {\n    // This method can return anything or throw an error.\n  }\n}\n```\n\nFor custom retry logic:\n\n```ts\nimport fs from \"fs/promises\"\n\nclass {\n    // This method retries up to 3 times if an error is thrown,\n    // and only if the error is an `ENOENT` or `ENFILE` error.\n    @retry(async ({ code }: Result | Error, attempts: number) =>\n        (code === \"ENFILE\" || code === \"EMFILE\") && attempts < 3)\n    async foo(@attempts attemps?: number) {\n        console.info(`This method has been called ${attempts} times.`)\n        return fs.readFile(\"README.md\", \"utf8\")\n    }\n}\n```\n\n## Install\n\n### Node.js\n\nInstall using [npm][npm] or [yarn][yarn]:\n\n```\nnpm install @1ib/retry\n\n# or\n\nyarn add @1ib/retry\n```\n\nImport into your Node.js project:\n\n```js\n// CommonJS\nconst { retry } = require(\"@1ib/retry\")\n\n// ESM\nimport { retry } from \"@1ib/retry\"\n```\n\n### Deno\n\nInstall using [JSR](https://jsr.io):\n\n```shell\ndeno add @1ib/retry\n\n#or\n\njsr add @1ib/retry\n```\n\nThen import into your Deno project:\n\n```js\nimport { retry } from \"@1ib/retry\"\n```\n\n### Bun\n\nInstall using this command:\n\n```\nbun add @1ib/retry\n```\n\nImport into your Bun project:\n\n```js\nimport { retry } from \"@1ib/retry\"\n```\n\n\n## License\n\nThis project is licensed under the MIT.\n\n## Author\n\n[kingcc](https://github.com/kingcc)\n","readmeFilename":"README.md"}