123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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)
- }
- }
|