UNPKG

generator-theia

Version:

Theia Generator

194 lines 7.38 kB
"use strict"; /* * Copyright (C) 2017 TypeFox and others. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; var __values = (this && this.__values) || function (o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; }; Object.defineProperty(exports, "__esModule", { value: true }); var path = require("path"); function sortByKey(object) { return Object.keys(object).sort().reduce(function (sorted, key) { sorted[key] = object[key]; return sorted; }, {}); } exports.sortByKey = sortByKey; exports.defaultExtensionKeyword = "theia-extension"; var Model = (function () { function Model() { this.pck = {}; this.config = { copyright: '', node_modulesPath: "../../node_modules" }; this.defaultExtensionConfig = { testSupport: true }; this.extensionConfig = __assign({}, this.defaultExtensionConfig, { extensionKeyword: exports.defaultExtensionKeyword }); this.extensionPackages = new Map(); } Object.defineProperty(Model.prototype, "allExtensions", { get: function () { return __spread(Object.keys(this.pck.localDependencies), Object.keys(this.pck.dependencies)); }, enumerable: true, configurable: true }); Model.prototype.readExtensionPackages = function (read) { if (!this.pck.dependencies) { return; } var _loop_1 = function (extension) { var version = this_1.pck.dependencies[extension]; this_1.readExtensionPackage(extension, function () { return read(extension, version); }); }; var this_1 = this; // tslint:disable-next-line:forin for (var extension in this.pck.dependencies) { _loop_1(extension); } }; Model.prototype.readLocalExtensionPackages = function (read) { if (!this.config.localDependencies) { return; } var _loop_2 = function (extension) { var path_1 = this_2.config.localDependencies[extension]; this_2.readExtensionPackage(extension, function () { return read(extension, path_1); }); }; var this_2 = this; // tslint:disable-next-line:forin for (var extension in this.config.localDependencies) { _loop_2(extension); } }; Model.prototype.readExtensionPackage = function (extension, read) { if (!this.extensionPackages.has(extension)) { var extensionPackage = read(); if (extensionPackage) { this.extensionPackages.set(extension, extensionPackage); } } }; Object.defineProperty(Model.prototype, "frontendModules", { get: function () { if (!this._frontendModules) { this._frontendModules = this.computeModules('frontend'); } return this._frontendModules; }, enumerable: true, configurable: true }); Object.defineProperty(Model.prototype, "frontendElectronModules", { get: function () { if (!this._frontendElectronModules) { this._frontendElectronModules = this.computeModules('frontendElectron', 'frontend'); } return this._frontendElectronModules; }, enumerable: true, configurable: true }); Object.defineProperty(Model.prototype, "backendModules", { get: function () { if (!this._backendModules) { this._backendModules = this.computeModules('backend'); } return this._backendModules; }, enumerable: true, configurable: true }); Object.defineProperty(Model.prototype, "backendElectronModules", { get: function () { if (!this._backendElectronModules) { this._backendElectronModules = this.computeModules('backendElectron', 'backend'); } return this._backendElectronModules; }, enumerable: true, configurable: true }); Model.prototype.computeModules = function (primary, secondary) { var result = new Map(); var moduleIndex = 1; try { for (var _a = __values(this.extensionPackages.values()), _b = _a.next(); !_b.done; _b = _a.next()) { var extensionPackage = _b.value; var extensions = extensionPackage.theiaExtensions; if (extensions) { try { for (var extensions_1 = __values(extensions), extensions_1_1 = extensions_1.next(); !extensions_1_1.done; extensions_1_1 = extensions_1.next()) { var extension = extensions_1_1.value; var modulePath = extension[primary] || (secondary && extension[secondary]); if (typeof modulePath === 'string') { var extensionPath = path.join(extensionPackage.name, modulePath).split(path.sep).join('/'); result.set(primary + "_" + moduleIndex, extensionPath); moduleIndex = moduleIndex + 1; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (extensions_1_1 && !extensions_1_1.done && (_c = extensions_1.return)) _c.call(extensions_1); } finally { if (e_1) throw e_1.error; } } } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_b && !_b.done && (_d = _a.return)) _d.call(_a); } finally { if (e_2) throw e_2.error; } } return result; var e_2, _d, e_1, _c; }; return Model; }()); exports.Model = Model; //# sourceMappingURL=generator-model.js.map