{"_id":"@analogculture/graphd","_rev":"3-cfda86717a11309cd6262b81f9b29444","name":"@analogculture/graphd","dist-tags":{"latest":"1.0.1"},"versions":{"0.0.2":{"name":"@analogculture/graphd","version":"0.0.2","license":"MIT","main":"src/index.js","scripts":{"cz":"npx git-cz","precommit":"lint-staged","test":"tap test/*-test.js test/**/*-test.js --coverage-report","example":"cd example; npm i; npm start"},"lint-staged":{"*.js":["standard --fix","prettier --fix","git add"]},"dependencies":{"graphql":"^0.13.2","graphql-tools":"^3.0.2","node-fetch":"^2.1.2","apollo-link-http":"^1.5.4","chalk":"^2.4.1"},"devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.0","semantic-release":"^15.6.0","standard":"^11.0.1","tap":"^12.0.1","tape":"^4.9.1"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"75a5ef84b4f00cfbbb694437ef445d26376a2dc4","description":"A conventional schema loader for Apollo GraphQL. Connect your GraphQL servers and schemas together, remotely, locally or a mix of both.","_id":"@analogculture/graphd@0.0.2","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"louisr","email":"louisrudner@gmail.com"},"dist":{"integrity":"sha512-HIPeMjxjHLShYDdjT4v5t1faB6PvLeDWFxX4N0k1j+iSeaJDFaoiqJIpTnzTJtKm8RdBhRlLC52wChFkj5BiYw==","shasum":"9f71e7ce86eefc0ddb03c74e3d27ab3fb47006b7","tarball":"https://registry.npmjs.org/@analogculture/graphd/-/graphd-0.0.2.tgz","fileCount":10,"unpackedSize":7526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbM2KFCRA9TVsSAnZWagAAlQ4P/3lBY7DA9MLgpq8vFLf+\nf2GsiKgWljSUDQMNRXRuiYeAhIJHvyH7xquwB/rlwLgzbyV1qsdljgm+ZuPE\npW4St3R10V23RXrkTRyRcudSACmKlBqcZHosqZAHByibJLYNqj2j6b7yhzb6\nd9M3nHHH+k4yAqzexub8RLuef1sKnSq8Almrl50dHBa8kC5KQ9Pchj3KhGkT\nW2qs3FkHJ7P/Z2PrEvQAr3xaMAO9JeFCYUiZRfe/zO89KDJdUyX8BCcKSTZc\nqCQ30d6xGTG+6kzBd7CezI9Ja0Sh4NTRkUufwMWaLrE1t4rqiRo+qr5OPZwH\nSR6pMOBqszObmQiMFQlV5r0/tmIHbdESNio3wZm9ytdBLs23yHYDX8ySF/Ru\nOakN0KIf70QMeSaVKGDseJnTguN2H4GLkr1Lb3rCURkrjZBgBEtzOi1a4Uts\nGsai5yXVoLUzByHMA24Z7M2U6M1z7oEgkzNDa3/469km/GDjXEC2Dgj9sBFG\nKALjEUGgi0Q85mXsiz9PmhWYQZiD1CoxM2/4/mKbK2R63qzO6GIdzvv0f8hf\n2ifoMBsWc8TjAUVohWdl6ggYWMKGWPob1AOR8m2pK20/g8o8QICOEaGY70Jg\nBPn+eT2gUCIkXMmVuv7WvNcqymJcyuHyHcDVsJsNKQGisMmYp7BAvW/v2/Xd\n8/X0\r\n=m8mJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtda3JIdXHouRrHkBmRIV6qSU2u9dZztPFUzzGYFtSAQIhAKHMNujHpFQTHkGklr133Dk39mz5tSIRCzMUrP4G+2C+"}]},"maintainers":[{"name":"louisr","email":"louisrudner@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphd_0.0.2_1530094213339_0.12778860561483918"},"_hasShrinkwrap":false},"1.0.0":{"name":"@analogculture/graphd","version":"1.0.0","license":"MIT","main":"src/index.js","scripts":{"cz":"npx git-cz","precommit":"lint-staged","test":"tap test/*-test.js test/**/*-test.js --coverage-report","example":"cd example; npm i; npm start"},"lint-staged":{"*.js":["standard --fix","prettier --fix","git add"]},"dependencies":{"graphql":"^0.13.2","graphql-tools":"^3.0.2","node-fetch":"^2.1.2","apollo-link-http":"^1.5.4","chalk":"^2.4.1"},"devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.0","semantic-release":"^15.6.0","standard":"^11.0.1","tap":"^12.0.1","tape":"^4.9.1"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"993aef2cd2dbb470bf6ba00ba56b90fe9d31ca72","description":"A conventional schema loader for Apollo GraphQL. Connect your GraphQL servers and schemas together, remotely, locally or a mix of both.","_id":"@analogculture/graphd@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"louisr","email":"louisrudner@gmail.com"},"dist":{"integrity":"sha512-Fp/sb4vjZijHv3ZjG8pRrlA3HMDRONaI0UE0i70N13xdjtIRawKOApdBpCyLxGxxL2ZLBpX/XqTZi56gP44LPQ==","shasum":"12bae538a153eca78b294c3422211349e8cecce6","tarball":"https://registry.npmjs.org/@analogculture/graphd/-/graphd-1.0.0.tgz","fileCount":11,"unpackedSize":8061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPG4YCRA9TVsSAnZWagAAEfQP/0jYXcLJUmRTBlX0XHfg\nHLpprJZhs3Y3rk5sE6XVbbIHjauBdV7qiEQ/hT8o+wmt7bgZisYQiSkpW0Yo\nG5foAteAK6P0UNzgL+bCSelcswkHjnvhjYHLDGV7Ss7tiWbfGDKQM9aQRTZA\nk8PQaLixLx5eLd9HLbPogB8rlJKUmZjqcRZMpUuSWtwHKBHHLtRbkpscEda3\nbXMg9fUB/wRnGUKFFh1tE7Ru7vmvggEeQ5HBxhzj/DEiZxX3GKmNRXfHJvvM\n8lG9yGJxc0K2F7ArvewbwMfjsIax57YqZedfwNhR10b4OIHB9IZ2ObZZfDYY\nft/2oBe0jCSnaordf3A/KBgONpu0zV4QDVksxErmshiJ6lQi/4CIPZJa6aU4\nZuwMFb0SAHrOMQ5cGQVElS9NeKLV0e8BEmjZgFDlQ/Sp08RRsJg133ylJjY8\nB750i8sTawzU/1uoc4ptczrCyOhEyA+P3sc1BIXFEkrnRHkMYQqu4IgM4nUQ\nQy/zC+dg6acQyhHIVqrkZpZWMFRmsCL+bAk/Pww48b8m4WnMuSggLgenlSJx\nZDYu+mH/Au9BqZru7Vx+iFDYHRqZasXIKRzTZL2NNkAbIc21tOpFVuoDvOe/\nLtgJix6r7aQr3qBOatYOvZj9z9gLzVzuUBxxaHfBZTuIi3C6Sa+gMhUzp1+C\n1dCG\r\n=d9Uw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKSvxM1hJsCIu3eAHW29pwcpfIPtpuBKkN+wecpW6lyAIhAIokcMB4BjNVCVGRKjD/FqVK4Jk4Vq2+zpBhzQnyesiC"}]},"maintainers":[{"name":"louisr","email":"louisrudner@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphd_1.0.0_1530687000297_0.9550964849581187"},"_hasShrinkwrap":false},"1.0.1":{"name":"@analogculture/graphd","version":"1.0.1","license":"MIT","main":"src/index.js","scripts":{"cz":"npx git-cz","precommit":"lint-staged","test":"tap test/*-test.js test/**/*-test.js --coverage-report","example":"cd example; npm i; npm start"},"lint-staged":{"*.js":["standard --fix","prettier --write","git add"]},"dependencies":{"graphql":"^0.13.2","graphql-tools":"^3.0.2","node-fetch":"^2.1.2","apollo-link-http":"^1.5.4","chalk":"^2.4.1"},"devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.0","prettier":"^1.13.7","semantic-release":"^15.6.0","standard":"^11.0.1","tap":"^12.0.1","tape":"^4.9.1"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"d90777c111cb82f4af43be348f69e4b86f2779a9","description":"A conventional schema loader for Apollo GraphQL. Connect your GraphQL servers and schemas together, remotely, locally or a mix of both.","_id":"@analogculture/graphd@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"louisr","email":"louisrudner@gmail.com"},"dist":{"integrity":"sha512-u8cNfVwZJAJMIRxixGUetaLk/LOiQthiKXffM8dDVlr7pMXsxpyhsnJLnU+2r7jCaxOI2kwIfZF5AGahXvJUVg==","shasum":"5ed551b63d4e766e1dc0691e107951b9fefb53d7","tarball":"https://registry.npmjs.org/@analogculture/graphd/-/graphd-1.0.1.tgz","fileCount":11,"unpackedSize":7990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPWeBCRA9TVsSAnZWagAAkncP/jNHqZLnuEkAJhu3HVji\n+tbCutAQNXZkfDB+QF1kJwSSACSRUCWTQ9JZW8AtI/xBngKkoVzGWKVMGO/z\nyPZz2NsuTrIIB7KFQAsCDfGnS8Lfrbv6KIxraqe8APcPVgyQO5ERLPcieVdz\nrjogN023mHB226JMphoLijwhUzpIapWRtnY/5HFGEnHyDxPe8HvqTMD9+Jz0\nUbKi0vZbkNMDKuVmcqeKU+5tIwrFbwIwcv2vF2rW7dTltOYuPmQ7wpuLOEYF\nNzKZDkYgTC9TK8cBe5AzdwSv+lAUOn+8dEFVlqbgNt1NDVprQq4nOI4GufCO\nyzGZVzZI6ktgDTJZuQV4JtVds7QIKHm1iv0Cirx557uPHw0EcvDydrZPnlD4\nUmrjqCE5R3xDXb+y03jN/3S9XPZekZpl3uM+BD2U8i7KxONL35xdukjQLV6k\ncF/n1d8QO+L6HONGY4y7tU5gLUo0ic1XIq4dwJNKA4e2GzZdAiG3qO0MlOWJ\n2nlzYoyGhHw4qX7P7/R6LVhBY1KA6JorTmp2Zpn09hBzzkwK3SrLMTeyLXdR\nzqTTIXFohNfx5JC3lspye2wZZBh2Xfh60SwMXDCOI2zrUGptYPFWeGmdlCtU\n9Z/oEJyNSP35VC9uMIiL9M3DPU74cJFy2Yuy9fhRcryGFltHz+riP1yg9mnN\njcxJ\r\n=ymhM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGFfoYRhhZlf6oI/YociNQQCQ4B761zX06cSUiPOQHIoAiEAgXMTU0o2r9XDRK5slJUxLvuAT/vITyndqRcKGXW6bDg="}]},"maintainers":[{"name":"louisr","email":"louisrudner@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphd_1.0.1_1530750849444_0.2822269193413578"},"_hasShrinkwrap":false}},"time":{"created":"2018-06-27T10:10:13.021Z","0.0.2":"2018-06-27T10:10:13.429Z","modified":"2022-04-04T13:53:46.924Z","1.0.0":"2018-07-04T06:50:00.396Z","1.0.1":"2018-07-05T00:34:09.523Z"},"maintainers":[{"name":"louisr","email":"louisrudner@gmail.com"}],"description":"A conventional schema loader for Apollo GraphQL. Connect your GraphQL servers and schemas together, remotely, locally or a mix of both.","license":"MIT","readme":"# Graphd\n\nA conventional schema loader for Apollo GraphQL. Connect your GraphQL servers and schemas together, remotely, locally or a mix of both.\n\n### Why\n\nApollo schema stitching is a powerful way to connect domain driven and remote services together into\na single query endpoint. This module provides convention for one possible implementation, designed to reduce boilerplate for loading schemas and resolvers.\n\n### Usage\n\n#### Simple\n\nThe most basic configuration for graphd loads schemas and resources from a directory `resources` in your project's root and merges them into a single schema.\n\n```javascript\nconst graphd = require('graphd')\ngraphd.get()\n```\n\n#### With Joins\n\nSetting `join` to true will load a join schema and resolvers from the root (by default) of your project.\nThis join schema defines the relations between all other loaded resources up to this point.\nMultiple remote servers can define joins on the same types but only for resources that have already been loaded.\nYou can use `graphd`'s `createDelegate` method to define the joins between resources.\n\n```javascript\nconst graphd = require('graphd')\ngraphd.get({ join: true })\n```\n\n#### Stitch a Remote API\n\n`remoteAPI` accepts a `single` string or `array` of strings with urls for remote GraphQL APIs. e.g.\n\n`{ remoteAPI: 'http://localhost:3001' }`\n\n`{ remoteAPI: ['http://localhost:3001', 'http://localhost:3002'] }`\n\nRemoteAPI will continually retry each connection url until a connection can be established. Negating the need to boot services in any particular order.\n\n```javascript\nconst graphd = require('graphd')\ngraphd.get({ join: true, remoteAPI: 'http://localhost:3000' })\n```\n\n#### Full configuration\n\n```javascript\ngraphd.get({\n  join: true,\n  remoteAPI: ['http://localhost:3000', 'http://localhost:3001'],\n  retryTimeout: 5000,\n  paths: {\n    resources: './resources',\n    joinSchema: './schema.gql',\n    joinResolvers: './resolvers'\n  }\n})\n```\n\n#### Simple Express\n\nAll of the above configurations can be used in a server setting.\n\n```javascript\nconst express = require('express')\nconst { ApolloServer } = require('apollo-server-express')\nconst graphd = require('@analogculture/graphd')\n\nvar app = express()\n\nconst server = new ApolloServer({\n  schema: graphd.get({ join: false, remoteAPI: null })\n})\n\nserver.applyMiddleware({ app })\n\napp.listen({ port: 3000 }, () => {\n  console.log(`Graphql server started on http://0.0.0.0:3000`)\n})\n```\n","readmeFilename":"readme.md"}