{"_id":"graphql-resolvers","_rev":"16-0bcd04c95e1e7cffca6b3e423f009e35","name":"graphql-resolvers","description":"Resolver composition library for GraphQL.","dist-tags":{"latest":"0.4.2","beta":"0.3.2"},"versions":{"0.0.1":{"name":"graphql-resolvers","version":"0.0.1","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"mocha --require babel-register --require babel-polyfill","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","mocha":"^3.1.2","object-path":"^0.11.4"},"dependencies":{},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"e16834a2e68276b7bdb390785eafc2c9b9953cee","_id":"graphql-resolvers@0.0.1","_shasum":"f5eb2f7f7ca7558568d6d88f0edaa365db5ba04b","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.4","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"shasum":"f5eb2f7f7ca7558568d6d88f0edaa365db5ba04b","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.0.1.tgz","integrity":"sha512-hSB2tXpESDp3wGwvvRzC6NX1qW1CZ5SYqnjqz8ZdQaFHyhgLUn5Sa0rLI+Fi63+nTtU1Z6tK8G72Qf9OAWN/oQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfz0nkLsLcfqtVYSW6cKMn3fAyGbx9T2TMBlKzMtvcdAIgFiqGNx6fNIYnE5vG7Ay1RcO/3C0AzS9cm/V5wqQrWRc="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/graphql-resolvers-0.0.1.tgz_1491719299932_0.1065846448764205"}},"0.0.2":{"name":"graphql-resolvers","version":"0.0.2","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"mocha --require babel-register --require babel-polyfill","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","mocha":"^3.1.2","object-path":"^0.11.4"},"dependencies":{},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"54424f4948f29f5a77bee1f6893e4453dc6055bd","_id":"graphql-resolvers@0.0.2","_shasum":"f60158fa774232699607b36d57002cb857c84b9f","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.4","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"shasum":"f60158fa774232699607b36d57002cb857c84b9f","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.0.2.tgz","integrity":"sha512-9ygE/wxeDJSMBSb5e0sCD35l6ohpogZ5nfm8TT43RRXD//XVU9WlSW2xO0zekKWtPjCFOtiruYCouiUwQoVW6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICklWC4VDogEZT/+syoneGjbRol/JLYA6AvRd/eGiqI/AiEA6ip7l04SGWozFx2EYoqJuybuQH60NMVz0zhiXGzxjao="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/graphql-resolvers-0.0.2.tgz_1491767240252_0.7111179877538234"}},"0.1.0":{"name":"graphql-resolvers","version":"0.1.0","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"mocha --require babel-register --require babel-polyfill","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"796c442801508c9aaa8469ff47a7c87c2f3225e8","_id":"graphql-resolvers@0.1.0","_shasum":"bc3416ea75bf4d2c2fe4d5d59cb284429eec127a","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"shasum":"bc3416ea75bf4d2c2fe4d5d59cb284429eec127a","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.1.0.tgz","integrity":"sha512-00alQm7Y6TeLAj3pN/g5MC43fzihspBGYa+RI8XwHG5lWw4LNY/3qRFNH0+8obXMc0nt+Vo3PQ31GZzNoYeqTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMVms6HrFxC64sjba6bEA6cVq0pJpnjK0LmENNajGeUAIgG7DATaeJGEowdIIuNU36gxMD7EpJDjsKpJtmg1x6zOU="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/graphql-resolvers-0.1.0.tgz_1494200761683_0.03173886192962527"}},"0.1.1":{"name":"graphql-resolvers","version":"0.1.1","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"mocha --require babel-register --require babel-polyfill","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"b4eae2fe24e5842e581b3800d515c91df78f2863","_id":"graphql-resolvers@0.1.1","_shasum":"46eee6f2cf113e847b9366dc4e3181a3fd53eda0","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"shasum":"46eee6f2cf113e847b9366dc4e3181a3fd53eda0","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.1.1.tgz","integrity":"sha512-3uql56wtqT8EMD/VHRGV5V0eDOTDGc4k4m3tYDZLFSlYn7pneboXGtvewNRxHvGGaY3n5rXArEcbcMORgoYw8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuqvIa+qKXUgigUP9nKJc61EPDCVno59u56Vs3wf1BlAiBj/Iy40qXNEP4xllhrLCVIRz5lTwFIZXEbQTnxfQaPTg=="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/graphql-resolvers-0.1.1.tgz_1494201062585_0.9790786849334836"}},"0.2.0":{"name":"graphql-resolvers","version":"0.2.0","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"_mocha --require babel-register --require babel-polyfill","coverage":"istanbul cover _mocha -- --require babel-register --require babel-polyfill","codecov":"yarn coverage && codecov","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","codecov":"^2.1.0","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","istanbul":"1.0.0-alpha","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{"deep-equal":"^1.0.1","object-path":"^0.11.4"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"9578e743fb16bbafc06658b1b223b6b2a98accfd","_id":"graphql-resolvers@0.2.0","_shasum":"b3f7ddc15f76a55bcc309d0a1efa6889d329cbc5","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"shasum":"b3f7ddc15f76a55bcc309d0a1efa6889d329cbc5","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.2.0.tgz","integrity":"sha512-aoVYIrwYTTr9c0oAkqntIEv9ZDcMrWnxb10+xmaAY6btRfw9C8DUUi1usSV4oyseAYm1x2PWlSw+bAaR46CCOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfV4pSE43YJIxMDZd5ARRzBzzJ9IZbSSE06dHs57OnQAiEAlAUhPW2YsNdV5ixpz0wmRVPH1eEE9e48ZF3nxag28Vk="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/graphql-resolvers-0.2.0.tgz_1494280054192_0.4642521741334349"}},"0.2.1":{"name":"graphql-resolvers","version":"0.2.1","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"_mocha --require babel-register --require babel-polyfill","coverage":"istanbul cover _mocha -- --require babel-register --require babel-polyfill","codecov":"yarn coverage && codecov","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","codecov":"^2.1.0","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","istanbul":"1.0.0-alpha","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{"deep-equal":"^1.0.1","object-path":"^0.11.4"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"0188f8ed5c248560f959a4dd7f3a9aeedb212fd3","_id":"graphql-resolvers@0.2.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"integrity":"sha512-pgmd24FaOX+EuVxW6FVxr1eBK8oIZ8HfaqduvL1gjd+iIRjSmrQUkkfTFIPVnoV58l6wnnbdsGspjaQXx1Pnjg==","shasum":"15a63651169d552b16ebb7a49ec0f0e0855a8ea4","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEuBKF3og6S309+YC480hZRdRaU9U3bGHTPvton3rTx9AiEAw+XvZsJRiV7ye3Utw33rSfONtx0/TSIaLKxE536wM+0="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-resolvers-0.2.1.tgz_1517688232488_0.16049899673089385"}},"0.2.2":{"name":"graphql-resolvers","version":"0.2.2","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"_mocha --require babel-register --require babel-polyfill","coverage":"istanbul cover _mocha -- --require babel-register --require babel-polyfill","codecov":"yarn coverage && codecov","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","codecov":"^2.1.0","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","istanbul":"^1.1.0-alpha.1","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{"deep-equal":"^1.0.1","object-path":"^0.11.4"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","gitHead":"2cea32f364849e8d9cd0ab9660f3d74b717d2bb7","_id":"graphql-resolvers@0.2.2","_npmVersion":"5.6.0","_nodeVersion":"7.10.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"integrity":"sha512-J3+A0A1nk2ff5ChKZfMYNLYqaDtTTX4IiIKR3nsE7ilhff8cQxUJ+joMU9ZKPD4ADAS9cTmDAZ4Gn3KojbbIiA==","shasum":"911310367cf16a70b97b73da9f19d9598137851f","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.2.2.tgz","fileCount":25,"unpackedSize":100722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB9UQgRTXxn/LaXLvNnqFqLNCoZ331dbUOsFHqgR5ehBAiEAm5FwMed33mG1B/JUnkcqxnwUTCodBKocSE/9RsBRsMg="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-resolvers_0.2.2_1518501186409_0.9156211057727062"},"_hasShrinkwrap":false},"0.3.2":{"name":"graphql-resolvers","version":"0.3.2","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"_mocha --require babel-register --require babel-polyfill","coverage":"istanbul cover _mocha -- --require babel-register --require babel-polyfill","codecov":"yarn coverage && codecov","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","codecov":"^2.1.0","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","istanbul":"^1.1.0-alpha.1","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{"deep-equal":"^1.0.1","object-path":"^0.11.4"},"directories":{"test":"test"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","readme":"# GraphQL Resolvers\n\nResolver composition library for GraphQL\n\n[![build status](https://img.shields.io/travis/lucasconstantino/graphql-resolvers/master.svg?style=flat-square)](https://travis-ci.org/lucasconstantino/graphql-resolvers)\n[![coverage](https://img.shields.io/codecov/c/github/lucasconstantino/graphql-resolvers.svg?style=flat-square)](https://codecov.io/github/lucasconstantino/graphql-resolvers)\n[![npm version](https://img.shields.io/npm/v/graphql-resolvers.svg?style=flat-square)](https://www.npmjs.com/package/graphql-resolvers)\n\n---\n\nThis library consists of simple *[but well tested](https://codecov.io/github/lucasconstantino/graphql-resolvers)* helper functions for combining other functions into more specialized ones.\n\n## Installation\n\nThis package is available on [npm](https://www.npmjs.com/package/graphql-resolvers) as: *graphql-resolvers*\n\n```\nnpm install graphql-resolvers\n```\n\n> You should consider using [yarn](https://yarnpkg.com/), though.\n\n## Motivation\n\nMany times we end-up repeating lots of logic on our resolvers. Access control, for instance, is something that can be done in the resolver level but just tends to end up with repeated code, even when creating services for such a task. This package aims to make it easier to build smart resolvers with logic being reusable and split in small pieces. Think *[recompose](https://github.com/acdlite/recompose)*, but for GraphQL resolvers.\n\n## Documentation\n\n[Read full documentation here](docs/API.md)\n\n## Similar projects\n\nBesides being inspired by some functional libraries out there, this project has some goals in common with other projects:\n\n#### [apollo-resolvers](https://github.com/thebigredgeek/apollo-resolvers):\n\nWhile `graphql-resolvers` follows the functional paradigm, `apollo-resolvers` project solves some problems using an opinionated and OOP approach. Furthermore, the second also solves other problems which `graphql-resolvers` does not intend to work on, such as [solving circular references on the resolver's context](https://github.com/thebigredgeek/apollo-resolvers#resolver-context).\n\n#### [graphql-tools](https://github.com/apollographql/graphql-tools)\n\nAt first, my idea was to [incorporate](https://github.com/apollographql/graphql-tools/issues/307) the `combineResolvers` method into the wider project `graphql-tools`. That may yet happen some day, but I think people my not want to install the whole `graphql-tools` project when wanting this simple package's helper on their projects. Also, `combineResolvers` should work pretty fine with resolvers binded into [`graphql/types`](http://graphql.org/graphql-js/type/) too.\n","readmeFilename":"README.md","gitHead":"a80d00bb5faf7a9824497c857f02da30376b15a5","_id":"graphql-resolvers@0.3.2","_npmVersion":"5.6.0","_nodeVersion":"7.10.0","_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"dist":{"integrity":"sha512-hmGqt6P2CzPCvfWZcPMuZjc2m/MwnR0sJLVJ+bVvohxFDwL08B70pvcIUIGMFroav1Z8STcmZxPBBU4YdhRv7A==","shasum":"63d29147054310551597c4d3d6c0dd25a4d12ef5","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.3.2.tgz","fileCount":25,"unpackedSize":100626,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjEptA4548IDWTFdK3MFBM1wiECZRkwtt6NDMOhG+93QIhAIScFN+m9f0PQSXn8GRDtqSVrD0k8jTf8yzPaIdANgmW"}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-resolvers_0.3.2_1521512544263_0.8255328288870718"},"_hasShrinkwrap":false},"0.3.3":{"name":"graphql-resolvers","version":"0.3.3","description":"Resolver composition library for GraphQL.","main":"index.js","scripts":{"compile":"babel src -d lib","lint":"eslint index.js src","test":"_mocha --require babel-register --require babel-polyfill","coverage":"istanbul cover _mocha -- --require babel-register --require babel-polyfill","codecov":"yarn coverage && codecov","prepublish":"npm test && npm run lint && npm run compile"},"keywords":["graphql","apollo","composition","functional","resolver"],"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"license":"MIT","devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.18.2","babel-polyfill":"^6.23.0","babel-preset-taller":"^0.1.1","babel-register":"^6.18.0","chai":"^3.5.0","chai-as-promised":"^6.0.0","chai-spies":"^0.7.1","codecov":"^2.1.0","eslint":"^3.10.2","eslint-config-taller":"^1.0.4","eslint-plugin-import":"^2.2.0","eslint-plugin-node":"^4.2.2","graphql":"^0.9.2","graphql-tools":"^0.11.0","istanbul":"^1.1.0-alpha.1","mocha":"^3.1.2","ramda":"^0.23.0"},"dependencies":{"deep-equal":"^1.0.1","object-path":"^0.11.4"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","licenseText":"MIT License\n\nCopyright (c) 2017 Lucas Constantino Silva\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"graphql-resolvers@0.3.3","dist":{"shasum":"a0d0d810f8935ec501205b17a1d88dfdfe7bbae4","integrity":"sha512-G2o0qGh4z60vu74VxVktRcy2kTMVEQB4RSQXvJJy+7cZBUzymBQ1b+yzDztIyipF27zN18VHCdQeeFc1Qti/Gg==","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.3.3.tgz","fileCount":30,"unpackedSize":100755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyIZ6CRA9TVsSAnZWagAAM3YP/2lh1juMRgPUaqWwZ0+j\nnuI91QpTEfs8kL1JW2AmIH5fqyWoxSa/ioacY+JagXDfA7yx6u0V5q2WO/99\n9OtLG4aILCymKv6SvL+7kIHqhqjkHs5b8kgB4SUrKKCHGfAIbi5W//piGayg\n+utnHcyeSxJWDWQ6pqD0nYr1px7KoL9veCdhW8M2ZzsjgIgO+jgckRuiZJ+V\n4F1F8oGSlaTrMu1IhUtR1Sjyk5LbsjrZMQHF+Bf5urGKjV9dBJctFeW8t4V2\nC1KY2l8+hCrgOFZhjYFp69UM2iGkaeIOcQ+Kd5CGjIcpVsebFL3dADbAGSn1\njGEA2yYDp5mdtYcoGZJvVc7Qiom7+w//UFu4Q9y0oE4Wt/cZFiSPftUqYHYX\njPOrpI6Hq5mLM8y2Akpzu54wo7KG077rIeFPl1ZKZG7eVjYgN3YFqdUWfE7D\nMfqTnkY1Hnm9BXPI4R2Py7FmHZH6yeaV3qYWhJAe/4BHrygo6E3EBhanfJAu\nSt+xgRIUmQsk1W0zoLwzK4Jo/aVCExl8vu1Vn+IwGtChdVPx7z6+RVc4FaHZ\np08rv5uXoHgGKHqlxT8SydgDWxQVH07TGslCLHjy4gyjFexis+oZqB8PRR7B\n0Fo64A5iVupQPBJHn6FpfY53i6TCuy+hfWPGeTAoLofumJt0Yy0EPGK0SJlG\nAQ/U\r\n=ds67\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQ0AeoNB6UEbkjRGa6IgYbHoFU6eIcfrBrtWCttxUVYAiAUaoVHMPZ2yRAbtiOOwE+dJLMiDNkER6PdwGzv33Kmcw=="}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-resolvers_0.3.3_1556645497371_0.6258169617454912"},"_hasShrinkwrap":false},"0.4.2":{"name":"graphql-resolvers","version":"0.4.2","description":"Resolver composition library for GraphQL.","keywords":["apollo","composition","functional","graphql","resolver"],"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"license":"MIT","author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"main":"index.js","scripts":{"codecov":"yarn coverage && codecov","compile":"babel src -d lib","lint":"eslint index.js src test","prepublish":"yarn qa && yarn compile","qa":"yarn test && yarn lint","release":"yarn compile && standard-version","test":"jest"},"husky":{"hooks":{"pre-commit":"lint-staged","pre-push":"yarn qa"}},"lint-staged":{"*.js":["prettier-eslint --write","git add"],"package.json":["sort-package-json","git add"]},"prettier":"@strv/prettier-config","jest":{"collectCoverage":true,"collectCoverageFrom":["src/**/*.js"],"coverageThreshold":{"global":{"branches":90,"functions":90,"lines":90,"statements":90}},"setupFilesAfterEnv":["jest-chain"]},"dependencies":{"@babel/runtime":"^7.8.4","deep-equal":"^2.0.1","object-path":"^0.11.4"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-transform-regenerator":"^7.4.5","@babel/plugin-transform-runtime":"^7.4.4","@babel/polyfill":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/register":"^7.4.4","@strv/eslint-config-node":"^2.1.2","@strv/prettier-config":"^1.0.3","babel-core":"^7.0.0-bridge.0","babel-eslint":"^10.0.3","babel-jest":"^25.1.0","babel-preset-taller":"^0.1.1","codecov":"^3.6.4","eslint":"^6.8.0","graphql":"^14.6.0","graphql-tools":"^4.0.6","husky":"^4.2.1","jest":"^25.1.0","jest-chain":"^1.1.2","lint-staged":"^10.0.7","prettier-eslint-cli":"^5.0.0","ramda":"^0.27.0","sort-package-json":"^1.22.1","standard-version":"^7.1.0"},"licenseText":"MIT License\n\nCopyright (c) 2017 Lucas Constantino Silva\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"graphql-resolvers@0.4.2","dist":{"shasum":"44b8afbf5436ba133551186f4e61ca8d1680428a","integrity":"sha512-C+BEjS5BrV04I44iNtMDw7ZbmIlSBabkbt5KpF8Vg5wphsm2jDlKklU9DeX/nzs7NEt0tOoorbTmpQH0VyYBLA==","tarball":"https://registry.npmjs.org/graphql-resolvers/-/graphql-resolvers-0.4.2.tgz","fileCount":34,"unpackedSize":115609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOWbzCRA9TVsSAnZWagAAPn0P/1T8CmDblAT5fvrYeUhP\nwsf2Xis/LMV9XLjGILb13XojyB070XzlUHztm0XqaL14n5i7dV0QwujpozPl\nLJO52NKsoBnrUGdBCbLifD856mzwMfYDv7yPBBB72FrB27pfHcGisWd1qj/+\n/U/FdtTfxpsgC7dCpSjjrodoeYDQiHFSMaibnKfJJcjs0gCvFiGVdt4XR8Jt\nY+25AdeaH/TscQVEcO2Nk18ykvHag1vkCxcwj7wh8GLhmalknAsUK9BzDUhG\nyPLTa39ek8AuKCI46VKYzNb60NvhMMmw8Wqr9tKqFYGTely8Q2q6L/KGgpy/\n0xKNhDPuogRXixnOHZlj9/SybUmBZd8JzjdNzsy6UPnMI8/Fc2rFU23kID84\nktOcp3NQHaZp2tIqhBkbx8gDnvfPilhhsTqK9Eu5DTM9a4x0/R+DmLr8Mn4M\nYOAGLNOwQzqpW4NCKWvMXr669wK2ODlYiA7h+4d98bLH1ptf4atDdkT6YGnl\nQNHa9Yx9UH3dlbFDQatJF7BPXmMbLatnWtFGvh6dSwkx+uIW9U0HJPWnqx/7\ngE/xpn8lxYdd8Pl7g2JsVXZEXc+nztf58/ZG93fnwH9DESzQQkMJbpD4gBgv\nI092vok5/uHpGuz0LVAcD5JzMvbPE/Mw5kXVCZVDs125IIIwSNUJntqpuZox\nD4gv\r\n=+G2E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC11P7eECU5hwxNLoicQezfxO8weY5c1ohoI3VkhqRryAIhAKdfmKR+KgHAYKmXKrrQFFDV3Ykm9YuWbf50CWd/9E68"}]},"maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"_npmUser":{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-resolvers_0.4.2_1580820211399_0.03530998362144255"},"_hasShrinkwrap":false}},"readme":"# GraphQL Resolvers\n\nResolver composition library for GraphQL\n\n[![build status](https://img.shields.io/travis/lucasconstantino/graphql-resolvers/master.svg?style=flat-square)](https://travis-ci.org/lucasconstantino/graphql-resolvers)\n[![coverage](https://img.shields.io/codecov/c/github/lucasconstantino/graphql-resolvers.svg?style=flat-square)](https://codecov.io/github/lucasconstantino/graphql-resolvers)\n[![npm version](https://img.shields.io/npm/v/graphql-resolvers.svg?style=flat-square)](https://www.npmjs.com/package/graphql-resolvers)\n[![sponsored by Taller](https://raw.githubusercontent.com/TallerWebSolutions/tallerwebsolutions.github.io/master/sponsored-by-taller.png)](https://taller.net.br/en/)\n\n---\n\nThis library consists of simple *[but well tested](https://codecov.io/github/lucasconstantino/graphql-resolvers)* helper functions for combining other functions into more specialized ones.\n\n## Installation\n\nThis package is available on [npm](https://www.npmjs.com/package/graphql-resolvers) as: *graphql-resolvers*\n\n```\nnpm install graphql-resolvers\n```\n\n> You should consider using [yarn](https://yarnpkg.com/), though.\n\n## Motivation\n\nMany times we end-up repeating lots of logic on our resolvers. Access control, for instance, is something that can be done in the resolver level but just tends to end up with repeated code, even when creating services for such a task. This package aims to make it easier to build smart resolvers with logic being reusable and split in small pieces. Think *[recompose](https://github.com/acdlite/recompose)*, but for GraphQL resolvers.\n\n## Documentation\n\n[Read full documentation here](docs/API.md)\n\n## Similar projects\n\nBesides being inspired by some functional libraries out there, this project has some goals in common with other projects:\n\n#### [apollo-resolvers](https://github.com/thebigredgeek/apollo-resolvers):\n\nWhile `graphql-resolvers` follows the functional paradigm, `apollo-resolvers` project solves some problems using an opinionated and OOP approach. Furthermore, the second also solves other problems which `graphql-resolvers` does not intend to work on, such as [solving circular references on the resolver's context](https://github.com/thebigredgeek/apollo-resolvers#resolver-context).\n\n#### [graphql-tools](https://github.com/apollographql/graphql-tools)\n\nAt first, my idea was to [incorporate](https://github.com/apollographql/graphql-tools/issues/307) the `combineResolvers` method into the wider project `graphql-tools`. That may yet happen some day, but I think people my not want to install the whole `graphql-tools` project when wanting this simple package's helper on their projects. Also, `combineResolvers` should work pretty fine with resolvers binded into [`graphql/types`](http://graphql.org/graphql-js/type/) too.\n","maintainers":[{"name":"lucasconstantino","email":"lucasconstantinosilva@gmail.com"}],"time":{"modified":"2022-06-18T13:59:06.547Z","created":"2017-04-09T06:28:22.053Z","0.0.1":"2017-04-09T06:28:22.053Z","0.0.2":"2017-04-09T19:47:22.032Z","0.1.0":"2017-05-07T23:46:01.917Z","0.1.1":"2017-05-07T23:51:05.233Z","0.2.0":"2017-05-08T21:47:36.796Z","0.2.1":"2018-02-03T20:03:52.633Z","0.2.2":"2018-02-13T05:53:06.691Z","0.3.2":"2018-03-20T02:22:24.335Z","0.3.3":"2019-04-30T17:31:37.572Z","0.4.2":"2020-02-04T12:43:31.499Z"},"homepage":"https://github.com/lucasconstantino/graphql-resolvers#readme","keywords":["apollo","composition","functional","graphql","resolver"],"repository":{"type":"git","url":"git+https://github.com/lucasconstantino/graphql-resolvers.git"},"author":{"name":"Lucas Constantino Silva","email":"lucasconstantinosilva@gmail.com"},"bugs":{"url":"https://github.com/lucasconstantino/graphql-resolvers/issues"},"license":"MIT","readmeFilename":"README.md","users":{"mhfrantz":true,"bsdllc":true}}