UNPKG

@teambit/workspace

Version:
161 lines (142 loc) 3.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _graphqlTag() { const data = require("graphql-tag"); _graphqlTag = function () { return data; }; return data; } function _workspace() { const data = require("./workspace"); _workspace = function () { return data; }; return data; } var _default = (workspace, graphql) => { return { typeDefs: (0, _graphqlTag().gql)` type ModifyInfo { # is the component modified. hasModifiedFiles: Boolean # the component has Modified Dependencies hasModifiedDependencies: Boolean } type ComponentStatus { # component is pending to be tagged automatically. modifyInfo: ModifyInfo # is the new component new. isNew: Boolean # is the component deleted from the workspace. isDeleted: Boolean # is the component staged. isStaged: Boolean # does the component exists in the workspace. isInWorkspace: Boolean # does the component exists in the scope. isInScope: Boolean # does the component is outdated (pending for update). isOutdated: Boolean } extend type Component { status: ComponentStatus } type Issue { type: String! description: String! solution: String data: String } extend type Component { # the count of errors in component in workspace issuesCount: Int issues: [Issue] } type Workspace { name: String path: String icon: String components(offset: Int, limit: Int): [Component] getComponent(id: String!): Component } type Subscription { componentAdded: ComponentAdded componentChanged: ComponentChanged componentRemoved: ComponentRemoved } type ComponentAdded { component: Component } type ComponentChanged { component: Component } type ComponentRemoved { componentIds: [ComponentID] } type Query { workspace: Workspace } `, resolvers: { Subscription: { componentAdded: { subscribe: () => graphql.pubsub.asyncIterator(_workspace().ComponentAdded), resolve: payload => payload.componentAdded }, componentChanged: { subscribe: () => graphql.pubsub.asyncIterator(_workspace().ComponentChanged), resolve: payload => payload.componentChanged }, componentRemoved: { subscribe: () => graphql.pubsub.asyncIterator(_workspace().ComponentRemoved), resolve: payload => payload.componentRemoved } }, Component: { status: async wsComponent => { return wsComponent.getStatus(); }, issuesCount: wsComponent => { return wsComponent.getIssues()?.count || 0; }, issues: wsComponent => { return wsComponent.getIssues()?.toObjectWithDataAsString(); } }, Workspace: { path: ws => ws.path, name: ws => ws.name, icon: ws => ws.icon, components: async (ws, { offset, limit }) => { return ws.list({ offset, limit }); }, getComponent: async (ws, { id }) => { try { const componentID = await ws.resolveComponentId(id); const component = await ws.get(componentID); return component; } catch { return null; } } }, Query: { workspace: () => workspace } } }; }; exports.default = _default; //# sourceMappingURL=workspace.graphql.js.map