{"_id":"isomorphic-timers-promises","_rev":"2-a17b9c53d74a441028f5a576bc3b496b","name":"isomorphic-timers-promises","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"isomorphic-timers-promises","version":"1.0.0","description":"`timers/promises` for client and server.","license":"MIT","author":{"name":"Ivan Nikolić","email":"niksy5@gmail.com","url":"http://ivannikolic.com"},"sideEffects":false,"exports":{".":{"import":"./esm/index.js","require":"./cjs/index.js"},"./package.json":"./package.json"},"main":"cjs/index.js","module":"esm/index.js","directories":{"test":"test"},"scripts":{"release":"np --no-release-draft","version":"if [ $(git rev-parse --abbrev-ref HEAD) == 'master' ]; then version-changelog CHANGELOG.md && changelog-verify CHANGELOG.md && git add CHANGELOG.md; else echo; fi","postpublish":"GITHUB_TOKEN=$GITHUB_RELEASE_TOKEN github-release-from-changelog","lint":"eslint '{index,lib/**/*,test/**/*}.js'","test:automated":"BABEL_ENV=test karma start","test:automated:watch":"npm run test:automated -- --auto-watch --no-single-run","test":"npm run lint && npm run test:automated","build":"rollup --config rollup.config.js","module-check":"node -e 'require(\"isomorphic-timers-promises\");' && node --input-type=module -e 'import \"isomorphic-timers-promises\";'","prepublishOnly":"npm run build && npm run module-check"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/plugin-transform-member-expression-literals":"^7.12.1","@babel/plugin-transform-object-assign":"^7.2.0","@babel/plugin-transform-property-literals":"^7.12.1","@babel/plugin-transform-runtime":"^7.2.0","@babel/preset-env":"^7.12.1","@babel/runtime":"^7.2.0","@rollup/plugin-babel":"^5.2.1","@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","abortcontroller-polyfill":"^1.7.3","babel-plugin-native-error-extend":"^2.0.2","babel-plugin-transform-globalthis":"^1.0.0","changelog-verify":"^1.1.2","core-js":"^2.6.5","eslint":"^7.11.0","eslint-config-niksy":"^9.0.0","eslint-config-prettier":"^6.14.0","eslint-plugin-extend":"^0.1.1","eslint-plugin-import":"^2.22.1","eslint-plugin-jsdoc":"^30.7.3","eslint-plugin-mocha":"^8.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-unicorn":"^23.0.0","esm":"^3.0.51","github-release-from-changelog":"^2.1.1","husky":"^4.3.0","karma":"^5.2.3","karma-browserstack-launcher":"^1.6.0","karma-chrome-launcher":"^3.1.0","karma-coverage-istanbul-reporter":"^3.0.3","karma-fixture":"^0.2.6","karma-html2js-preprocessor":"^1.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-rollup-preprocessor":"^7.0.0","karma-sourcemap-loader":"^0.3.7","lint-staged":"^10.4.2","mocha":"^8.2.0","np":"^6.5.0","prettier":"^2.1.2","rollup":"^2.32.1","rollup-plugin-istanbul":"^3.0.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-globals":"^1.4.0","set-immediate-shim":"^2.0.0","version-changelog":"^3.1.1"},"engines":{"node":">=10"},"keywords":["timers","promises","async","promise","settimeout","setinterval","setimmediate"],"repository":{"type":"git","url":"git+https://github.com/niksy/isomorphic-timers-promises.git"},"bugs":{"url":"https://github.com/niksy/isomorphic-timers-promises/issues"},"homepage":"https://github.com/niksy/isomorphic-timers-promises#readme","gitHead":"57040ac4f23e22d34aafd0a66f180e7267890d23","_id":"isomorphic-timers-promises@1.0.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Xn5FZT+Fz7t8IccA/NeC+lKgVaj1kt5tQKEuQUmFWWBYzSS1cl4brq82+Z4eRBVmbOTwXZFSToLrN84vbelICw==","shasum":"c776dbed69c663c86ad4e5d8c90e1b6b1ba229b1","tarball":"https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.0.tgz","fileCount":10,"unpackedSize":62955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg21JbCRA9TVsSAnZWagAA3wIP/21cnXQdowGS3Z5IoHaG\nVQgwmwX2N13RYQjZkkIMHB7nh+QTjKAM+WZ6iRz8zScg6jGdDq4yichzvSyl\n6yU+UY/g5f5Wt2s44UhAUJvJKNjvive2zJ1KVDrPEJeRP2jf8CaeQsddR1f/\nSkrjfA05eeQQJtm/B3tE7bLDWopEqoTumfZGnAxXxvUpzQN+clg5v82omlvn\nnDFe69OYMvZldyVtrTU3BhZYmgXl3mQmBIFBMPgySzPLGLGqWcuW23Ru5Rzm\ndT8MpkPfUHv/tjIC9i4Joy2Vz2N+iB7fAy5xlgYMdGdlVAhCTEECppuJrcmd\nrncHy7MJAZBVN48r6G90QbzZSk/6UoQ7Az8d9WVQqCfNQzdenPOs+rFYGfIz\nWbUidRxVnoSpQOxH6h2+gLdZjqcYumqIkDDwdtslgGIbAn0HpeWj3LJvunVI\nk1qbyagPNfS14euSOYRD8LIIgPW4LymULCB+yl3+i0HB2+yvdMo97yv3gMgn\nbpelAAIUkkQabIaXu/KEhIb/6CXRW2hMn6Gk6NL0nuKU/dM0F+WT+yoMzuKM\nObumvzpwl8vhSabROyAzBBiXkJEkaySvaMoLtaMPeoB//zWoZf7wa8VfEd6W\nRhsTQrLhOaU25oErOFWHKn+bmWMjj7sPlW54VJmoesFpLYrNwb53OZ2YIB2o\n3OyV\r\n=oV/a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtrAL5qg69AWAzU1iEjen1kNdj/se5vyHnsK3uKw6PfgIgcaAwl2ovjz6VkuEKl834IhoCDNEf3ZKTk5hkoDJ0+SQ="}]},"_npmUser":{"name":"niksy","email":"niksy5@gmail.com"},"maintainers":[{"name":"niksy","email":"niksy5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/isomorphic-timers-promises_1.0.0_1624986203249_0.8867262457582701"},"_hasShrinkwrap":false},"1.0.1":{"name":"isomorphic-timers-promises","version":"1.0.1","description":"`timers/promises` for client and server.","license":"MIT","author":{"name":"Ivan Nikolić","email":"niksy5@gmail.com","url":"http://ivannikolic.com"},"sideEffects":false,"exports":{".":{"import":"./esm/index.js","require":"./cjs/index.js"},"./package.json":"./package.json"},"main":"cjs/index.js","module":"esm/index.js","directories":{"test":"test"},"scripts":{"release":"np --no-release-draft","version":"if [ $(git rev-parse --abbrev-ref HEAD) == 'master' ]; then version-changelog CHANGELOG.md && changelog-verify CHANGELOG.md && git add CHANGELOG.md; else echo; fi","postpublish":"GITHUB_TOKEN=$GITHUB_RELEASE_TOKEN github-release-from-changelog","lint":"eslint '{index,lib/**/*,test/**/*}.js'","test:automated":"BABEL_ENV=test karma start","test:automated:watch":"npm run test:automated -- --auto-watch --no-single-run","test":"npm run lint && npm run test:automated","build":"rollup --config rollup.config.js","module-check":"node -e 'require(\"isomorphic-timers-promises\");' && node --input-type=module -e 'import \"isomorphic-timers-promises\";'","prepublishOnly":"npm run build && npm run module-check"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/plugin-transform-member-expression-literals":"^7.12.1","@babel/plugin-transform-object-assign":"^7.2.0","@babel/plugin-transform-property-literals":"^7.12.1","@babel/plugin-transform-runtime":"^7.2.0","@babel/preset-env":"^7.12.1","@babel/runtime":"^7.2.0","@rollup/plugin-babel":"^5.2.1","@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","abortcontroller-polyfill":"^1.7.3","babel-plugin-native-error-extend":"^2.0.2","babel-plugin-transform-globalthis":"^1.0.0","changelog-verify":"^1.1.2","core-js":"^2.6.5","eslint":"^7.11.0","eslint-config-niksy":"^9.0.0","eslint-config-prettier":"^6.14.0","eslint-plugin-extend":"^0.1.1","eslint-plugin-import":"^2.22.1","eslint-plugin-jsdoc":"^30.7.3","eslint-plugin-mocha":"^8.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-unicorn":"^23.0.0","esm":"^3.0.51","github-release-from-changelog":"^2.1.1","husky":"^4.3.0","karma":"^5.2.3","karma-browserstack-launcher":"^1.6.0","karma-chrome-launcher":"^3.1.0","karma-coverage-istanbul-reporter":"^3.0.3","karma-fixture":"^0.2.6","karma-html2js-preprocessor":"^1.1.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-rollup-preprocessor":"^7.0.0","karma-sourcemap-loader":"^0.3.7","lint-staged":"^10.4.2","mocha":"^8.2.0","np":"^6.5.0","prettier":"^2.1.2","rollup":"^2.32.1","rollup-plugin-istanbul":"^3.0.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-globals":"^1.4.0","set-immediate-shim":"^2.0.0","version-changelog":"^3.1.1"},"engines":{"node":">=10"},"keywords":["timers","promises","async","promise","settimeout","setinterval","setimmediate"],"repository":{"type":"git","url":"git+https://github.com/niksy/isomorphic-timers-promises.git"},"bugs":{"url":"https://github.com/niksy/isomorphic-timers-promises/issues"},"homepage":"https://github.com/niksy/isomorphic-timers-promises#readme","gitHead":"10e7842d518964dc888dfd70690d4b3474d9e43f","_id":"isomorphic-timers-promises@1.0.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==","shasum":"e4137c24dbc54892de8abae3a4b5c1ffff381598","tarball":"https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz","fileCount":10,"unpackedSize":63239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3BMnCRA9TVsSAnZWagAALDcP/32dXqluSyvsN/c8xQtP\nHbbvAd7QFoXWxZYYE6UNBxX3dIAYQsNUPLAeqJA2jw4vQkVq50TNMpw0lytD\nsl2KBNCRAc3ZSE0AxHiXNA4t7OkCRATkztk8ANIou7SMqYobN0I23P9bMFp8\nrYcjL69+t2Pg6kQQox5VQ42oqe3IwDtFXcbKPVsjqLj+UGOsCMUu9ywRdmwH\nuYxZQZjTAqt8vuk/Tm0MBz4dNLq7Z2ezxNTEjCip171Fw0SyDcXDwwfHCj7W\nlmivE04ONBRJcDGxbv8knL+xlyBeMVCcsJ3yQNWu29n1BsP3apE+85OQH5Jv\nmRKyjyvtiskdWyx3GVHcbCNXYuegZzk8WPyGKUicBwBFMEDrF6vIkF+Y806m\nF7ZeEODvh1Z6mYN0+clBG4RLP9Wvd8UN1t+xfwc94jQKpadAqVc9y1nInA6U\nQ+0YUfiomII4Y+5zNd9MO5N+GbpZdq25vH5JQw3CG5S6QVFDXFnycZwANyBw\nB4p9qRMGNTn0sdYxxYsr0CPsJRithfl9zRXEQZWREowVL8iBc8aBIQuyWmG0\n4UQ65Obeks523WhC9ToUVmpp19+2d6grjbPFwHEQeVaQQQDXx7isKfkfZ9Y2\noobp2NRx8yVHyRRpvH8+J1dA3/61mzJiaGj2WoshxEE3y3otjVss9ojmc8pf\nlEvo\r\n=Gj5g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtugdXFR6lYOdRYaqHi3cmKwMhhNZ5cK4CFGO8Vp6qhAIhANvXhyYvDXq7uoiGQglZteNeko/UEFgOw7qJINkSsVse"}]},"_npmUser":{"name":"niksy","email":"niksy5@gmail.com"},"maintainers":[{"name":"niksy","email":"niksy5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/isomorphic-timers-promises_1.0.1_1625035559303_0.2873748089868311"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-29T17:03:23.249Z","1.0.0":"2021-06-29T17:03:23.380Z","modified":"2022-05-06T06:20:24.042Z","1.0.1":"2021-06-30T06:45:59.476Z"},"maintainers":[{"name":"niksy","email":"niksy5@gmail.com"}],"description":"`timers/promises` for client and server.","homepage":"https://github.com/niksy/isomorphic-timers-promises#readme","keywords":["timers","promises","async","promise","settimeout","setinterval","setimmediate"],"repository":{"type":"git","url":"git+https://github.com/niksy/isomorphic-timers-promises.git"},"author":{"name":"Ivan Nikolić","email":"niksy5@gmail.com","url":"http://ivannikolic.com"},"bugs":{"url":"https://github.com/niksy/isomorphic-timers-promises/issues"},"license":"MIT","readme":"# isomorphic-timers-promises\n\n[![Build Status][ci-img]][ci]\n[![BrowserStack Status][browserstack-img]][browserstack]\n\n[`timers/promises`](https://nodejs.org/api/timers.html#timers_timers_promises_api)\nfor client and server.\n\n> The `timers/promises` API provides an alternative set of timer functions that\n> return `Promise` objects.\n\n## Install\n\n```sh\nnpm install isomorphic-timers-promises --save\n```\n\n## Usage\n\n```js\nimport {\n\tsetTimeout,\n\tsetImmediate,\n\tsetInterval\n} from 'isomorphic-timers-promises';\n\n(async () => {\n\tconst result = await setTimeout(100, 'becky');\n\tconsole.log(result); // 'becky'\n})();\n\n(async () => {\n\tconst result = await setImmediate('maya');\n\tconsole.log(result); // 'maya'\n})();\n\n(async () => {\n\tlet result = 0;\n\tfor await (const startTime of setInterval(100, Date.now())) {\n\t\tconst now = Date.now();\n\t\tresult = result + 1;\n\t\tif (now - startTime >= 1000) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tconsole.log(result); // 10\n})();\n```\n\n### Usage with Webpack\n\n<details>\n\t\n<summary>Show me</summary>\n\n```js\n// webpack.config.js\nmodule.exports = {\n\t// ...\n\tresolve: {\n\t\talias: {\n\t\t\t'timers/promises': 'isomorphic-timers-promises'\n\t\t}\n\t}\n};\n```\n\n</details>\n\n### Usage with Rollup\n\n<details>\n\t\n<summary>Show me</summary>\n\n```js\n// rollup.config.js\nconst { default: resolve } = require('@rollup/plugin-node-resolve');\nconst alias = require('@rollup/plugin-alias');\n\nmodule.exports = {\n\t// ...\n\tplugins: [\n\t\tresolve(),\n\t\talias({\n\t\t\tentries: {\n\t\t\t\t'timers/promises': 'isomorphic-timers-promises'\n\t\t\t}\n\t\t})\n\t]\n};\n```\n\n</details>\n\n## API\n\n### setTimeout([delay[, value[, options]]])\n\nReturns: `Promise`\n\n| Property         | Type          | Default | Description                                                                                                                                  |\n| ---------------- | ------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `delay`          | `number`      | `1`     | The number of milliseconds to wait before fulfilling the promise.                                                                            |\n| `value`          | `*`           |         | A value with which the promise is fulfilled.                                                                                                 |\n| `options.ref`    | `boolean`     | `true`  | Set to `false` to indicate that the scheduled timeout should not require the event loop to remain active. Valid only for server environment. |\n| `options.signal` | `AbortSignal` |         | An optional `AbortSignal` that can be used to cancel the scheduled timeout.                                                                  |\n\n### setImmediate([value[, options]])\n\nReturns: `Promise`\n\n| Property         | Type          | Default | Description                                                                                                                                    |\n| ---------------- | ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| `value`          | `*`           |         | A value with which the promise is fulfilled.                                                                                                   |\n| `options.ref`    | `boolean`     | `true`  | Set to `false` to indicate that the scheduled immediate should not require the event loop to remain active. Valid only for server environment. |\n| `options.signal` | `AbortSignal` |         | An optional `AbortSignal` that can be used to cancel the scheduled immediate.                                                                  |\n\n### setInterval([delay[, value[, options]]])\n\nReturns: async iterator that generates values in an interval of `delay`.\n\n| Property         | Type          | Default | Description                                                                                                                                                     |\n| ---------------- | ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `delay`          | `number`      | `1`     | The number of milliseconds to wait between iterations.                                                                                                          |\n| `value`          | `*`           |         | A value with which the iterator returns.                                                                                                                        |\n| `options.ref`    | `boolean`     | `true`  | Set to `false` to indicate that the scheduled timeout between iterations should not require the event loop to remain active. Valid only for server environment. |\n| `options.signal` | `AbortSignal` |         | An optional `AbortSignal` that can be used to cancel the scheduled timeout between operations.                                                                  |\n\n## Node and browser support\n\nSupports Node 10+.\n\nTested in Chrome 72, Firefox 65, Internet Explorer 11 and should work in all\nmodern browsers.\n\nCheck\n[support based on Browserslist configuration](https://browserslist.dev/?q=bGFzdCAzIG1ham9yIHZlcnNpb25zLCBzaW5jZSAyMDE5LCBub3QgaWUgPD0gMTAsIG5vZGUgMTA%3D)).\n\nAssumes `Promise`, `AbortController` and `setImmediate` are polyfilled or\navailable in global context.\n\n## Test\n\nFor automated tests, run `npm run test:automated` (append `:watch` for watcher\nsupport).\n\nTest suite is taken and modified from official Node.js repository\n([`setTimeout`](https://github.com/nodejs/node/blob/master/test/parallel/test-timers-timeout-promisified.js),\n[`setImmediate`](https://github.com/nodejs/node/blob/master/test/parallel/test-timers-immediate-promisified.js),\n[`setInterval`](https://github.com/nodejs/node/blob/master/test/parallel/test-timers-interval-promisified.js)).\n\n## License\n\nMIT © [Ivan Nikolić](http://ivannikolic.com)\n\n<!-- prettier-ignore-start -->\n\n[ci]: https://travis-ci.com/niksy/isomorphic-timers-promises\n[ci-img]: https://travis-ci.com/niksy/isomorphic-timers-promises.svg?branch=master\n[browserstack]: https://www.browserstack.com/\n[browserstack-img]: https://www.browserstack.com/automate/badge.svg?badge_key=Tm5vWkh0c2l3U0lKVEtOSkxVcGFvSUs3VVZ0dHZOcHROMWtoUmlIZ1lVaz0tLUgwQ1JoSEU1YStCTi9SSTZ4RWRBRkE9PQ==--81b6442621a16459ec7e2e40dab413dff6c62aaa\n\n<!-- prettier-ignore-end -->\n","readmeFilename":"README.md"}