{"_id":"@economist/isomorphic-relay-router","_rev":"600-9dfaee0ac3b59f30d37242df4d0fe642","name":"@economist/isomorphic-relay-router","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@economist/isomorphic-relay-router","version":"1.0.0","keywords":["isomorphic","isomorphic-react-relay","isomorphic-relay","react","react-relay","react-relay-router","react-router","react-router-relay","relay","router","server","server-rendering","server-side","server-side-rendering"],"author":{"name":"Denis Nedelyaev"},"license":"BSD-2-Clause","_id":"@economist/isomorphic-relay-router@1.0.0","maintainers":[{"name":"economist-org-bot","email":"angelorepole@economist.com"}],"homepage":"https://github.com/economist-components/isomorphic-relay-router","bugs":{"url":"https://github.com/economist-components/isomorphic-relay-router/issues"},"dist":{"shasum":"55d8e95ce3e48cab60db5ea9bd9e17cd09fd41e1","tarball":"https://registry.npmjs.org/@economist/isomorphic-relay-router/-/isomorphic-relay-router-1.0.0.tgz","integrity":"sha512-b4h5CbiKcQ1MRGOCGNy4hFv6wvotSV5jF/XNPfo6niGP+xow3qnnXw94ILrx6x7NJku82qxwbG1yGVM1IRGoVw==","signatures":[{"sig":"MEYCIQCMZPSpCQG5Ou8VpUjks7MN+pFaluXn0tnCRu1gd5IjCAIhALdKjc1fiSPEtK4OOE2kp4cblBvb2p/qySqURDAnO9y7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"55d8e95ce3e48cab60db5ea9bd9e17cd09fd41e1","gitHead":"f2c84581e1324bab587a3d78fddf6d1d63ce370d","scripts":{"test":"true","build":"babel src --out-dir lib","access":"npm-run-all --parallel access:*","prepublish":"npm run build","access:sudo":"npm access grant read-write economist:read-write-all $npm_package_name || true","postpublish":"npm run access","access:public":"npm access public $npm_package_name || true","semantic-release":"semantic-release pre || exit 0; npm publish && semantic-release post"},"_npmUser":{"name":"economist-org-bot","email":"angelorepole@economist.com"},"repository":{"url":"git+https://github.com/economist-components/isomorphic-relay-router.git","type":"git"},"_npmVersion":"3.10.10","description":"Adds server side rendering support to react-router-relay.  This package is forked from isomorphic-relay-router.","directories":{},"_nodeVersion":"6.12.0","dependencies":{"prop-types":"^15.5.0","babel-runtime":"^6.3.19","react-router-relay":"^0.14.0"},"devDependencies":{"react":"^16.0.0","babel-cli":"^6.3.17","npm-run-all":"^2.1.0","react-relay":"^1.4.1","react-router":"^3.0.0","relay-compiler":"^1.4.1","semantic-release":"^4.3.5","travis-after-all":"^1.4.4","babel-plugin-relay":"^1.4.1","babel-preset-react":"^6.3.13","babel-preset-es2015":"^6.3.13","babel-preset-stage-0":"^6.3.13","@economist/isomorphic-relay":"^1.0.0","babel-plugin-transform-runtime":"^6.3.13","babel-plugin-transform-es2015-classes":"^6.3.13"},"peerDependencies":{"react":"^0.14.8 || ^15.0.1 || ^16.0.0","react-router":">=2.3.0 <4","@economist/isomorphic-relay":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/isomorphic-relay-router-1.0.0.tgz_1511862770675_0.4295585765503347","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-11-28T09:52:51.537Z","modified":"2026-10-05T11:52:53.360Z","1.0.0":"2017-11-28T09:52:51.537Z"},"bugs":{"url":"https://github.com/economist-components/isomorphic-relay-router/issues"},"author":{"name":"Denis Nedelyaev"},"license":"BSD-2-Clause","homepage":"https://github.com/economist-components/isomorphic-relay-router","keywords":["isomorphic","isomorphic-react-relay","isomorphic-relay","react","react-relay","react-relay-router","react-router","react-router-relay","relay","router","server","server-rendering","server-side","server-side-rendering"],"repository":{"url":"git+https://github.com/economist-components/isomorphic-relay-router.git","type":"git"},"description":"Adds server side rendering support to react-router-relay.  This package is forked from isomorphic-relay-router.","maintainers":[{"email":"markmayer@eiu.com","name":"economist-org-bot"},{"email":"wellingtonvieira@economist.com","name":"wellingtonvieira"},{"email":"v.potonya@itransition.com","name":"v.potonya"},{"email":"e.lyndin@itransition.com","name":"evgenylyndin"},{"email":"tonygoodey@economist.com","name":"tonygoodey"},{"email":"nanjundaswamysainath@economist.com","name":"nanjunda-teg"},{"email":"futuraprime@gmail.com","name":"futuraprime"},{"email":"carmen.diana.dima@gmail.com","name":"diana.carmen"},{"email":"itservicedesklon@economist.com","name":"economistrobot"},{"email":"withoutnations@gmail.com","name":"withoutnations"},{"email":"barneyward@economist.com","name":"barneyward"},{"email":"ashutoshsalodkar@partner.economist.com","name":"ashutosh-teg"},{"email":"angela.maugey@kinandcarta.com","name":"angelamaugey"},{"email":"adamlewis@economist.com","name":"a-w-l"},{"email":"irfanarisnurhakim@economist.com","name":"irfan2204"},{"email":"mikeconway@economist.com","name":"mikeconway"},{"email":"jamespenrice@economist.com","name":"jamespenrice"},{"email":"matthew.hall@kinandcarta.com","name":"matt-hall-kcc"},{"email":"johnvannguyen@economist.com","name":"johnvannguyen"},{"email":"madhavsharma@economist.com","name":"madhav1-teg"},{"email":"kartik.saxena@infosys.com","name":"kartik.saxena"},{"email":"alexselbyboothroyd@economist.com","name":"alexselbyboothroyd"},{"email":"elliottmorris@economist.com","name":"elliottmorris"},{"email":"elenafayethomas@eiu.com","name":"elenafayethomas"},{"email":"rendyfebry@economist.com","name":"rendyfebry.eco"},{"email":"greg.cann.chat@gmail.com","name":"greg-cann"},{"email":"guydunton@economist.com","name":"gdunton"},{"email":"me@joshwalwyn.com","name":"drinkataco"},{"email":"fannycorlosquet@economist.com","name":"fceco"},{"email":"granko87@gmail.com","name":"tothvoj"},{"email":"JavierMorant@economist.com","name":"ecomorant"},{"email":"mattrusscouchman@gmail.com","name":"mattcouchman"},{"email":"kristynolan@economist.com","name":"kristynolan"},{"email":"johtivashisht@economist.com","name":"johti"},{"email":"webteam.services@economist.com","name":"economist-web-team"},{"email":"sukh.kalsi@kinandcarta.com","name":"sukh-kinandcarta"},{"email":"juan@otomogroove.com","name":"otomogroove"},{"email":"samualpayne@economist.com","name":"samualdjpayne"},{"email":"hannahmurphy@eiu.com","name":"impactyogi"},{"email":"shahdotrahul@gmail.com","name":"shahdotrahul"},{"email":"peter.peklansky@globallogic.com","name":"pedrito77"},{"email":"jan.stancek@globallogic.com","name":"stancek_globallogic"},{"email":"kevincarmody@economist.com","name":"kevin-economist"},{"email":"matildealiffi@economist.com","name":"matildealiffi"},{"email":"pads@thisispads.me.uk","name":"pads"},{"email":"raynelle.alphonso@kinandcarta.com","name":"raynelle03"},{"email":"rob.morgan@kinandcarta.com","name":"robmorgan-tab"},{"email":"peterforis@economist.com","name":"forpet"},{"email":"jonhinks@economist.com","name":"jonh-econ"},{"email":"davidgoodchild@economist.com","name":"davidgoodchild"},{"email":"fadumoaideed@economist.com","name":"fadumoaideed"},{"email":"jaroslav.hamrak@globallogic.com","name":"jaroslavhamrak"},{"email":"miles.loveday@gmail.com","name":"mloveday"},{"email":"irfanyasin@economist.com","name":"irfanyasin_teg"},{"email":"i.shcherba@itransition.com","name":"igorshcherba"},{"email":"ManueliNunes@economist.com","name":"manunes"},{"email":"joewillis@hotmail.com","name":"joeawillis"},{"email":"johnjameshodgins@economist.com","name":"johnjameshodgins"},{"email":"ethancevans92@gmail.com","name":"ethancevans"},{"email":"jonny.hamilton@kinandcarta.com","name":"jonny_kc"},{"email":"adjizulfiqarfauzi@economist.com","name":"adjizulfiqarfauzi"},{"email":"alankfadliawan@economist.com","name":"tegalankf"},{"email":"afiefyonaramadhana@economist.com","name":"afiefyr"},{"email":"chriscamplin@signalnoise.io","name":"chriscamplin"},{"email":"jordanwalker@economist.com","name":"jayyecm"},{"email":"craigallen@economist.com","name":"cjallen88"},{"email":"shrikrishan@economist.com","name":"shrikrishaneiu"},{"email":"kamilpoltorak@economist.com","name":"kamil_p"},{"email":"james.miller@kinandcarta.com","name":"jimhuntyeconomist"},{"email":"stephendrogalis@economist.com","name":"stevedrog"},{"email":"JohnPeragine@economist.com","name":"johnperagine"},{"email":"Simonwtaylor93@gmail.com","name":"simonwtaylor"},{"email":"toolorunsaiye@gmail.com","name":"layo_titi"},{"email":"umairyounus@economist.com","name":"umairyounus"},{"email":"bangunhariawansafutra@economist.com","name":"banguneco"},{"email":"xavigimenez@economist.com","name":"xaviergimenez"},{"email":"oliviafletchervane@gmail.com","name":"ov212"},{"email":"r.misyuk@itransition.com","name":"rmisyuk"},{"email":"npmjs@grmnd.ch","name":"grmnd"},{"email":"farnaz.ostovari@kinandcarta.com","name":"farnaz.ostovari"},{"email":"matthewarrowsmith@economist.com","name":"matthewarrowsmith"},{"email":"manishnautiyal@economist.com","name":"nautiyalmanish"},{"email":"charlottecutler@economist.com","name":"charlottecutler"},{"email":"yayankuswara@economist.com","name":"ykswra-teg"},{"email":"cristiangutu@economist.com","name":"cristiangutueconomist"},{"email":"azhar.hasan@mutualmobile.com","name":"azzuhasan"},{"email":"edem@korchagin.me","name":"edemeconomist"},{"email":"endiirawan@economist.com","name":"endiirawaneco"},{"email":"zufrizalyordan@economist.com","name":"yordan-teg"},{"email":"muhammadghazali@economist.com","name":"ghazali-teg"},{"email":"amryousef@economist.com","name":"yousea2_economist"},{"email":"laurencegladden@gmail.com","name":"larry4000"},{"email":"kellymonson+npm@protonmail.com","name":"celltowertrees"},{"email":"mfireski@gmail.com","name":"mfiresky"},{"email":"faisalrahman@economist.com","name":"faisal1505"},{"email":"liambird@economist.com","name":"liambird"},{"email":"l.gordienko@itransition.com","name":"lgordienko"},{"email":"dwisasongkosupriyadi@economist.com","name":"dwi-teg"},{"email":"rezafaizarahman@economist.com","name":"reza-eco"},{"email":"raghunathesturi@economist.com","name":"raghu-teg"},{"email":"ZeekIkomoni@economist.com","name":"zeek01"},{"email":"jake.zachariah.nixon@gmail.com","name":"jakezachariahnixon"},{"email":"leahpatel@economist.com","name":"leahpatel"},{"email":"mrdanielmensah@hotmail.co.uk","name":"danielmensah"},{"email":"teenuburi@economist.com","name":"teenuburi"},{"email":"robertthomas@economist.com","name":"robthomas72"},{"email":"marcus.speight@hotmail.co.uk","name":"wizbit77"},{"email":"shubhamshukla+1@partner.economist.com","name":"shubham-shukla-teg"},{"email":"aayushkumar@economist.com","name":"aayushkumarecon"},{"email":"rullywijoyohendrawan@economist.com","name":"rully-teg"},{"email":"renukanaik@partner.economist.com","name":"renuka-naik-teg"},{"email":"romany.sefen@globallogic.com","name":"romany-gl"},{"email":"rosamundpearce@economist.com","name":"rospearce"},{"email":"devrathad@economist.com","name":"devrath-teg"},{"email":"cristianpetre@economist.com","name":"cristianpetre-teg"},{"email":"benhalstead@economist.com","name":"benhalsteadteg"},{"email":"alexcooper@economist.com","name":"alexeco"},{"email":"nishitasahni@economist.com","name":"nishitasahni_eiu"},{"email":"Irshadfareed@economist.com","name":"irshadfareed"},{"email":"jimchua@economist.com","name":"jimc-teg"},{"email":"filippoteoldi@economist.com","name":"fteoldi"},{"email":"evheniy.dem@gmail.com","name":"yevdomin"},{"email":"martinchan@partner.economist.com","name":"econ.martinchan"},{"email":"rahuldhuri@partner.economist.com","name":"rahuldhuri"},{"email":"meghawalia@economist.com","name":"megha123"},{"email":"faizazmirekatama@economist.com","name":"faiz-teg"},{"email":"saurabhsatwani@economist.com","name":"saurabhsatwani-teg"},{"email":"rorywebber@economist.com","name":"rorywebber"},{"email":"josephclark@economist.com","name":"josephc_100"},{"email":"bimobranarto@economist.com","name":"bbimo-teg"},{"email":"michaelfleshman@economist.com","name":"cto-economist"},{"email":"olumideosikomaiya@economist.com","name":"olumideosikomaiya"},{"email":"mayankdhanawade@partner.economist.com","name":"mayank-dhanawade-teg"},{"email":"deepeshyadav@partner.economist.com","name":"deepesh-yadav-teg"},{"email":"sarthaksrivastava@partner.economist.com","name":"sarthak-srivastava-teg"},{"email":"walterbassage@economist.com","name":"walteco"},{"email":"o2.vysotskaya@itransition.com","name":"ovysotskaya"},{"email":"serendavies@economist.com","name":"ninjanailseconomist"},{"email":"Connorpayne@economist.com","name":"connorpayne"},{"email":"lenface.apps@gmail.com","name":"lenface"},{"email":"sagaryadav@partner.economist.com","name":"sagar-yadav-teg"},{"email":"shivpathak@economist.com","name":"shivpathak-teg"},{"email":"navsheelbiral@partner.economist.com","name":"navsheel-biral-teg"},{"email":"benpeh@economist.com","name":"benpeh"},{"email":"vinodk.info@gmail.com","name":"virajvinodkumar"},{"email":"yashikajibhakate@partner.economist.com","name":"yashika-jibhakate-teg"},{"email":"AjeetSingh@economist.com","name":"ajeet-singh024"},{"email":"alaukikchauhan@economist.com","name":"alaukik-chauhan"},{"email":"kimtungtran@partner.economist.com","name":"trankimtung-economist"},{"email":"neelchavan@partner.economist.com","name":"neel-chavan-teg"},{"email":"akankshadhumal@partner.economist.com","name":"akankshadhumal-teg"},{"email":"vrushabhbayas@partner.economist.com","name":"vrushabheconomist"},{"email":"AlanRennie@economist.com","name":"alanrennie"},{"email":"trgrisley@gmail.com","name":"tgrisley"},{"email":"stevenlee@economist.com","name":"stevenleeeconomist"},{"email":"olufemiadeolusile@economist.com","name":"femieconomist"},{"email":"rahulgupta@economist.com","name":"rahulgupta-teg"},{"email":"lukegriffiths@economist.com","name":"lukegriffiths-economist"},{"email":"kumudamulgund@partner.economist.com","name":"kumuda-mulgund-teg"},{"email":"adam.r.morris@gmail.com","name":"adamrmorris"},{"email":"sourabhchandrakar@partner.economist.com","name":"sourabh-teg"},{"email":"victoriatalbot@economist.com","name":"victorialeatalbot"},{"email":"arunkantpant@economist.com","name":"arunkantpanteiu"},{"email":"richardstcatherine@economist.com","name":"richardstcatherine"},{"email":"sivakumarnatarajan+npm@economist.com","name":"siva-teg-npm"},{"email":"joycruzvargas@economist.com","name":"joy-cruzvargas"},{"email":"anitankumar@partner.economist.com","name":"anitan-teg"},{"email":"saurabhsaurabh@economist.com","name":"saurabh-eiu"},{"email":"georgehoughton@economist.com","name":"georgehoughton"},{"email":"ankitankit@economist.com","name":"ankitankit"},{"email":"hariomsingh@economist.com","name":"hariomsingh"},{"email":"umangjain@economist.com","name":"umangjain"},{"email":"luthfifrahman@economist.com","name":"luthfifrahman"},{"email":"heriyantobinduni@economist.com","name":"heriyantobinduni"},{"email":"stephaniedaniel@economist.com","name":"stephaniedaniel"},{"email":"rahulkumar@economist.com","name":"rahulkumar-teg"},{"email":"sagarsahasrabuddhe@partner.economist.com","name":"sagar-teg"},{"email":"ronaldsavianto@economist.com","name":"ronaldsavianto"},{"email":"ankitsharma@economist.com","name":"ankitsharma-teg"},{"email":"levadysinarta@economist.com","name":"levadys-eco"},{"email":"shipraparihar@economist.com","name":"shipraparihar"},{"email":"inanzengin@economist.com","name":"inanzengin"},{"email":"prerakjain@partner.economist.com","name":"prerak-jain-teg"},{"email":"chivo@economist.com","name":"chilinhhovo"},{"email":"kevinlaurens@economist.com","name":"kevinlaurens-teg"},{"email":"vineetsinghal@partner.economist.com","name":"vineet-singhal-teg"},{"email":"heelaine.hello@gmail.com","name":"heelaine-hello"},{"email":"erandoputra@economist.com","name":"erando-teg"},{"email":"andrysdanielsilalahi@economist.com","name":"andrys-teg"},{"email":"arandasoedjono@economist.com","name":"arandasoedjono"},{"email":"sigitadinugroho@economist.com","name":"sigiteconomist"},{"email":"jessicaengerer@eiu.com","name":"jessicaengerer"},{"email":"vivekagrawal@partner.economist.com","name":"vivek-agrawal-teg"},{"email":"andrewgillon@partner.economist.com","name":"andyg_econ"},{"email":"abdulbasit@economist.com","name":"abnpm07"},{"email":"ashrafiftekhar@economist.com","name":"mohammadashrafiftekhar"},{"email":"santoshmudavat@partner.economist.com","name":"santoshmeconomist"},{"email":"carlodellanno@economist.com","name":"carlo-economist"},{"email":"ankurraj@economist.com","name":"ankurrajteg"},{"email":"kalpnamishra@economist.com","name":"kalpna-teg"},{"email":"scottedwards@economist.com","name":"scott-edwards-economist"},{"email":"andrewmcclay@partner.economist.com","name":"andrewmcclay_partner"},{"email":"kandarpmankad@economist.com","name":"kandarp-eiu"},{"email":"chaitralipalasdeokar@partner.economist.com","name":"chaitrali-economist"},{"email":"heung@ransomprofit.com","name":"ransomprofit"},{"email":"angeloschristidis@economist.com","name":"angelosteg"},{"email":"akashnagpal@economist.com","name":"akashnagpal"},{"email":"valeriomattera@economist.com","name":"valeriomattera_economist"},{"email":"vladimirexil@partner.economist.com","name":"vladeco"},{"email":"shouryaranka@economist.com","name":"eiufe"},{"email":"fabioruolo@partner.economist.com","name":"fabioruolo-teig"}],"readme":"Isomorphic react-router-relay [![npm version][npm-badge]][npm]\n=============================\nAdds server side rendering support to\n[react-router-relay](https://github.com/relay-tools/react-router-relay) using\n[isomorphic-relay](https://github.com/denvned/isomorphic-relay).\n\nInstallation\n------------\n\n    npm install -S isomorphic-relay isomorphic-relay-router\n\nHow to use\n----------\n\nCreate a Relay network layer on the server.\nAnd if you are using `Relay.DefaultNetworkLayer`, specify the full url to the GraphQL endpoint:\n```javascript\nconst GRAPHQL_URL = `http://localhost:8080/graphql`;\n\nconst networkLayer = new Relay.DefaultNetworkLayer(GRAPHQL_URL);\n```\n\nWhen processing a request **on the server**, get `renderProps` using `match` function from\n*react-router* (see\n[here](https://github.com/reactjs/react-router/blob/v2.3.0/docs/guides/ServerRendering.md)),\nprepare the data using `IsomorphicRouter.prepareData`, then render React markup using\n`IsomorphicRouter.render` (pass the `props` returned by `IsomorphicRouter.prepareData`), and send\nthe React output along with the data to the client:\n```javascript\nimport IsomorphicRouter from '@economist/isomorphic-relay-router';\n\napp.get('/*', (req, res, next) => {\n  match({routes, location: req.originalUrl}, (error, redirectLocation, renderProps) => {\n    if (error) {\n      next(error);\n    } else if (redirectLocation) {\n      res.redirect(302, redirectLocation.pathname + redirectLocation.search);\n    } else if (renderProps) {\n      IsomorphicRouter.prepareData(renderProps, networkLayer).then(render).catch(next);\n    } else {\n      res.status(404).send('Not Found');\n    }\n\n    function render({data, props}) {\n      const reactOutput = ReactDOMServer.renderToString(IsomorphicRouter.render(props));\n\n      res.render(path.resolve(__dirname, '..', 'views', 'index.ejs'), {\n        preloadedData: JSON.stringify(data),\n        reactOutput\n      });\n    }\n  });\n});\n```\n\nOn page load **in the browser**, create an instance of `Relay.Environment`, inject an Relay network\nlayer to it. Get `renderProps` using `match` function from *react-router*, inject the prepared data\nto the Relay store using `IsomorphicRelay.injectPreparedData`, then prepare initial render using\n`IsomorphicRelay.prepareInitialRender`, and render React using `Router` from *react-router* (pass\nthe `props` returned by `IsomorphicRouter.prepareInitialRender`):\n```javascript\nimport IsomorphicRouter from '@economist/isomorphic-relay-router';\n\nconst environment = new Relay.Environment();\n\nenvironment.injectNetworkLayer(new Relay.DefaultNetworkLayer('/graphql'));\n\nconst data = JSON.parse(document.getElementById('preloadedData').textContent);\n\nIsomorphicRelay.injectPreparedData(environment, data);\n\nconst rootElement = document.getElementById('root');\n\n// use the same routes object as on the server\nmatch({routes, history: browserHistory}, (error, redirectLocation, renderProps) => {\n  IsomorphicRouter.prepareInitialRender(environment, renderProps).then(props => {\n    ReactDOM.render(<Router {...props} />, rootElement);\n  });\n});\n```\n\nExample\n-------\nSee [here](examples/todo).\n\n[npm-badge]: https://img.shields.io/npm/v/isomorphic-relay-router.svg\n[npm]: https://www.npmjs.com/package/isomorphic-relay-router\n","readmeFilename":"README.md"}