-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
I'm trying to use the uid as a key to mutate data in my resolver, since the uid only lives in the directive and is output via a graphql query i'm having a hard time designing the best way to link the uid back to the data outside of the graph. ie.
const schema = gql`
directive @uid(from: [String]) on OBJECT
type Element @uid(from: ["email", "name"]) {
name: String!
email: String!
}
type Query {
elements: [Element]
}
mutation DeleteElement($uid:String) {
deleteElement(uid:$uid) : Boolean
}`;
const elements = [{name:"bill", email: "[email protected]"}]
const resolvers = {
Query: {
elements: () => elements
},
Mutations: {
deleteElement: (parent, {uid}) => {
// how am I supposed to find the index in elements without redoing the hash work you do in the resolve function of UniqueIdDirective
}
}
}I understand I could redo the work that is done here UniqueId.visitObject()fields[].resolve
but this seems like a hack.
Should this uid be used for anything but caching? Is there another way to resolve the uid outside of the graph? Has anyone done something else to resolve this problem?
Metadata
Metadata
Assignees
Labels
No labels