{"id":13437880,"url":"https://github.com/ericclemmons/react-resolver","last_synced_at":"2025-05-14T20:10:23.266Z","repository":{"id":26574642,"uuid":"30028892","full_name":"ericclemmons/react-resolver","owner":"ericclemmons","description":"Async rendering \u0026 data-fetching for universal React applications.","archived":false,"fork":false,"pushed_at":"2022-04-01T11:03:21.000Z","size":2751,"stargazers_count":1644,"open_issues_count":26,"forks_count":52,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-05-09T07:45:03.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ericclemmons.github.io/react-resolver","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericclemmons.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-29T16:15:48.000Z","updated_at":"2025-04-29T19:17:31.000Z","dependencies_parsed_at":"2022-08-27T13:10:57.978Z","dependency_job_id":null,"html_url":"https://github.com/ericclemmons/react-resolver","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericclemmons%2Freact-resolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericclemmons%2Freact-resolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericclemmons%2Freact-resolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericclemmons%2Freact-resolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericclemmons","download_url":"https://codeload.github.com/ericclemmons/react-resolver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219374,"owners_count":22034397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-07-31T03:01:00.909Z","updated_at":"2025-05-14T20:10:23.247Z","avatar_url":"https://github.com/ericclemmons.png","language":"JavaScript","readme":"# React Resolver ![https://img.shields.io/npm/v/react-resolver.svg](https://img.shields.io/npm/v/react-resolver.svg?style=flat-square) [![](https://img.shields.io/github/issues-raw/ericclemmons/react-resolver.svg?style=flat-square)](https://github.com/ericclemmons/react-resolver/issues) [![](https://img.shields.io/travis/ericclemmons/react-resolver/master.svg?style=flat-square)](https://travis-ci.org/ericclemmons/react-resolver) [![](https://img.shields.io/david/ericclemmons/react-resolver.svg?style=flat-square)](https://david-dm.org/ericclemmons/react-resolver#info=dependencies)\n\n\u003e Async-rendering \u0026 data-fetching for universal React applications.\n\nReact Resolver lets you **define data requirements _per-component_**\nand will **handle the nested, async rendering on both the server \u0026 client for you.**\n\nFor example, the following will load \u0026 provide `this.props.user` for the\n`UserProfile` component:\n\n```js\nimport { resolve } from \"react-resolver\";\n\n@resolve(\"user\", function(props) {\n  return http.get(`/api/users/${props.params.userId}`);\n})\nclass UserProfile extends React.Component {\n  render() {\n    const { user } = this.props;\n    ...\n  }\n}\n```\n\nThis is the equivalent to asynchronously loading `user` and providing it to\nthe component as if it were provided directly:\n\n```xml\n\u003cUserProfile user={user} /\u003e\n```\n\nThis makes components _pure_, _stateless_, and _easy to test_ as a result.\n\n[![](https://img.shields.io/badge/slack-@react--resolver-61DAFB.svg?style=flat-square)](http://www.reactiflux.com)\n[![](https://img.shields.io/badge/GITTER-join%20chat-green.svg?style=flat-square)](https://gitter.im/ericclemmons/react-resolver?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n- - -\n\n### Installation\n\n_For environments that don't have native `Promise` support,\ninstall [ES6 Promise](https://github.com/jakearchibald/es6-promise)._\n\n```shell\n$ npm install --save react-resolver\n```\n\n_For React v0.13 support, install [v2.x.x](https://github.com/ericclemmons/react-resolver/tree/v2.0.5)._\n\n```shell\n$ npm install --save react-resolver@2\n```\n\n\n## Documentation\n\nComplete documentation can be found here:\n\u003e \u003chttp://ericclemmons.github.io/react-resolver/\u003e\n\n- [Introduction](/docs/introduction)\n- [Getting Started](/docs/getting-started)\n\n- - -\n\n## Development\n\nIf you'd like to contribute to this project, all you need to do is clone\nthis project and run:\n\n```shell\n$ npm install\n$ npm test\n```\n\n\n## [Contributors](https://github.com/ericclemmons/react-resolver/graphs/contributors)\n\n- [Eric Clemmons](mailto:eric@smarterspam.com\u003e) ([@ericclemmons][twitter])\n- [Kier Borromeo](https://github.com/srph)\n- [Dustan Kasten](https://github.com/iamdustan)\n- [Adrian Philipp](https://github.com/adri)\n- [Daniel Lo Nigro](https://github.com/Daniel15)\n- [Daniel Chao](https://github.com/bioball)\n- [Frederick Fogerty](https://github.com/frederickfogerty)\n- [Josh Perez](https://github.com/goatslacker)\n\n\n## [License][license]\n\n\u003e Internet Systems Consortium license\n\u003e ===================================\n\u003e\n\u003e Copyright (c) 2015 Eric Clemmons\n\u003e\n\u003e Permission to use, copy, modify, and/or distribute this software for any purpose\n\u003e with or without fee is hereby granted, provided that the above copyright notice\n\u003e and this permission notice appear in all copies.\n\u003e\n\u003e THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n\u003e REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n\u003e FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n\u003e INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n\u003e OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n\u003e TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n\u003e THIS SOFTWARE.\n\n\n## Collaboration\n\nIf you have questions or issues, please [open an issue][issue]!\n\n\n[1]: https://github.com/ericclemmons/react-resolver/blob/v1/README.md\n[2]: https://github.com/ericclemmons/react-resolver/blob/v2/README.md\n[changelog]: https://github.com/ericclemmons/react-resolver/blob/master/CHANGELOG.md\n[demo]: https://cdn.rawgit.com/ericclemmons/react-resolver/master/examples/stargazers/public/index.html\n[issue]: https://github.com/ericclemmons/react-resolver/issues/new\n[license]: https://github.com/ericclemmons/react-resolver/blob/master/LICENSE\n[twitter]: https://twitter.com/ericclemmons/\n[upcoming]: https://github.com/ericclemmons/react-resolver/blob/master/CHANGELOG.md#upcoming\n","funding_links":[],"categories":["Uncategorized","JavaScript","Code Design","Index"],"sub_categories":["Uncategorized","Props from server","Async and Middleware"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericclemmons%2Freact-resolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericclemmons%2Freact-resolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericclemmons%2Freact-resolver/lists"}