UNPKG

vue-cli-plugin-apollo

Version:
78 lines (67 loc) 1.94 kB
import GraphQLJSON from 'graphql-type-json' <% if (addExamples) { _%> import shortid from 'shortid' <%_ } %> export default { JSON: GraphQLJSON, <% if (addExamples) { _%> Counter: { countStr: counter => `Current count: ${counter.count}`, }, <%_ } %> Query: { hello: (root, { name }) => `Hello ${name || 'World'}!`, <% if (addExamples) { _%> messages: (root, args, { db }) => db.get('messages').value(), uploads: (root, args, { db }) => db.get('uploads').value(), <%_ } %> }, Mutation: { myMutation: (root, args, context) => { const message = 'My mutation completed!' context.pubsub.publish('hey', { mySub: message }) return message }, <% if (addExamples) { _%> addMessage: (root, { input }, { pubsub, db }) => { const message = { id: shortid.generate(), text: input.text, } db .get('messages') .push(message) .last() .write() pubsub.publish('messages', { messageAdded: message }) return message }, singleUpload: (root, { file }, { processUpload }) => processUpload(file), multipleUpload: (root, { files }, { processUpload }) => Promise.all(files.map(processUpload)), <%_ } %> }, Subscription: { mySub: { subscribe: (parent, args, { pubsub }) => pubsub.asyncIterator('hey'), }, <% if (addExamples) { _%> counter: { subscribe: (parent, args, { pubsub }) => { const channel = Math.random().toString(36).substring(2, 15) // random channel name let count = 0 setInterval(() => pubsub.publish( channel, { // eslint-disable-next-line no-plusplus counter: { count: count++ }, } ), 2000) return pubsub.asyncIterator(channel) }, }, messageAdded: { subscribe: (parent, args, { pubsub }) => pubsub.asyncIterator('messages'), }, <%_ } %> }, }