mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-20 14:19:59 -06:00
71 lines
1.2 KiB
JavaScript
71 lines
1.2 KiB
JavaScript
const gql = require('graphql-tag')
|
|
// Sub
|
|
const channels = require('../channels')
|
|
// Connectors
|
|
const views = require('../connectors/views')
|
|
|
|
exports.types = gql`
|
|
extend type Query {
|
|
views: [View]
|
|
}
|
|
|
|
extend type Mutation {
|
|
viewOpen (id: ID!): Boolean
|
|
}
|
|
|
|
extend type Subscription {
|
|
viewAdded: View
|
|
viewRemoved: View
|
|
viewChanged: View
|
|
}
|
|
|
|
type View {
|
|
id: ID!
|
|
name: String!
|
|
icon: String!
|
|
tooltip: String
|
|
badges: [ViewBadge]
|
|
projectTypes: [ProjectType]
|
|
}
|
|
|
|
type ViewBadge {
|
|
id: ID!
|
|
type: ViewBadgeType!
|
|
count: Int
|
|
label: String!
|
|
priority: Int!
|
|
hidden: Boolean!
|
|
}
|
|
|
|
enum ViewBadgeType {
|
|
info
|
|
success
|
|
warning
|
|
error
|
|
accent
|
|
dim
|
|
}
|
|
`
|
|
|
|
exports.resolvers = {
|
|
Query: {
|
|
views: (root, args, context) => views.list(context)
|
|
},
|
|
|
|
Mutation: {
|
|
viewOpen: (root, { id }, context) => views.open(id, context)
|
|
},
|
|
|
|
Subscription: {
|
|
viewAdded: {
|
|
subscribe: (parent, args, { pubsub }) => pubsub.asyncIterator(channels.VIEW_ADDED)
|
|
},
|
|
viewChanged: {
|
|
subscribe: (parent, args, { pubsub }) => pubsub.asyncIterator(channels.VIEW_CHANGED)
|
|
},
|
|
viewRemoved: {
|
|
subscribe: (parent, args, { pubsub }) => pubsub.asyncIterator(channels.VIEW_REMOVED)
|
|
}
|
|
}
|
|
}
|