https://github.com/zapkub/graphql-compose-schema-wrapper
better tool to wrap your resolver in graphql-compose 👩🏼🎤
https://github.com/zapkub/graphql-compose-schema-wrapper
graphql graphql-server typescript
Last synced: 2 months ago
JSON representation
better tool to wrap your resolver in graphql-compose 👩🏼🎤
- Host: GitHub
- URL: https://github.com/zapkub/graphql-compose-schema-wrapper
- Owner: zapkub
- Created: 2017-12-05T02:55:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-05T09:37:27.000Z (over 7 years ago)
- Last Synced: 2025-03-18T09:48:31.563Z (3 months ago)
- Topics: graphql, graphql-server, typescript
- Language: TypeScript
- Homepage:
- Size: 30.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# graphql-compose-schema-wrapper
> NOTE: this repository require
> [graphql-compose](https://github.com/nodkz/graphql-compose) to work properly`graphql-compose-schema-wrapper` - is a tools that let you can easily manage
your wrapper in `graphql-compose` schema.Such as verify session, Authorization, middleware and more
## Installation
```
yarn add graphql-compose graphql graphql-compose-schema-wrapper
```## Usage
* After your schema setup is done, pick resolvers or field your need to wrap (by
path selector) and then use `wrapResolvers`, `wrapResolverHelper` or `wrapResolverFieldHelper`
to wrap what you need### Use `wrapResolvers`
```js
// wrap with wrapResolvers
GQC.rootQuery().addFields(
wrapResolvers(
{
// list of fields you want to expose to rootQuery
getVersionInfoWrap: info.getResolver('get')
},
next => rp => {
// implement your logic here before
// resolve data
return next(rp)
}
)
)```
### Use `wrapResolverHelper` and `wrapResolverFieldHelper`
```js
// wrap with path selector helper
// setup your schema
GQC.rootQuery().addFields({
getVersionInfo: info.getResolver('get')
})
GQC.rootMutation().addFields({
updateVersionInfo: info.getResolver('set')
})
wrapResolverHelper(
['Query.getVersionInfo.$get', 'Mutation.updateVersionInfo.$set'],
next => rp => {
// implement your logic here before
// resolve data
return next(rp)
}
)wrapResolverFieldHelper(['Query.getVersionInfoWrap.$get.version'], rp => {
// implement your logic here before
// resolve data
return rp.source
})
```# Development
- clone this repository
- Run command below
```
yarn tsc // compile typescript ( optional watch use -w )
yarn dev // start graphql server
```# Limitation (PLEASE READ CAREFULLY)
* `graphql-compose-schema-wrapper` **cannot use with nested Resolver inside
TypeComposer or Relation** ( only support rootQuery and rootMutation )# LICENSE
MIT