Files
vue-cli/packages/@vue/cli-ui/apollo-server/schema/configuration.js
2018-07-05 13:11:51 +02:00

52 lines
1.3 KiB
JavaScript

const gql = require('graphql-tag')
// Connectors
const cwd = require('../connectors/cwd')
const configurations = require('../connectors/configurations')
const plugins = require('../connectors/plugins')
exports.types = gql`
extend type Query {
configurations: [Configuration]
configuration (id: ID!): Configuration
}
extend type Mutation {
configurationSave (id: ID!): Configuration
configurationCancel (id: ID!): Configuration
}
type Configuration implements DescribedEntity {
id: ID!
name: String!
description: String
link: String
icon: String
plugin: Plugin
tabs: [ConfigurationTab]!
}
type ConfigurationTab {
id: ID!
label: String!
icon: String
prompts: [Prompt]
}
`
exports.resolvers = {
Configuration: {
tabs: (configuration, args, context) => configurations.getPromptTabs(configuration.id, context),
plugin: (configuration, args, context) => plugins.findOne({ id: configuration.pluginId, file: cwd.get() }, context)
},
Query: {
configurations: (root, args, context) => configurations.list(context),
configuration: (root, { id }, context) => configurations.findOne(id, context)
},
Mutation: {
configurationSave: (root, { id }, context) => configurations.save(id, context),
configurationCancel: (root, { id }, context) => configurations.cancel(id, context)
}
}