mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-02-05 06:28:31 -06:00
114 lines
3.1 KiB
JavaScript
114 lines
3.1 KiB
JavaScript
const gql = require('graphql-tag')
|
|
// Connectors
|
|
const projects = require('../connectors/projects')
|
|
const plugins = require('../connectors/plugins')
|
|
const tasks = require('../connectors/tasks')
|
|
|
|
exports.types = gql`
|
|
extend type Query {
|
|
projects: [Project]
|
|
projectCurrent: Project
|
|
projectCreation: ProjectCreation
|
|
}
|
|
|
|
extend type Mutation {
|
|
projectInitCreation: ProjectCreation
|
|
projectCancelCreation: Boolean
|
|
projectCreate (input: ProjectCreateInput!): Project!
|
|
projectImport (input: ProjectImportInput!): Project!
|
|
projectOpen (id: ID!): Project!
|
|
projectRemove (id: ID!): Boolean!
|
|
projectCwdReset: String
|
|
projectSetFavorite (id: ID!, favorite: Int!): Project!
|
|
projectRename (id: ID!, name: String!): Project!
|
|
presetApply (id: ID!): ProjectCreation
|
|
featureSetEnabled (id: ID!, enabled: Boolean): Feature
|
|
}
|
|
|
|
type Project {
|
|
id: ID!
|
|
name: String!
|
|
type: ProjectType
|
|
path: String!
|
|
favorite: Int
|
|
plugins: [Plugin]
|
|
tasks: [Task]
|
|
homepage: String
|
|
openDate: JSON
|
|
}
|
|
|
|
enum ProjectType {
|
|
vue
|
|
unknown
|
|
}
|
|
|
|
input ProjectCreateInput {
|
|
folder: String!
|
|
force: Boolean!
|
|
bare: Boolean!
|
|
packageManager: PackageManager
|
|
preset: String!
|
|
remote: String
|
|
clone: Boolean
|
|
save: String
|
|
enableGit: Boolean!
|
|
gitCommitMessage: String
|
|
}
|
|
|
|
input ProjectImportInput {
|
|
path: String!
|
|
force: Boolean
|
|
}
|
|
|
|
type Preset implements DescribedEntity {
|
|
id: ID!
|
|
name: String
|
|
description: String
|
|
link: String
|
|
features: [String]
|
|
}
|
|
|
|
type ProjectCreation {
|
|
presets: [Preset]
|
|
features: [Feature]
|
|
prompts: [Prompt]
|
|
}
|
|
|
|
type Feature implements DescribedEntity {
|
|
id: ID!
|
|
name: String
|
|
description: String
|
|
link: String
|
|
enabled: Boolean!
|
|
}
|
|
`
|
|
|
|
exports.resolvers = {
|
|
Project: {
|
|
type: (project, args, context) => projects.getType(project, context),
|
|
plugins: (project, args, context) => plugins.list(project.path, context),
|
|
tasks: (project, args, context) => tasks.list({ file: project.path }, context),
|
|
homepage: (project, args, context) => projects.getHomepage(project, context)
|
|
},
|
|
|
|
Query: {
|
|
projects: (root, args, context) => projects.list(context),
|
|
projectCurrent: (root, args, context) => projects.getCurrent(context),
|
|
projectCreation: (root, args, context) => projects.getCreation(context)
|
|
},
|
|
|
|
Mutation: {
|
|
projectInitCreation: (root, args, context) => projects.initCreator(context),
|
|
projectCancelCreation: (root, args, context) => projects.removeCreator(context),
|
|
projectCreate: (root, { input }, context) => projects.create(input, context),
|
|
projectImport: (root, { input }, context) => projects.import(input, context),
|
|
projectOpen: (root, { id }, context) => projects.open(id, context),
|
|
projectRemove: (root, { id }, context) => projects.remove(id, context),
|
|
projectCwdReset: (root, args, context) => projects.resetCwd(context),
|
|
projectSetFavorite: (root, args, context) => projects.setFavorite(args, context),
|
|
projectRename: (root, args, context) => projects.rename(args, context),
|
|
presetApply: (root, { id }, context) => projects.applyPreset(id, context),
|
|
featureSetEnabled: (root, args, context) => projects.setFeatureEnabled(args, context)
|
|
}
|
|
}
|