Comments (6)
I've put together a makeshift solution to integrate the package with graphql-tools
.
Unfortunately, it still needs work as the introspection doesn't update correctly, which screws with graphiql. It's more a prototype than anything else
import { makeExecutableSchema, SchemaDirectiveVisitor } from "graphql-tools";
class FilterTypeDirective extends SchemaDirectiveVisitor {
visitFieldDefinition(field) {
const type = field.args[0].type;
const queryArgs = getGraphQLQueryArgs(field.args[0].type);
field.args = Object.keys(queryArgs).map(key => ({
...queryArgs[key],
name: key
}));
field.resolve = getMongoDbQueryResolver(type, field.resolve);
}
};
const typeDefs = `
type Name {
first: String
last: String
}
type Person {
name: Name
age: Int
}
type Query {
people(type: Person): [Person] @FilterType
}
`;
const resolvers = {
Query: {
async people(filter, projection, options, obj, args, context) {
return await context.db.collection('persons').find(filter, projection, options).toArray();
}
}
};
let schema = makeExecutableSchema({
typeDefs,
resolvers,
schemaDirectives: {
FilterType: FilterTypeDirective
}
});
You need to add the FilterTypeDirective
directive over the main field, and add the main type as an argument to that field under the name type
. The resolver is what you would put in place of the callback arg in the getMongoDbQueryResolver
.
I hope to have a complete solution to this issue added to the package at some point due to graphql-tools
's popularity. Anyone familiar with graphql-tools
who knows a better way to achieve this (Without screwing with the introspection/cleaner) is welcome to chip in.
from graphql-to-mongodb.
@Jscott388 have you been able to use it in apollo-server? I'm trying to understand if I can use it
from graphql-to-mongodb.
No I haven’t figured it out.
from graphql-to-mongodb.
I came across this package - it would be nice to see an integration with graphql-yoga to build it directly upon a server. I wrote a small package with authentication, subscription and CRUD here: https://github.com/dohomi/graphql-yoga-mongodb
It would be nice to extend it with graphql-to-mongodb
just for better usability out of the box
from graphql-to-mongodb.
Any update on this issue?
from graphql-to-mongodb.
#37 done
from graphql-to-mongodb.
Related Issues (20)
- GraphQL schema generation failed when using Union type HOT 8
- Example usage of OR and AND? HOT 2
- How to use mutations? HOT 4
- Please please please create an example with Apollo. Please! HOT 1
- FilterType no load fields on models HOT 1
- Cannot read property 'resolve' of undefined.
- Typo in README.md with request for clarification HOT 1
- Does graphql-to-mongodb handle relationships? HOT 1
- How to use it with type-graphql HOT 1
- How to ingrate this with a .graphql schema file? HOT 2
- How to incorporate into NestJS? HOT 3
- Handling ObjectId in filter HOT 4
- Mongo DateTime fields. HOT 1
- Warning Field TradeId of type t_TradeType has a resolve function and no dependencies HOT 2
- build error mongoDbFilter.ts HOT 1
- Add exist | not exist to leaf types
- Is there a contains/like string filter? HOT 2
- Is this support for mongoose and schema definition language(SDL)
- Caching issue HOT 1
- New directive syntax example
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql-to-mongodb.