@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
38 lines (37 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceAppRegistry = void 0;
const tslib_1 = require("tslib");
const index_1 = require("./models/index");
const ManifestRegistry_1 = require("./ManifestRegistry");
const deep_extend_1 = tslib_1.__importDefault(require("deep-extend"));
const models_1 = require("../../fx-models");
class ServiceAppRegistry {
}
exports.ServiceAppRegistry = ServiceAppRegistry;
ServiceAppRegistry.AddedAppDefinitions = {};
ServiceAppRegistry.AddAppDefinition = (appDefinitionId, option) => {
if (appDefinitionId == models_1.Guid.empty) {
throw new Error("Can't add app definition with id: Guid.empty. See manifest file: " + ManifestRegistry_1.ManifestRegistry.getCurrentManifestPath());
}
if (ServiceAppRegistry.AddedAppDefinitions[appDefinitionId.toString()] != null) {
throw new Error("Can't add app definition id " + appDefinitionId + ", an app definition with the same id has already been added. See manifest file: " + ManifestRegistry_1.ManifestRegistry.getCurrentManifestPath());
}
let manifest = {
manifestType: index_1.ServerManifestTypes.ServiceAppDefinition
};
let appManifest = (0, deep_extend_1.default)(manifest, option);
appManifest.uniqueId = appDefinitionId;
ServiceAppRegistry.AddedAppDefinitions[appDefinitionId.toString()] = appManifest;
};
ServiceAppRegistry.getServerManifests = (currentServiceId) => {
let serverManifests = new Array();
for (let key in ServiceAppRegistry.AddedAppDefinitions) {
serverManifests.push(ServiceAppRegistry.AddedAppDefinitions[key]);
}
return serverManifests;
};
ServiceAppRegistry.clearState = () => {
ServiceAppRegistry.AddedAppDefinitions = {};
};
ServiceAppRegistry.ServerSubscription = ManifestRegistry_1.ManifestRegistry.registerServerManifestProvider(new ManifestRegistry_1.StaticServerManifestProviderProxy(ServiceAppRegistry.getServerManifests, ServiceAppRegistry.clearState));