UNPKG

@eclipse-emfcloud/modelserver-theia

Version:
68 lines 3.32 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModelServerFrontendContribution = void 0; const promise_util_1 = require("@theia/core/lib/common/promise-util"); const inversify_1 = require("@theia/core/shared/inversify"); const browser_1 = require("@theia/workspace/lib/browser"); const urijs_1 = __importDefault(require("urijs")); const common_1 = require("../common"); let ModelServerFrontendContribution = class ModelServerFrontendContribution { configure(_app) { return this.setup(); } async setup() { this.workspaceService.onWorkspaceChanged(async (workspace) => { if (workspace[0] && workspace[0].resource) { const workspaceRoot = new urijs_1.default(workspace[0].resource.toString()); const uiSchemaFolder = workspaceRoot.clone().segment('.ui-schemas'); const serverLoaded = await this.waitForReady(); if (serverLoaded) { console.log('Model Server ready'); await this.modelServerClient.configureServer({ workspaceRoot, uiSchemaFolder }); } else { console.error('Model Server failed to load'); } } }); } async waitForReady(ms = 1000, numberOfTries = 20) { let available = false; while (!available && numberOfTries > 0) { available = await this.modelServerClient.ping().catch(async (e) => { console.log('Model Server not ready yet: ' + e); return false; }); if (!available) { await (0, promise_util_1.timeout)(ms); } numberOfTries--; } return available; } }; __decorate([ (0, inversify_1.inject)(browser_1.WorkspaceService), __metadata("design:type", browser_1.WorkspaceService) ], ModelServerFrontendContribution.prototype, "workspaceService", void 0); __decorate([ (0, inversify_1.inject)(common_1.TheiaModelServerClientV2), __metadata("design:type", Object) ], ModelServerFrontendContribution.prototype, "modelServerClient", void 0); ModelServerFrontendContribution = __decorate([ (0, inversify_1.injectable)() ], ModelServerFrontendContribution); exports.ModelServerFrontendContribution = ModelServerFrontendContribution; //# sourceMappingURL=model-server-frontend-contribution.js.map