npm package diff
Package: @forge/cli
Versions: 12.2.0-experimental-959d7b9 - 12.3.0-next.0-experimental-47556b0
File: package/out/devspace/graphql-client.js
Index: package/out/devspace/graphql-client.js
===================================================================
--- package/out/devspace/graphql-client.js
+++ package/out/devspace/graphql-client.js
@@ -0,0 +1,116 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DevSpaceGraphQLClient = void 0;
+const cli_shared_1 = require("@forge/cli-shared");
+class DevSpaceGraphQLClient {
+ graphqlClient;
+ constructor(graphqlClient) {
+ this.graphqlClient = graphqlClient;
+ }
+ async getDevSpacesWithLinkingAccess() {
+ const query = `
+ query GetDevSpaceWithLinkingAccess {
+ ecosystem {
+ devConsole {
+ getDeveloperSpaceWithLinkingAccess
+ }
+ }
+ }
+ `;
+ const result = await this.graphqlClient.query(query, {});
+ const devSpaceIds = result?.ecosystem?.devConsole?.getDeveloperSpaceWithLinkingAccess;
+ if (!devSpaceIds || !Array.isArray(devSpaceIds)) {
+ return [];
+ }
+ return devSpaceIds;
+ }
+ async getDevSpaceDetails(devSpaceIds) {
+ const batchSize = 10;
+ const batches = [];
+ for (let i = 0; i < devSpaceIds.length; i += batchSize) {
+ batches.push(devSpaceIds.slice(i, i + batchSize));
+ }
+ const batchResults = await Promise.all(batches.map((batch) => this.getDevSpaceDetailsBulk(batch)));
+ const devSpaceDetails = [];
+ for (const results of batchResults) {
+ for (const result of results) {
+ if (result.success && result.details) {
+ devSpaceDetails.push({
+ id: result.developerSpaceId,
+ name: result.details.name
+ });
+ }
+ }
+ }
+ return devSpaceDetails;
+ }
+ async getDevSpaceDetailsBulk(devSpaceIds) {
+ const query = `
+ query GetDevSpaceDetails($devSpaceIds: [String!]!) {
+ ecosystem {
+ devConsole {
+ getDeveloperSpaceDetails(developerSpaceIds: $devSpaceIds) {
+ results {
+ developerSpaceId
+ success
+ details {
+ name
+ }
+ error {
+ code
+ message
+ }
+ }
+ }
+ }
+ }
+ }
+ `;
+ const result = await this.graphqlClient.query(query, {
+ devSpaceIds: devSpaceIds
+ });
+ const bulkResult = result?.ecosystem?.devConsole?.getDeveloperSpaceDetails;
+ if (!bulkResult || !bulkResult.results || !Array.isArray(bulkResult.results)) {
+ return [];
+ }
+ return bulkResult.results;
+ }
+ async createDevSpace(input) {
+ const mutation = `
+ mutation CreateDeveloperSpace($input: DevConsoleCreateDeveloperSpaceInput!) {
+ ecosystem {
+ devConsole {
+ createDeveloperSpace(input: $input) {
+ devSpace {
+ id
+ name
+ }
+ success
+ errors {
+ message
+ extensions {
+ statusCode
+ errorType
+ }
+ }
+ }
+ }
+ }
+ }
+ `;
+ const { response: { ecosystem: { devConsole: { createDeveloperSpace: { devSpace, success, errors } } } }, requestId } = await this.graphqlClient.mutate(mutation, {
+ input
+ });
+ const error = (0, cli_shared_1.getError)(errors);
+ if (!success) {
+ throw new cli_shared_1.GraphQlMutationError(`${error.message} (requestId: ${requestId || 'unknown'})`, {
+ requestId,
+ code: error.code,
+ statusCode: error.statusCode
+ });
+ }
+ return devSpace;
+ }
+}
+exports.DevSpaceGraphQLClient = DevSpaceGraphQLClient;
+//# sourceMappingURL=graphql-client.js.map
\ No newline at end of file