{"id":17581847,"url":"https://github.com/vivek12345/react-polling","last_synced_at":"2026-03-16T07:09:55.726Z","repository":{"id":33110087,"uuid":"150239550","full_name":"vivek12345/react-polling","owner":"vivek12345","description":"🔔 Polling an api made easy with react-polling","archived":false,"fork":false,"pushed_at":"2022-12-10T17:04:43.000Z","size":1734,"stargazers_count":43,"open_issues_count":26,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-18T23:03:12.283Z","etag":null,"topics":["javascript","polling-data","polling-service","react","react-polling"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vivek12345.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-25T09:24:54.000Z","updated_at":"2024-09-06T14:38:07.000Z","dependencies_parsed_at":"2023-01-14T23:30:52.699Z","dependency_job_id":null,"html_url":"https://github.com/vivek12345/react-polling","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/vivek12345/react-polling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek12345%2Freact-polling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek12345%2Freact-polling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek12345%2Freact-polling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek12345%2Freact-polling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivek12345","download_url":"https://codeload.github.com/vivek12345/react-polling/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivek12345%2Freact-polling/sbom","scorecard":{"id":924493,"data":{"date":"2025-08-11","repo":{"name":"github.com/vivek12345/react-polling","commit":"bf11ad45782aa4799d605e2638596961c4f4e852"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/16 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/npm-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/vivek12345/react-polling/npm-publish.yml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 14 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"95 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-whgm-jr23-g3j9","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-3wcq-x3mq-6r9p","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-6h5x-7c5m-7cr7","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-92xj-mqp7-vmcj","Warn: Project is vulnerable to: GHSA-wxgw-qj99-44c2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-c9g6-9335-x697","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-9m6j-fcg5-2442","Warn: Project is vulnerable to: GHSA-hh27-ffr2-f2jc","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-25T09:40:41.200Z","repository_id":33110087,"created_at":"2025-08-25T09:40:41.200Z","updated_at":"2025-08-25T09:40:41.200Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30571347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T06:02:37.763Z","status":"ssl_error","status_checked_at":"2026-03-16T06:02:14.913Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","polling-data","polling-service","react","react-polling"],"created_at":"2024-10-22T01:44:33.253Z","updated_at":"2026-03-16T07:09:55.704Z","avatar_url":"https://github.com/vivek12345.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔔 react-polling\n[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors)\n\n\n[![Build Status](https://travis-ci.com/vivek12345/react-polling.svg)](https://travis-ci.com/vivek12345/react-polling)\n\nEasy to use polling service built with react that follows the render props pattern.\n\n**Note: Read more about render props here  [Render Props Pattern](https://reactjs.org/docs/render-props.html)**\n\n### 🚚 Installation\n\n```\nyarn add react-polling\n```\n\nor\n\n```\nnpm i react-polling --save\n```\n\n### ⚡️ Usage\n\n### Default usage (the lib will internally use fetch to make api calls)\n\n```javascript\nimport React from 'react';\n\n\u003cReactPolling\n  url={'url to poll'}\n  interval= {3000} // in milliseconds(ms)\n  retryCount={3} // this is optional\n  onSuccess={() =\u003e console.log('handle success')}\n  onFailure={() =\u003e console.log('handle failure')} // this is optional\n  method={'GET'}\n  headers={headers object} // this is optional\n  body={JSON.stringify(data)} // data to send in a post call. Should be stringified always\n  render={({ startPolling, stopPolling, isPolling }) =\u003e {\n    if(isPolling) {\n      return (\n        \u003cdiv\u003e Hello I am polling\u003c/div\u003e\n      );\n    } else {\n      return (\n        \u003cdiv\u003e Hello I stopped polling\u003c/div\u003e\n      );\n    }\n  }}\n/\u003e\n```\n\n\n### Custom lib for making api calls (provide us your promise function and we will use that to make api calls)\n\n```javascript\nimport React from 'react';\n// import of some lib for making http calls\n// let's say you are using axios\nimport axios from \"axios\";\n\nconst fetchData = () =\u003e {\n  // return a promise\n  return axios.get(\"some polling url\");\n}\n\nconst App = () =\u003e {\n  return (\n    \u003cReactPolling\n      url={'url to poll'}\n      interval= {3000} // in milliseconds(ms)\n      retryCount={3} // this is optional\n      onSuccess={() =\u003e console.log('handle success')}\n      onFailure={() =\u003e console.log('handle failure')} // this is optional\n      promise={fetchData} // custom api calling function that should return a promise\n      render={({ startPolling, stopPolling, isPolling }) =\u003e {\n        if(isPolling) {\n          return (\n            \u003cdiv\u003e Hello I am polling\u003c/div\u003e\n          );\n        } else {\n          return (\n            \u003cdiv\u003e Hello I stopped polling\u003c/div\u003e\n          );\n        }\n      }}\n    /\u003e\n  );\n}\n```\n\n## 📒 Api\n\n### 🔔 react-polling\n\n| Props                   | Type                   | Default   | Description                                                                                         |\n|-------------------------|------------------------|-----------|-----------------------------------------------------------------------------------------------------|\n| url                     | string                 | null      | url/api to poll                                                                                     |\n| interval                | number                 | 3000      | Interval of polling                                                                                 |\n| retryCount              | number                 | 0         | Number of times to retry when an api polling call fails                                             |\n| onSuccess               | function               | -         | Callback function on successful polling. This should return true to continue polling                |\n| onFailure               | function               | () =\u003e {}  | Callback function on failed polling or api failure                                                  |\n| method                  | string                 | GET       | HTTP Method of the api to call                                                                      |\n| headers                 | object                 | -         | Any specific http headers that need to be sent with the request                                     |\n| body                    | object                 | -         | The data that need to be sent in a post/put call                                                    |\n| render                  | function               | -         | Render function to render the ui                                                                    |\n| promise                 | function               | -         | custom function that should return a promise                                                                    |\n| backOffFactor                 | number               | 1         | exponential back off factor for api polling(interval*backOffFactor)                                                                    |\n| children                | function               | -         | React children function based on child props pattern                                                |\n\n#### onSuccess (required)\n\nThis function will be called every time the polling service gets a successful response.\nYou should return true to continue polling and false to stop polling. It has the following signature:\n\n```javascript\nfunction onSuccess(response) {\n  // You can do anything with this response, may be add to an array of some state of your react component\n  // return true to continue polling\n  // return false to stop polling\n}\n```\n\n#### onFailure (not compulsory field)\n\nThis function will be called every time the polling service gets a failure response from the api, it can be 401 or 500 or any failure status code.\nYou can do some cleaning up of your variables or reseting the state here.\n\n```javascript\nfunction onFailure(error) {\n  // You can log this error to some logging service\n  // clean up some state and variables.\n}\n```\n\n#### promise (when you need your own api calling logic and not the default fetch which this lib uses)\nThis function will be called every time the polling service wants to poll for some data.\nIdeally inside this function you should write your api calling logic.\n\n```javascript\nfunction fetchPosts() {\n  return axios.get(\"some url\");\n}\n```\n\n#### backOffFactor(default is 1) (not compulsory field)\nThis option is only needed if you want to exponentially increase the rate at which we poll the api.\nFor example \n* if `backOffFactor` is 2 and `interval` is 3000, then the first polling call will be made after 3000ms\n* Next polling call will happen after `interval*backOffFactor` = 3000*2 = 6000ms later\n\n\n## 📦 Size\n\n\u003cimg src='./size.png' /\u003e\n\n## 👻 Examples\n\n* Basic Usage (https://codesandbox.io/s/react-polling-basic-usage-zie3j?file=/src/App.js)\n\n* Using custom promises (https://codesandbox.io/s/react-polling-custom-promise-example-n54eb?file=/src/App.js)\n\n* Dynamic Url (https://codesandbox.io/s/react-polling-custom-promise-dynamic-url-3z7h2?file=/src/App.js)\n\n## 👍 Contribute\n\nShow your ❤️ and support by giving a ⭐. Any suggestions and pull request are welcome !\n\n### 📝 License\n\nMIT © [viveknayyar](https://github.com/vivek12345)\n\n## 👷 TODO\n\n- [x] Complete README\n- [x] Add Examples and Demo\n- [x] Test Suite\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| [\u003cimg src=\"https://avatars3.githubusercontent.com/u/4931048?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVivek Nayyar\u003c/b\u003e\u003c/sub\u003e](https://www.viveknayyar.in/)\u003cbr /\u003e[📖](https://github.com/vivek12345/react-polling/commits?author=vivek12345 \"Documentation\") [💻](https://github.com/vivek12345/react-polling/commits?author=vivek12345 \"Code\") [🎨](#design-vivek12345 \"Design\") [💡](#example-vivek12345 \"Examples\") |\n| :---: |\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivek12345%2Freact-polling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivek12345%2Freact-polling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivek12345%2Freact-polling/lists"}